Desktop-based college academic record management and performance analysis system built with Python (Tkinter) and SQL (via SQLAlchemy).
- Student management (add/update/delete)
- Course management (add/update/delete)
- Enrollment management (enroll/remove)
- Attendance management (store total classes + attended classes per enrollment)
- Marks management (multiple assessments per enrollment)
- Performance analysis
- Attendance percentage
- Marks percentage
- Course class averages
- At-risk list (low attendance / low marks)
- Python 3.10+ (works with Python 3.13)
- Tkinter (built into standard Python on Windows)
- SQLAlchemy ORM
- SQLite by default (file DB in
data/carpas.db) - Optional: MySQL / PostgreSQL via SQLAlchemy drivers
main.py– entrypointcarpas/– application packageconfig.py– environment/config loadermodels.py– database modelsdb.py– engine/session and DB initservices.py– CRUD + analysis logicui/– Tkinter UI
data/– local database folder (SQLite file is gitignored)
- Create a virtual environment:
py -m venv .venv- Install dependencies:
.\.venv\Scripts\python -m pip install --upgrade pip
.\.venv\Scripts\python -m pip install -r requirements.txt- (Optional) Configure environment variables:
- Copy
.env.exampleto.env - Set
CARPAS_DATABASE_URLif you want MySQL/PostgreSQL
- (Optional) Seed synthetic/demo data (for screenshots/viva):
.\.venv\Scripts\python -m carpas.seedTo delete existing data and reseed (dangerous):
.\.venv\Scripts\python -m carpas.seed --reset- Run the app:
.\.venv\Scripts\python main.pyAlternative:
.\.venv\Scripts\python -m carpasBy default, the app uses SQLite:
sqlite:///data/carpas.db
To use MySQL (requires a MySQL server running):
mysql+pymysql://username:password@localhost:3306/carpas
To use PostgreSQL (requires a PostgreSQL server running):
postgresql+pg8000://username:password@localhost:5432/carpas
Set one of these in .env as:
CARPAS_DATABASE_URL=...
- If you get an error about
tkinter, reinstall Python with Tcl/Tk support enabled. - The SQLite database file is created automatically on first run.
- Export reports to PDF
- Advanced graphical reports (charts)
- Role-based login (admin/operator)