{"id":16473857,"url":"https://github.com/techiescamp/pomodoro-microservice","last_synced_at":"2025-04-30T22:30:26.612Z","repository":{"id":251692460,"uuid":"816108090","full_name":"techiescamp/pomodoro-microservice","owner":"techiescamp","description":"pomodoro microservice application","archived":false,"fork":false,"pushed_at":"2024-11-05T09:47:55.000Z","size":459,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-05T10:37:59.040Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/techiescamp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-17T04:05:31.000Z","updated_at":"2024-11-05T09:48:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"2fed29f8-fc34-449b-bb86-b0ad5428d25c","html_url":"https://github.com/techiescamp/pomodoro-microservice","commit_stats":null,"previous_names":["techiescamp/pomodoro-microservice"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techiescamp%2Fpomodoro-microservice","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techiescamp%2Fpomodoro-microservice/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techiescamp%2Fpomodoro-microservice/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techiescamp%2Fpomodoro-microservice/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/techiescamp","download_url":"https://codeload.github.com/techiescamp/pomodoro-microservice/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224225338,"owners_count":17276435,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-11T12:28:32.005Z","updated_at":"2025-04-30T22:30:26.598Z","avatar_url":"https://github.com/techiescamp.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pomodoro Web Application\n### Time Management Tool based on Pomodoro Application\n--------------------------------------------------------------\n\n----------------------------------------------------------------------------------------------------------------------------\n### Overview\n----------------------------------------------------------------------------------------------------------------------------\nThe Pomodoro Web Application is a productivity tool designed to help users manage their time effectively using the Pomodoro Technique. Built with the MERN stack (MongoDB, Express.js, React.js, Node.js), it enables users to create, track, and manage tasks seamlessly. The app includes observability features to monitor performance and troubleshoot issues efficiently.\n\n----------------------------------------------------------------------------------------------------------------------------\n### Techncial Aspects \u0026 Versions\n----------------------------------------------------------------------------------------------------------------------------\n\n#### 1. Technology Stack\n    - Frontend: React.js\n    - Backend: Node.js, Express.js\n    - Database: MongoDB\n    - State Management: React Context API\n    - Authentication: JSON Web Token (JWT) - based authentication\n\n#### 2. Observability and Monitoring Tools\nThe application incorporates observability tools for performance monitoring and debugging:\n\n    - Logs: Winston Logger\n    - Metrics: Prometheus\n    - Traces: Jaeger (via OpenTelemetry)\n\n#### 3. Debugging and Performance Monitoring\n    - Browser Developer Tools (e.g., Inspect Browser Element)\n    - OpenTelemetry for distributed tracing\n\n#### Version Used\n    - `node` - v22.14.0\n    - `express.js` - 4.21.2\n    - `react` - 18.3.1\n    - `@opentelemetry/exporter-jaeger`: 1.24.1\n    - `winston`: 3.13.0\n    - `prom-client`: 14.2.0\n    - `react-dom` - 18.3.1\n    - `react-router-dom` - 6.23.0\n    - `react-scripts` - 5.0.1\n    - `booststrap.css` - 2.10.2\n    - `react-markdown` - 10.1.0\n    - `chart.js` - 4.4.2\n    - `mongodb`: 6.14.2\n    - `mongoose`: 8.12.0\n    - `jsonwebtoken`: 9.0.2\n\n----------------------------------------------------------------------------------------------------------------------------\n### Application Usage\n----------------------------------------------------------------------------------------------------------------------------\nThe Pomodoro App supports both guest and registered users:\n\n    - Guest Users: Use Pomdoro Timer and Todo Task but cannot access Task List and Task Chart\n    - Registered Users: Access `Task List` and `Task Chart` for detailed user analytics.\n\n\n----------------------------------------------------------------------------------------------------------------------------\n### Key Performance Indicators (KPIs)\n----------------------------------------------------------------------------------------------------------------------------\n\n#### 1. Application metrics\n----------------------------\n\n![alt application_metrics_image](images/application_metrics.png)\n\n\n#### 2. Client-side metrics\n----------------------------\n![alt client_metrics_image](images/client_metrics.png)\n\n\n#### 3. Session Management metrics\n------------------------------------------\n![session_metrics_image](images/session_metrics.png)\n\n\n#### User Management Metrics\n------------------------------\n![user_metrics_image](images/user_metrics.png)\n\n\n#### Tasks Metrics\n--------------------------\n![task_metrics_image](images/task_metrics.png)\n\n\n----------------------------------------------------------------------------------------------------------------------------\n### Installation Guide\n----------------------------------------------------------------------------------------------------------------------------\n#### Clone the repository\n\n``` bash\ngit clone https://github.com/techiescamp/pomodoro-microservice.git\ncd pomodoro-microservice\n```\n----------------------------------------------------------------------------------------------------------------------------\n### Install dependencies\n----------------------------------------------------------------------------------------------------------------------------\n#### For Backend Pomodoro App\n\n```bash\ncd backend\nnpm install\n\n// to run code\nnpm run dev (for development environment)\nnpm start (for production environment)\n```\n\n#### For backend Reports Service \n\n```bash\ncd reports-service\nnpm install\n\n// to run code\nnpm run dev (for development environment)\nnpm start (for production environment)\n```\n\n#### Frontend Pomdooro App\n\n```bash\ncd pomodoro-app\nnpm install\n\n// to run code\nnpm start\n```\n\n\n---------------------------------------------------------------------------------------------------------------------------------\n### Docker setup for \"BACKEND\"\n---------------------------------------------------------------------------------------------------------------------------------\n\nThis repository provides instructions to build and run the backend service as a Docker container, using environment variables for configuration.\n\n---\n\n#### Build Docker Image\n\nUse the following command to build the Docker image:\n\n```bash\ndocker build -t pomodoro-backend:1.0.0 .\n```\n\n#### .env file content\n\nCreate a .env file with the following content:\n\n```bash\nPORT=7000\nBASE_URL=http://localhost:3000\nREPORTS_URL=http://localhost:7070\n\nJAEGER_TRACE_URI=http://52.43.65.153:30894\n\nSESSION_SECRET=supersecret\nJWT_SECRET=mysecret\n\nMONGODB_URL=\u003cmongodburl\u003e\n```\n#### Details\n\n- *PORT*: The port on which the backend service will run.\n- *BASE_URL*: The base URL for the frontend service.\n- *REPORTS_URL*: URL for the reports service.\n- *JAEGER_TRACE_URI*: URL for Jaeger tracing (optional).\n- *SESSION_SECRET*: Secret key for managing user sessions.\n- *JWT_SECRET* : Secret key for signing and verifying JSON Web Tokens (JWTs).\n- *MONGODB_URL*: The connection URL for your MongoDB database.\n\n\n#### Run Docker Image\n\nRun the Docker container using this command:\n\n```bash\ndocker run -d -p 7000:7000 --env-file .env pomodoro-backend:1.0.0\n```\n\nIf your *.env* file is located in another directory, specify the path like this:\n\n```bash\ndocker run -d -p 7000:7000 --env-file /path/to/.env pomodoro-backend:1.0.0\n```\n\n#### Debugging Tips\n\nIf you want to verify that your .env file is properly formatted and loaded by the container. Use the following command:\n\n```bash\ndocker exec -it \u003ccontainer-id\u003e env\n```\n\nTo check the logs use the following command:\n\n```bash\ndocker logs \u003ccontainer-id\u003e\n```\n\n-----------------------------------------------------------------------------------------------------------------------------\n### Docker Setup - \"Reports-Service\" backend\n-----------------------------------------------------------------------------------------------------------------------------\n\nThis repository provides instructions to build and run the report backend service as a Docker container, using environment variables for configuration.\n\n---\n\n#### Build Docker Image\n\nUse the following command to build the Docker image:\n\n```bash\ndocker build -t pomodoro-report-backend:1.0.0 .\n```\n\n#### .env file content\n\nCreate a .env file with the following content:\n\n```bash\nPORT=7070\nMONGODB_URL=\u003cmongodburl\u003e\nJAEGER_TRACE_URI=http://52.43.65.153:30894\n```\n\n#### Details\n\n- *PORT*: The port on which the report backend service will run.\n- *MONGODB_URL*: The connection URL for your MongoDB database.\n- *JAEGER_TRACE_URI*: (Optional) URL for Jaeger tracing, if available.\n\n\n#### Run Docker image\n\nRun the Docker container using this command:\n\n```bash\ndocker run -d -p 7070:7070 --env-file .env pomodoro-report-backend:1.0.0\n```\n\nIf your *.env* file is located in another directory, specify the path like this:\n\n```bash\ndocker run -d -p 7070:7070 --env-file /path/to/.env pomodoro-report-backend:1.0.0\n```\n\n#### Debugging Tips\n\nIf you want to verify that your .env file is properly formatted and loaded by the container. Use the following command:\n\n```bash\ndocker exec -it \u003ccontainer-id\u003e env\n```\n\nTo check the logs use the following command:\n\n```bash\ndocker logs \u003ccontainer-id\u003e\n```\n\n\n\n-----------------------------------------------------------------------------------------------------------------------------\n### Contributing\n-----------------------------------------------------------------------------------------------------------------------------\nWe 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.\n\n\n---------------------------------------------------------------------------------------------------------------------------\n### License\n---------------------------------------------------------------------------------------------------------------------------\nThis project is licensed under the MIT License. [LICENSE]\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftechiescamp%2Fpomodoro-microservice","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftechiescamp%2Fpomodoro-microservice","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftechiescamp%2Fpomodoro-microservice/lists"}