A full-stack Task Management application built with:
- Backend: FastAPI, SQLAlchemy, MySQL, Pydantic, Pytest
- Frontend: React (Vite), Material Tailwind, Axios, React Hook Form, Yup
✅ Create, update, delete, and list tasks
✅ Mark tasks as completed or pending
✅ RESTful API with Pydantic validation
✅ Modern React interface with Material Tailwind
✅ Fully tested backend (Pytest + SQLite test DB)
cd backend
python -m venv venv
venv\Scripts\activate # On Windows
source venv/bin/activate # On macOS/Linux pip install -r requirements.txtCopy .env.example → .env and update your database credentials:
DATABASE_URL=mysql+mysqlconnector://root:password@localhost/task_dbuvicorn app.main:app --reloadThe API will be available at http://127.0.0.1:8000
- Swagger UI → http://127.0.0.1:8000/docs
- ReDoc → http://127.0.0.1:8000/redoc
Run all unit tests with coverage:
pytest -vExample output: tests/test_tasks.py::test_create_task PASSED [ 20%] tests/test_tasks.py::test_list_tasks PASSED [ 40%] tests/test_tasks.py::test_update_task PASSED [ 60%] tests/test_tasks.py::test_delete_task PASSED [ 80%] tests/test_tasks.py::test_delete_nonexistent_task PASSED [100%]
========================================= 5 passed in 8.42s =========================================
cd frontend
npm installIn src/api/axios.js:
import axios from "axios";
export default axios.create({
baseURL: "http://127.0.0.1:8000",
});npm run devThe app will run at http://localhost:5173
Contributions, suggestions, and improvements are welcome! Feel free to open an issue or submit a pull request.
- Selim Adekola
- 📧 salimdotpy@gmail.com
- 📞 +2348076738293



