The Pomodoro Web Application is a time management tool built using the MERN stack that helps users stay productive by following the Pomodoro technique. It allows users to create, track, and manage tasks effectively. The application includes observability features to monitor performance and detect potential issues.
- Frontend: React.js
- Backend: Node.js, Express.js
- Database: MongoDB
- State Management: React Context API
- Authentication: JWT - based authentication
The application incorporates observability tools to ensure performance monitoring and debugging:
- Logs: Winston Logger
- Metrics: Prometheus
- Traces: Jaeger (via OpenTelemetry)
- Browser DevTools (Inspect Element)
- OpenTelemetry for distributed tracing
The Pomodoro App can be used with or without user login:
- Guest Users: Access Task List and Task Chart
- Registered Users: Can add, edit, delete, and track tasks along with detailed analytics
git clone https://github.com/techiescamp/pomodoro-microservice.git
cd pomodoro-microservicecd backend
npm installcd reports-service
npm installcd pomodoro-app
npm installcd backend
npm startcd reports-service
npm startcd pomodoro-app
npm startThis repository provides instructions to build and run the backend service as a Docker container, using environment variables for configuration.
Use the following command to build the Docker image:
docker build -t pomodoro-backend:1.0.0 .Create a .env file with the following content:
PORT=7000
BASE_URL=http://localhost:3000
REPORTS_URL=http://localhost:7070
JAEGER_TRACE_URI=http://52.43.65.153:30894
SESSION_SECRET=supersecret
JWT_SECRET=mysecret
MONGODB_URL=<mongodburl>- PORT: The port on which the backend service will run.
- BASE_URL: The base URL for the frontend service.
- REPORTS_URL: URL for the reports service.
- JAEGER_TRACE_URI: URL for Jaeger tracing (optional).
- SESSION_SECRET: Secret key for managing user sessions.
- JWT_SECRET : Secret key for signing and verifying JSON Web Tokens (JWTs).
- MONGODB_URL: The connection URL for your MongoDB database.
Run the Docker container using this command:
docker run -d -p 7000:7000 --env-file .env pomodoro-backend:1.0.0If your .env file is located in another directory, specify the path like this:
docker run -d -p 7000:7000 --env-file /path/to/.env pomodoro-backend:1.0.0If you want to verify that your .env file is properly formatted and loaded by the container. Use the following command:
docker exec -it <container-id> envTo check the logs use the following command:
docker logs <container-id>This repository provides instructions to build and run the report backend service as a Docker container, using environment variables for configuration.
Use the following command to build the Docker image:
docker build -t pomodoro-report-backend:1.0.0 .Create a .env file with the following content:
PORT=7070
MONGODB_URL=<mongodburl>
JAEGER_TRACE_URI=http://52.43.65.153:30894- PORT: The port on which the report backend service will run.
- MONGODB_URL: The connection URL for your MongoDB database.
- JAEGER_TRACE_URI: (Optional) URL for Jaeger tracing, if available.
Run the Docker container using this command:
docker run -d -p 7070:7070 --env-file .env pomodoro-report-backend:1.0.0If your .env file is located in another directory, specify the path like this:
docker run -d -p 7070:7070 --env-file /path/to/.env pomodoro-report-backend:1.0.0If you want to verify that your .env file is properly formatted and loaded by the container. Use the following command:
docker exec -it <container-id> envTo check the logs use the following command:
docker logs <container-id>We welcome contributions! Feel free to submit issues or open a pull request. Thank you for my team for being part of this journey in building the pomodoro application.
This project is licensed under the MIT License. [LICENSE]




