A lightweight RESTful API for managing educational data. Built with Flask‑RESTX for interactive swagger-style documentation, sqlite3 for persistence, pytest for unit testing, and integrated logging.
| Component | Technology |
|---|---|
| Framework | Flask‑RESTX |
| Database | sqlite3 |
| Testing | pytest |
| Logging | Python logging |
| Doc | Swagger (via RESTX) |
- Interactive API documentation with Swagger UI
- RESTful operations for Students, Courses & Enrollments
- Persistent storage using sqlite3 (local file)
- Structured logging for API calls and internal events
- Unit & integration tests with pytest
# Clone the repo
git clone https://github.com/guerrerojasper/edutrack-api.git
cd edutrack-api
# Create virtual env & install dependencies
python3 -m venv venv
source venv/bin/activate # on Windows: venv\Scripts\activate
pip install -r requirements.txt
# Initialize database
flask db init
flask db migrate
flask db upgrade
python3 run.pyVisit http://127.0.0.1:5000/swagger to access Swagger UI and explore endpoints.
Run unit tests.
pytest --maxfail=1 --disable-warnings -q
- Uses Python's standard logging module.
- Logs HTTP requests, responses (with statuses), and error tracebacks.
- Output to console and optionally to edutrack.log file
/logsfolder (configurable).