A full-stack MERN task management application that helps users organize and track their tasks efficiently.
- User Authentication - Secure registration and login with JWT
- Task Management - Create, read, update, and delete tasks
- Task Status - Track tasks as Pending, In Progress, or Completed
- Due Dates - Set and manage task deadlines
- Private Tasks - Each user sees only their own tasks
- Clean UI - Intuitive and responsive interface
Node.jsExpress.jsMongoDBwithMongooseJWTfor authenticationbcryptjsfor password hashingcorsfor Cross-Origin Resource Sharingnodemonfor auto server restartdotenvfor environment variables loading
npm init -y
npm install express dotenv mongoose cors
npm install --save-dev nodemon
npm install bcryptjs jsonwebtoken
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"ReactReact Routerfor navigationAxiosfor API callsTailwindfor stylingshadcnfor components
npm create vite@latest
npm install tailwindcss @tailwindcss/vite
npx shadcn@latest init
npm i react-router-dom
npm i react-toastify
npm i axiosBefore you begin, ensure you have the following installed:
- Node.js (v22.x.x or higher)
- MongoDB (local or MongoDB Atlas account)
- npm or yarn
git clone https://github.com/abdelhafid37/taskflow.git
cd taskflowcd backend
npm installCreate a .env file in the backend directory:
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
JWT_EXPIRE=your_jwt_expire_time
PORT=5001
NODE_ENV=development
CLIENT_URL=your_client_urlStart the backend server:
npm run devcd ../frontend
npm installCreate a .env file in the frontend directory:
REACT_APP_API_URL=http://localhost:5001/apiStart the React app:
npm startThe application will open at http://localhost:5173
- Register - Create a new account with email and password
- Login - Sign in with your credentials
- Create Tasks - Add new tasks with title, description, status, and due date
- Manage Tasks - Edit, delete, or update the status of your tasks
- Logout - Securely end your session
taskflow/
├── backend/ # Backend
│ ├── config/ # Configuration files
│ ├── controllers/ # Request handlers
│ ├── middleware/ # Custom middleware
│ ├── models/ # Database models
│ ├── routes/ # API routes
│ └── server.js # Entry point
│
├── frontend/ # Frontend
│ ├── public/
│ └── src/
│ ├── components/ # React components
│ ├── pages/ # Page components
│ ├── services/ # API services
│ ├── context/ # Context providers
│ ├── hooks/ # Hooks providers
│ ├── lib/ # Helper functions
│ └── App.jsx # Main component
│
├── .getignore
└── README.md
See API_DOCUMENTATION.md for detailed API endpoint documentation.
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b branchName) - Commit your changes (
git commit -m 'commitMessage') - Push to the branch (
git push origin branchName) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built as a learning project for MERN stack development
- Inspired by modern task management applications
Abdelhafid - @abdelhafid
Project Link: https://github.com/abdelhafid37/taskflow
Made with the MERN stack