🔗 Live demo: https://task-manager-j4eg.onrender.com
Note: hosted on Render's free tier — the first load after inactivity may take 30–60 seconds to wake up.
A web app where students log in, add assignments with deadlines, mark them done, and track progress on a dashboard.
Built as a learning project to practice a full backend + frontend + testing + deployment workflow.
- Backend: Python, Flask (REST API)
- Database: SQLite
- Frontend: HTML, CSS, JavaScript (vanilla)
- Testing: Pytest
- Containerization: Docker
- CI/CD: GitHub Actions
- User registration and login (passwords securely hashed, never stored in plain text)
- Add, view, mark-done, and delete tasks
- Progress percentage based on completed vs total tasks
- Deadline shown with days-remaining, calculated live (not stored)
| Method | Route | Purpose |
|---|---|---|
| GET/POST | /register | show register page / create a new user |
| GET/POST | /login | show login page / authenticate |
| POST | /logout | end session |
| GET | /tasks | get all tasks for logged-in user |
| POST | /tasks | create a new task |
| PUT | /tasks/<id> | update a task (e.g. mark done) |
| DELETE | /tasks/<id> | delete a task |
| GET | /progress | return progress % for logged-in user |
git clone https://github.com/ShaikhAhmed39/task-manager.git
cd task-manager
python -m venv venv
venv\Scripts\activate # Windows
pip install -r requirements.txt
python app.pyVisit http://127.0.0.1:5000
pytestdocker build -t task-manager .
docker run -p 5000:5000 task-managerVisit http://127.0.0.1:5000
task-manager/
├── app.py # Flask app + all routes
├── models.py # Database setup
├── requirements.txt
├── static/
│ ├── style.css
│ └── script.js
├── templates/
│ ├── login.html
│ ├── register.html
│ └── dashboard.html
├── tests/
│ └── test_api.py
├── Dockerfile
├── .dockerignore
└── .github/workflows/main.yml # CI: runs tests on every push