A premium task management web application built for the AcmeAI Fellowship Technical Assignment.
- Full CRUD: Create, View, Edit, and Delete tasks.
- Status Toggle: Easily switch between 'Pending' and 'Completed'.
- Filtering: Filter tasks by their current status.
- Persistent Storage: All data is saved in a PostgreSQL (Supabase) database.
- Modern UI: Clean, responsive interface with SweetAlert2 notifications.
- Frontend: Plain HTML5, CSS3 (Vanilla), JavaScript (ES6+)
- Backend: Python 3.11+, FastAPI
- Database: PostgreSQL (via Supabase)
- Deployment: Optimized for Vercel
- Python: 3.11 or higher
- pip: Python package installer
- PostgreSQL Database: A running instance (e.g., Supabase)
.
├── api/ # Backend API logic and routes
│ ├── tasks.py # Task CRUD endpoints
│ └── index.py # Vercel entry point
├── database/ # Database initialization scripts
│ └── init_db.py # Tables creation script
├── templates/ # Frontend assets (Static Files)
│ ├── index.html # Main UI
│ ├── style.css # Premium styling
│ └── script.js # Frontend logic & API calls
├── main.py # Application entry point (FastAPI)
├── vercel.json # Vercel deployment configuration
├── requirements.txt # Python dependencies
├── .env # Environment variables (Real)
└── .env.example # Environment variables (Placeholder)
-
Clone the Repository:
git clone https://github.com/r0nY-0017/TaskFlow.git cd TaskFlow -
Install Dependencies:
pip install -r requirements.txt
-
Environment Configuration:
- Copy
.env.exampleto.env. - Update the
DATABASE_URLin.envwith your actual PostgreSQL connection string.
- Copy
-
Initialize Database: Run the following script to create the necessary tables:
python database/init_db.py
-
Run the Application:
python main.py
Open
http://localhost:8000in your browser.
The backend exposes the following RESTful endpoints:
- GET
/api/tasks: Retrieve all tasks. - POST
/api/tasks: Create a new task. - PUT
/api/tasks/:id: Update an existing task (title, description). - PATCH
/api/tasks/:id/toggle: Toggle task completion status. - DELETE
/api/tasks/:id: Delete a task.
The project is configured for one-click deployment to Vercel.
- Simply run
vercelin the root directory. - Add your
DATABASE_URLas an environment variable in the Vercel dashboard.
Built with ❤️ by Md. Mehedi Hasan Rony