taskManagment-app

Task Management Application

Project Overview

The Task Management Application is a simple ReactJS application that allows users to create, read, update, and delete tasks. The application features user authentication, task filtering and sorting, search functionality, user profile management, and a responsive design. Additionally, optional features such as task prioritization and task descreption and due date are included for better functionality.

This project uses mock data from jsonexamples.com to manage tasks and user profiles.

Features

Folder Structure

Task-List-ReactJs-master/
├── public/
│   ├── index.html
│   └── ...
├── src/
│   ├── components/
│   │   ├── component-folder/
│   │   │   ├── index.jsx
│   │   │   └── index.css
│   │   └── ...other-components.jsx
│   ├── guards/
│   │   ├── auth-guards.jsx
│   ├── pages/
|   |   ├── page-folder/
|   |   |   ├── index.jsx
|   |   |   ├── file.css
|   |   └── ...other-pages
│   ├── App.js
│   ├── routes.jsx
│   └── ...
├── README.md
└── ...

The last updates I made

  1. Restructured the project files to improve organization and maintainability.
  2. Added react-router-dom for handling routing within the application. Because react doesn’t have a built-in method to hanlde routing, we need an external tool or package, and the most famous one for react is the react-router-dom library. This allows for navigation between different pages of the application without reloading the entire page, providing a smoother user experience.
  3. Added Routes:
    1. /Signup
    2. /Login
    3. /Profile
  4. Added Features:
    1. Search Functionality
    2. Responsive Design
    3. Task Filtering & Sorting: Filter tasks based on due date (e.g., “All Dates”, “Due Today”, “Overdue”, “Upcoming”, “Next Week”) and status (completed, pending).
  5. replace localStorage for storing tasks with mock data from jsonexamples.com by calling different endpoints
  6. I added react-toastify for displaying notifications

Understand src/routes.jsx

Understand src/guards/auth-guard.jsx

Best Practice

  1. In responsive design, Always start with mobile first, and in media queries add code for larger screens, example @media (min-width: 640px)

Getting Started

To get started with this project, just install the dependencies:

npm install

or

pnpm install

To start the development server, run:

npm run start

or

pnpm run start