Skip to content

Latest commit

Β 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“ TODO App :

A simple, elegant and functional task management app built with the MERN stack (MongoDB, Express, React, Node.js) and Material UI.


πŸ“· Screenshots


🧩 Description

A full-stack TODO application designed to help users organize their daily tasks with a clean and intuitive interface.
The app offers smooth user experience with hover effects, toast notifications, responsive design and optional animations for add/edit/delete actions.


πŸ”§ Tech Stack

Tech Usage
React Frontend
Redux Toolkit State management
Express / Node.js Backend API
MongoDB / Mongoose Database
Material UI UI Components
Axios API Communication
react-toastify Toast Notifications

🌟 Features

  • βœ… Add new tasks
  • βœ… Edit task description or status (isdone)
  • βœ… Delete task with confirmation dialog
  • βœ… Filter tasks by text or completion status
  • βœ… Hover effect on task items
  • βœ… Toast notifications after each action
  • βœ… Responsive layout (mobile/tablet/desktop)
  • βœ… Optional animations using CSS or Framer Motion

πŸš€ How to Run Locally

1. Clone the project

git clone https://github.com/abdallahsekrafi/TODO-MERN.git
cd TODO-MERN

2. Setup environment variables

Backend .env

PORT=5000
MONGO_URI=mongodb+srv://...

Frontend .env (inside /client)

REACT_APP_API_URL=http://localhost:5000

3. Install dependencies

Backend

cd backend
npm install

Frontend

cd ../client
npm install

πŸ›  API Endpoints

Method Route Description
GET / Get all tasks
POST / Create new task
PUT /:id Update task by ID
DELETE /:id Delete task by ID

🎨 Design & UX

  • 🧾 Clean and modern UI
  • πŸ–ŒοΈ Subtle hover effects on task items
  • 🎯 Status badges dynamically styled based on task state (Done, Not Done)
  • πŸ“± Fully responsive layout

πŸ§ͺ Best Practices Used

  • βœ… Centralized state management with Redux Toolkit
  • βœ… Input validation with Joi in backend
  • βœ… Custom hooks for filtering and animations
  • βœ… Toast notifications after CRUD actions
  • βœ… Modal dialogs for editing/deleting tasks
  • βœ… Well-structured and reusable components

πŸ“¦ Main Dependencies

Backend

"dependencies": {
  "express": "^4.18.2",
  "mongoose": "^7.0.3",
  "cors": "^2.8.5",
  "dotenv": "^16.0.3",
  "joi": "^17.9.1"
}

Frontend

"dependencies": {
  "@mui/material": "^5.13.0",
  "react-redux": "^8.0.5",
  "reduxjs/toolkit": "^1.9.5",
  "axios": "^1.6.2",
  "react-toastify": "^9.1.3"
}

🧰 Available Scripts

Backend

node server.js       # Start the server on http://localhost:5000

Frontend

npm start       # Run the app on http://localhost:3000
npm build       # Build production version

πŸ’Ό Technologies Used

javascript logo react logo mongodb logo express logo nodejs logo redux logo materialui logo css3 logo html5 logo

πŸ“¬ Contact


Β© Abdallah Sekrafi @ 2025

About

A simple, elegant and functional task management app built with the MERN stack (MongoDB, Express, React, Node.js) and Material UI.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages