A modern task management application built with Flask, SQLAlchemy, and a clean web interface. This application allows users to create, read, update, and delete tasks through both a web interface and REST API endpoints.
- Clean and responsive web interface
- RESTful API endpoints
- SQLite database for data persistence
- Task status tracking
- Real-time updates without page refresh
Before you begin, ensure you have the following installed:
- Python 3.9 or higher
- pip (Python package installer)
- Clone the repository:
git clone https://github.com/TennysonGeorge/task-manager-app.git
cd task-manager-app/task-manager-api- Create a virtual environment:
# For macOS/Linux
python3 -m venv task-manager
source task-manager/bin/activate
# For Windows
python -m venv task-manager
task-manager\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Activate the virtual environment (if not already activated):
# For macOS/Linux
source task-manager/bin/activate
# For Windows
task-manager\Scripts\activate- Start the Flask application:
python app.py- Access the application:
- Web Interface: Open
http://127.0.0.1:5001in your browser - API Endpoints: Available at
http://127.0.0.1:5001/tasks
| Method | Endpoint | Description |
|---|---|---|
| GET | / |
Web interface |
| GET | /tasks |
Retrieve all tasks |
| POST | /tasks |
Create a new task |
| GET | /tasks/<id> |
Retrieve a specific task |
| PUT | /tasks/<id> |
Update a task |
| DELETE | /tasks/<id> |
Delete a task |
Create a new task:
curl -X POST http://127.0.0.1:5001/tasks \
-H "Content-Type: application/json" \
-d '{"title": "New Task", "description": "Task description"}'task-manager-api/
├── api/
│ ├── __init__.py
│ ├── models.py # Database models
│ └── routes.py # API routes
├── static/
│ ├── css/
│ │ └── style.css # Application styles
│ └── js/
│ └── script.js # Frontend JavaScript
├── templates/
│ └── index.html # Main HTML template
├── app.py # Application entry point
├── requirements.txt # Python dependencies
└── README.md # This file
To run the application in development mode with debug features:
python app.pyThe application will automatically reload when you make changes to the code.
The application includes Docker support for containerized deployment.
- Build the Docker image:
docker build -t task-manager-api .- Run the container:
docker run -p 5001:5000 task-manager-apiOr use Docker Compose:
docker-compose upRun the test suite:
pytest- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.