A modern, full-stack task management application built with React, TypeScript, Node.js, and PostgreSQL. Features a clean, responsive UI with board-based project management and user authentication.
- JWT Authentication: Secure login/signup with automatic token refresh
- Dashboard: Overview of all user boards with quick access
- Kanban Boards: Drag-and-drop interface for organizing tasks into columns
- Board Management: Create and manage multiple project boards
- Card Management: Create, edit, and organize task cards with metadata
- Tag System: Color-coded tags for categorizing cards
- Advanced Features: Effort estimation, priority levels, due dates
- Responsive Design: Mobile-first approach with Tailwind CSS
- Real-time Updates: Live synchronization across devices
- Docker Support: Containerized deployment
- API Documentation: Interactive Swagger UI at /docs
Frontend: React 19, TypeScript, Vite, Tailwind CSS, React Router, React Query
Backend: Node.js, Hono, TypeScript, PostgreSQL, Vitest, OpenAPI
DevOps: Docker, ESLint, npm workspaces
- Docker and Docker Compose
- Node.js 18+ (for local development)
-
Clone the repository
git clone <repository-url> cd taskmanager
-
Set up environment variables
cp .env.example .env
-
Start the application
docker-compose up -d
-
Access the application
- Frontend: http://localhost:5173
- Backend API: http://localhost:3001
- API Documentation: http://localhost:3001/docs
-
Install dependencies
npm install
-
Start PostgreSQL (via Docker)
docker-compose up postgres -d
-
Start development servers
npm run dev # Starts both frontend and backend
The backend uses Vitest for unit and integration testing.
To run integration tests:
npm run test --workspace=apps/backendTo run tests with coverage:
npm run test:coverage --workspace=apps/backendThis project is licensed under the MIT License.
