A modern, responsive task management application built with React and Flask, featuring user authentication, task organization, and a dynamic theme switcher.
-
User Authentication
- Secure JWT-based authentication
- User registration and login
- Protected routes
-
Task Management
- Create, read, update, and delete tasks
- Task prioritization (High, Medium, Low)
- Task status tracking (Not started, In progress, Completed)
- Due date management
- Task filtering and sorting
-
User Interface
- Responsive design
- Dark/Light theme toggle
- Modern and clean UI
- Toast notifications for user feedback
- React (v19.0.0)
- Vite
- React Router DOM (v7.2.0)
- Axios for API calls
- React Icons
- React Toastify
- Headless UI
- Hero Icons
- Flask
- SQLAlchemy
- Flask-JWT-Extended
- Flask-CORS
- Flask-Bcrypt
- Flask-Marshmallow
- SQLite Database
- Python 3.8+
- Node.js 18.18.0+
- npm or yarn
- Navigate to the backend directory:
cd Backend
- Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Create a
.env
file:
SQLALCHEMY_DATABASE_URI=sqlite:///tasks.db
JWT_SECRET_KEY=your-secret-key
- Initialize the database:
flask db upgrade
python populate_tasks.py # Optional: Add sample data
- Navigate to the frontend directory:
cd Frontend
- Install dependencies:
npm install
cd Backend/Flask_app
flask run
The backend will start on http://localhost:5000
cd Frontend
npm run dev
The frontend will start on http://localhost:5173
├── Backend/
│ ├── Flask_app/
│ │ ├── app/
│ │ │ ├── models/
│ │ │ ├── routes/
│ │ │ └── __init__.py
│ │ ├── migrations/
│ │ └── requirements.txt
│ └── .gitignore
└── Frontend/
├── src/
│ ├── api/
│ ├── components/
│ ├── context/
│ ├── pages/
│ └── App.jsx
├── package.json
└── vite.config.js
POST /auth/register
- Register new userPOST /auth/login
- User login
GET /tasks
- Get all tasksPOST /tasks
- Create new taskPUT /tasks/<id>
- Update taskDELETE /tasks/<id>
- Delete task
- Title
- Description
- Priority (high/medium/low)
- Status (Not started/In progress/Completed)
- Due Date
- Reminder Time
- Light and Dark mode
- Persistent theme preference
- Smooth theme transitions
- Password hashing with Bcrypt
- JWT token authentication
- Protected API routes
- CORS protection
- Input validation and sanitization
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Your Name - Initial work
- React + Vite template
- Flask documentation
- SQLAlchemy documentation