MaykaS / task-time-manager

MIT License
1 stars 0 forks source link

task-time-manager

Build Status License

Description

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.

Key Features

  1. Task Creation: Users can create new tasks by providing a title, selecting a category, adding a description, setting a due date, and choosing a priority level.
  2. Tasks Retrieving: Users can view all the tasks he has.
  3. Task Retrieving: Users can view a specific task from their list.
  4. Task Editing: Users can modify the details of existing tasks, including title, category, description, due date, and priority.
  5. Task Deletion: Users can permanently delete tasks from their list.
  6. Mark Task as Completed: Users can mark tasks as completed, which will visually distinguish them from incomplete tasks.
  7. Task Categorization: Tasks can be organized into predefined categories, each represented by an icon, to help users easily identify them.
  8. Deadline Reminder: Reminder will show 1 hour prior to the uncompleted task deadline. - BONUS FEATURE
  9. User Authentication: Users must register and log in using their email and password to access the application.
  10. Task Views:
    1. List View: Users can see all their tasks in a standard list format, with options to sort or filter tasks.
    2. Calendar View: Users can view tasks on a calendar, with tasks displayed on their respective due dates.
  11. Database Storage: All tasks and user information are stored in a MongoDB database, ensuring data persistence across sessions.
  12. Log Out: Users can log out of the application.

Table of Contents

Installation

Prerequisites

Steps

  1. Clone the repository:

    git clone https://github.com/username/task-time-manager.git
    cd task-time-manager
  2. Install dependencies:

    npm install
  3. Set up environment variables:

    • Create a .env file in the root directory and configure it based on .env.example.
  4. Start the development server:

    npm start

Usage

After starting the server, open your browser and go to http://localhost:3000. You will be greeted with the login screen.

Screenshots

Welcome Screen Login Screen Dashboard

Architecture

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.

Block Diagram

Architecture Diagram You can view the detailed block diagram here.

Requirements Document

A comprehensive requirements document outlining the features, user stories, and acceptance criteria for the Task-Time-Manager project can be found here.

API Documentation

The API provides endpoints for user management and task operations.

Authentication

All endpoints require a valid JWT token.

Endpoints

For detailed API documentation, please refer to the API Docs.

Testing

Unit and integration tests are written using Jest. To run the tests, use the following command:

npm test

Test Coverage

After running npm test -- --coverage, open the coverage/lcov-report/index.html file in your browser to see the full coverage report.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contact

Maya Sagalin
LinkedIn | GitHub | Email