A full-stack task management application that enables users to create, organise, update, and delete tasks through a responsive web interface. The project features a React frontend communicating with a FastAPI REST API backed by a PostgreSQL database, showcasing modern full-stack application development from local development to cloud deployment.
Application: https://taskflow-six-sandy.vercel.app/
API Documentation: https://taskflow-i5u3.onrender.com/docs
- Desktop View:
- Mobile View:
TaskFlow is a task management web application that allows users to manage their daily tasks through a simple and responsive interface. Users can create new tasks, add optional notes, mark tasks as completed, and remove tasks they no longer need.
The frontend is built with React and TypeScript, while the backend exposes a FastAPI REST API that performs CRUD operations using SQLAlchemy and PostgreSQL. The application is containerized with Docker and deployed using Vercel, Render, and Supabase, following a production-style full-stack architecture.
- β Create tasks
- β View all tasks
- β Mark tasks as completed
- β Delete tasks
- β Responsive React frontend
- β RESTful API
- β PostgreSQL database
- β SQLAlchemy ORM
- β Pydantic validation
- β Docker containerization
- β Backend API testing
- β CRUD testing
- β Cloud deployment
- React
- TypeScript
- Vite
- CSS
- FastAPI
- SQLAlchemy
- Pydantic
- Uvicorn
- PostgreSQL (Supabase)
- Frontend β Vercel
- Backend β Render
- Database β Supabase
- Pytest
- FastAPI TestClient
React + TypeScript
(Vercel Frontend)
β
β HTTP Requests
βΌ
FastAPI REST API
(Render Backend)
β
SQLAlchemy ORM
β
βΌ
PostgreSQL Database
(Supabase)
taskflow/
βββ backend/
β
β βββ app/
β β βββ routers/
β β βββ crud.py
β β βββ database.py
β β βββ main.py
β β βββ models.py
β β βββ schemas.py
β β
β βββ tests/
β β βββ conftest.py
β β βββ test_api.py
β β βββ test_crud.py
β β
β βββ Dockerfile
β βββ requirements.txt
β βββ .dockerignore
β
βββ frontend/
β βββ src/
β β βββ api/
β β βββ components/
β β βββ types/
β β βββ App.tsx
β β βββ main.tsx
β β
β βββ package.json
β
βββ README.md
| Service | URL |
|---|---|
| Frontend | https://taskflow-six-sandy.vercel.app/ |
| Backend API | https://taskflow-i5u3.onrender.com |
| Swagger Docs | https://taskflow-i5u3.onrender.com/docs |
Note
The backend is hosted on Render's free tier. If the application has been inactive, the first request may take around 30β60 seconds while the backend wakes up.
| Method | Endpoint | Description |
|---|---|---|
| GET | /tasks |
Retrieve all tasks |
| POST | /tasks |
Create a new task |
| PATCH | /tasks/{id} |
Update a task |
| DELETE | /tasks/{id} |
Delete a task |
Swagger Documentation
https://taskflow-i5u3.onrender.com/docs
git clone https://github.com/alymkarim/taskflow.git
cd taskflowcd backend
python -m venv .venv
source .venv/Scripts/activate
pip install -r requirements.txt
python -m uvicorn app.main:app --reloadBackend
http://127.0.0.1:8000
Swagger
http://127.0.0.1:8000/docs
cd frontend
npm install
npm run devFrontend
http://localhost:5173
Build backend image
docker build -t taskflow-backend .Run container
docker run -p 8000:8000 taskflow-backendRun all tests
pytestRun API tests
pytest tests/test_api.pyRun CRUD tests
pytest tests/test_crud.py| Component | Platform |
|---|---|
| Frontend | Vercel |
| Backend | Render |
| Database | Supabase PostgreSQL |
| Containerization | Docker |
This project provided hands-on experience with:
- Building RESTful APIs with FastAPI
- CRUD application architecture
- SQLAlchemy ORM
- PostgreSQL integration
- API validation using Pydantic
- Unit and API testing with Pytest
- Docker containerization
- Environment variable management
- CORS configuration
- Frontendβbackend communication
- Cloud deployment using Vercel, Render, and Supabase
- User authentication
- User-specific task ownership
- JWT authentication
- Password hashing
- Search tasks
- Task filtering
- Due dates
- Priority levels
- Dark mode
- Drag-and-drop ordering
- Docker Compose
- GitHub Actions CI/CD
- Alembic database migrations
This project is licensed under the MIT License.

