A full-stack application for managing tasks and logging work entries, built with NestJS (Backend), React (Frontend), and PostgreSQL, fully orchestrated using Docker Compose. Key features include secure cookie-based authentication using HttpOnly JWT cookies and an AI-powered summary feature that helps turn task entry logs into readable, actionable summaries.
- Docker and Docker Compose
Follow these steps to clone the repository and start the production/development environment.
git clone <repository-url>
cd task-managerCreate .env file at the root of the project based on the provided .env.example. For a quick start the only thing you need to change is the GOOGLE_AI_API_KEY to match the one you can obtain from Google AI Studio.
cp .env.example .envRun the application using Docker Compose. This will build and start the PostgreSQL database, NestJS backend, and React frontend.
docker compose upFor development, you can start the services in Docker development environment. This also starts a test database for running tests locally.
docker compose -f docker-compose.dev.yml upIn development mode, the backend and frontend will watch for file changes and automatically reload. Only after installing a new package you need to rebuild the Docker images:
docker compose -f docker-compose.dev.yml up --buildDatabase initial migration and seeding is done automatically at Docker startup.
- Frontend (React): http://localhost:5173
Only backend e2e tests were implemented for this project and the tests are run locally, outside the Docker environment. First install the dependencies in both frontend and backend:
cd frontend
npm ci
cd ../backend
npm ciPrisma client is automatically generated for the backend via package.json script. To run the tests, make sure you are on development environment (via docker-compose.dev.yml):
cd backend
npm run test:e2e- State Management: Implement for example TanStack Query for frontend state management.
- Task Management: Add features for deleting, editing, and modifying individual tasks like changing their status.
- Task Entry Management: Add features for deleting, editing, and modifying individual task entries.
- User Profile: Allow users to view and edit their own profile information.
- AI Enhancements: Improve AI prompt engineering and save the generated summaries to the database.
- Logging and Monitoring: Implement logging and monitoring for the application.