Skip to content

Latest commit

Β 

History

47 Commits

Folders and files

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

Repository files navigation

πŸš€ TaskFlow

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.

Live Demo

Application: https://taskflow-six-sandy.vercel.app/

API Documentation: https://taskflow-i5u3.onrender.com/docs


React TypeScript FastAPI SQLAlchemy PostgreSQL Docker Vercel Render


Demo

  • Desktop View:

TaskFlow Demo

  • Mobile View:

TaskFlow Demo

Overview

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.


Features

  • βœ… 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

Tech Stack

Frontend

  • React
  • TypeScript
  • Vite
  • CSS

Backend

  • FastAPI
  • SQLAlchemy
  • Pydantic
  • Uvicorn

Database

  • PostgreSQL (Supabase)

Deployment

  • Frontend β†’ Vercel
  • Backend β†’ Render
  • Database β†’ Supabase

Testing

  • Pytest
  • FastAPI TestClient

Architecture

                   React + TypeScript
                    (Vercel Frontend)
                            β”‚
                            β”‚ HTTP Requests
                            β–Ό
                  FastAPI REST API
                    (Render Backend)
                            β”‚
                     SQLAlchemy ORM
                            β”‚
                            β–Ό
                 PostgreSQL Database
                       (Supabase)

Project Structure

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

Live Deployment

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.


API Endpoints

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

Running Locally

Clone Repository

git clone https://github.com/alymkarim/taskflow.git

cd taskflow

Backend

cd backend

python -m venv .venv

source .venv/Scripts/activate

pip install -r requirements.txt

python -m uvicorn app.main:app --reload

Backend

http://127.0.0.1:8000

Swagger

http://127.0.0.1:8000/docs

Frontend

cd frontend

npm install

npm run dev

Frontend

http://localhost:5173

Docker

Build backend image

docker build -t taskflow-backend .

Run container

docker run -p 8000:8000 taskflow-backend

Testing

Run all tests

pytest

Run API tests

pytest tests/test_api.py

Run CRUD tests

pytest tests/test_crud.py

Cloud Deployment

Component Platform
Frontend Vercel
Backend Render
Database Supabase PostgreSQL
Containerization Docker

Learning Outcomes

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

Future Improvements

  • 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

License

This project is licensed under the MIT License.

About

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

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages