Task-Time-Manager is a full-featured task management application built with the MERN stack. It allows users to create, manage, and track tasks efficiently with features like task categorization, priority setting, and deadline reminders.
Clone the repository:
git clone https://github.com/username/task-time-manager.git
cd task-time-manager
Install dependencies:
npm install
Set up environment variables:
.env
file in the root directory and configure it based on .env.example
.Start the development server:
npm start
After starting the server, open your browser and go to http://localhost:3000
. You will be greeted with the login screen.
Task-Time-Manager follows a traditional MERN stack architecture. The frontend is built with React, which communicates with the backend API built on Node.js and Express. MongoDB is used as the database.
You can view the detailed block diagram here.
A comprehensive requirements document outlining the features, user stories, and acceptance criteria for the Task-Time-Manager project can be found here.
The API provides endpoints for user management and task operations.
All endpoints require a valid JWT token.
POST /register
: Registers a new user. (No token needed)POST /login
: Logs in a user and returns a JWT token. (No token needed)POST /tasks
: Creates a new task. (Token required)GET /tasks
: Retrieves all tasks for the logged-in user. (Token required)GET /tasks/:taskId
: Retrieves a specific task for the logged-in user. (Token required)PUT /tasks/:taskId
: Modify an existing task. (Token required)DELETE /tasks/:taskId
: Delete an existing task. (Token required)PATCH /tasks/:taskId/complete
: Mark an existing task as complete. (Token required)For detailed API documentation, please refer to the API Docs.
Unit and integration tests are written using Jest. To run the tests, use the following command:
npm test
After running npm test -- --coverage
, open the coverage/lcov-report/index.html
file in your browser to see the full coverage report.
This project is licensed under the MIT License - see the LICENSE file for details.