Student Task Tracker is a simple web application for students to manage their academic tasks.
Users can create, edit, and delete tasks, assign them to specific subjects and deadlines, and mark their completion status.
The app helps students stay organized and ensures they never miss important deadlines.
Developed as part of Programming Fundamentals course at NUP 2025.
- Create, edit, and delete tasks
- Assign subject, description, and due date
- Mark task status as “in progress” or “completed”
- Filter and view tasks by date or subject
- Simple browser-based interface
- Data storage using SQLite
- Python 3.11
- Flask
- Docker
- Clone the repository:
git clone https://github.com/CS-intro-with-Python/cs-project-2025-Tacitus-SL
cd cs-project-2025-Tacitus-SL- Create a virtual environment and install dependencies:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
- Build and start the container:
docker-compose up --build
- Start the server:
python3 server.py
- The app will be available at: http://localhost:5000
Run unit tests with pytest:
pytest unit_tests.py
This project uses GitHub Actions for continuous integration.
The workflow runs automatically on every push to the repository and includes the following checks:
- Docker Build – verifies that the Docker image builds successfully.
- Container Run – ensures that the container starts and the application runs.
- Route Check – uses a Python client with the
requestslibrary to verify that the main route (/) is accessible and responds correctly.
All workflow runs are visible in the Actions tab of the GitHub repository, and must pass for the project to be considered fully functional.
.
├── client.py # Client-side script for interacting with the server (HTTP requests)
├── server.py # Main backend server (application logic and routes)
├── Dockerfile # Docker configuration for containerizing the application
├── Docs.md # Project documentation (API routes, descriptions, examples)
├── README.md # Project overview, setup, and usage instructions
├── requirements.txt # Python project dependencies
├── log_config.py # Application logging configuration
├── unit_tests.py # Unit tests for validating application logic
├── instance/
│ └── tasks.db # SQLite database storing academic tasks
├── static/
│ └── css/
│ └── style.css # CSS styles for HTML templates
├── templates/
│ ├── base.html # Base HTML template
│ ├── index.html # Main page displaying the list of tasks
│ ├── add_task.html # Page for adding a new task
│ ├── edit_task.html # Page for editing an existing task
│ ├── delete_task.html # Task deletion confirmation page
│ └── complete_task.html # Page for marking a task as completed