A full-stack task manager application built using Flask, MongoDB, and modern HTML/CSS/JavaScript for seamless task management. Users can create, view, update, and delete tasks both from the UI and API.
- ✅ RESTful API with Flask
- ✅ MongoDB as the backend database
- ✅ Responsive UI using HTML/CSS/JavaScript
- ✅ Real-time updates without page reloads
- ✅ Status and priority filters
- ✅ Postman collection support
task-manager-app/
├── flask_api_server.py # Main Flask server
├── .env # Environment variables (not tracked by Git)
├── .gitignore # Ignored files/folders
├── requirements.txt # Python package dependencies
├── run_tests.py # Test runner with coverage
│
├── docs/
│ ├── index.html # Frontend HTML (Jinja2)
│ ├── style.css # CSS styling
│ └── script.js # Frontend logic (JS)
|
└── tests/ # Test suite
├── test_api.py
├── test_integration.py
└── test_unit_logic.py
Here’s what the Task Manager looks like:
- Swagger UI is available at: http://localhost:5000/swagger-ui
- OpenAPI JSON schema is served at: http://localhost:5000/openapi.json
This project uses Keploy to record and replay API calls for test generation using real-time traffic, enabling high test coverage without manual test writing.
- Records curl-based traffic.
- Automatically generates unit and integration tests.
- Validates API behavior deterministically.
git clone https://github.com/your-username/task-manager-app.git
cd task-manager-apppython -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activatepip install -r requirements.txtMONGO_URI=mongodb://localhost:27017/
PORT=5000Make sure your MongoDB server is running locally (or use MongoDB Atlas).
python flask_api_server.pyThen visit: http://localhost:5000
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/tasks |
Get all tasks |
| GET | /api/tasks/<id> |
Get a specific task |
| POST | /api/tasks |
Create a new task |
| PUT | /api/tasks/<id> |
Update a task |
| DELETE | /api/tasks/<id> |
Delete a task |
| GET | /api/stats |
Get task statistics |
You can test these using Postman or cURL.
- Clean UI built with HTML5, CSS3, and Vanilla JS
- Tasks auto-update after creation
- Form validation and user feedback
- Filters for status and priority
- No frameworks — just pure frontend
- Unit, integration, and API tests written with
unittest+coverage - Current coverage: 69%
- To view HTML report:
coverage html
start coverage_html/index.html # Or open manually in browser.envis in.gitignoreand should never be committed.- Keep credentials and secrets in
.envonly. - Always use environment variables for production configurations.
Flask==3.0.3
Flask-Cors==4.0.1
pymongo==4.7.2
python-dotenv==1.0.1
Install them with:
pip install -r requirements.txt- User authentication & login
- Deadline reminders or email alerts
- Task tagging and search
- Deploy to Render/Heroku with MongoDB Atlas
Made by Sayak
This project is open-source under the MIT License.



