Live Application Link: Todo Application
This repository contains the implementation details for the Tasks Manager project, a task management application built on Node.js and Express.js. The goal of this project is to provide users with a smarter and intuitive task management experience. The key features of the application include user authentication, task creation with due dates, dynamic categorization of tasks, task completion, and deletion. Additionally, several advanced features have been implemented to enhance the application's robustness, including error logging, internationalization, containerization, CI/CD pipeline, testing strategies, and more.
- Users can sign up for a new account.
- Existing users can log in and securely sign out.
- Users can add a task by providing a name and due date.
- Tasks are automatically categorized into "Overdue," "Due Today," and "Due Later" based on the provided due date.
-
-
- Users can mark a task as complete by checking the completion box.
- Users can add a todo using the Gemini API.
- The input field accepts text entries.
- Todos are automatically scheduled upon submission.
-
-
-
Unit and integration tests have been incorporated into the project.
-
Coverage reports have been generated to assess the effectiveness of the tests.
-
GitHub Actions have been set up to automate testing processes.
-
- A CI/CD pipeline has been established to automate the deployment process.
- This ensures seamless integration of code changes and swift error detection.
- The application has been deployed in cluster mode using PM2 for enhanced performance and scalability.
- Environment variable configurations have been implemented for both development and production environments.
- Security measures have been applied to safeguard the application.
- The application has been containerized using Docker for efficient deployment and management.
- Environment variables have been configured within the containers for flexibility and security.
- A Docker Compose file has been defined for managing multiple services, including a database service.
- A CI/CD pipeline has been set up to deploy the Dockerized application on a server.
- Internationalization and localization have been implemented to cater to diverse user preferences and geographical locations.
-
-
-
- Error logging and debugging practices have been followed, utilizing Sentry for efficient bug detection and resolution.
-
Slack notifications have been configured to provide updates about the status of the CI/CD pipeline.
This README provides an overview of the project and its various features. For detailed implementation and technical documentation, refer to the codebase and relevant files within the repository.

To set up the project locally, follow these steps:
- Clone the repository.
- Install dependencies using
npm install. - Set up the PostgreSQL database and configure the connection in the application.
- Run the application with
npm start.



