This repository provides a new software system (non-game): a Course Registration System with student and administrator roles, course enrollment/drop, timetable conflict checks, capacity limits, prerequisite validation, and SQLite persistence.
+-------------------+ +---------------------+ +-----------------------+
| Tkinter Login UI | ---> | Role-based Panel | ---> | Student/Admin Actions |
| (admin/student) | | (Student / Admin) | | enroll/drop/open/close|
+-------------------+ +---------------------+ +-----------------------+
| | |
v v v
SQLite users table Rule Engine (conflict, SQLite courses/enrollments/
capacity, prerequisites) prerequisites/completions
- Education / administrative information system
- Agile (iterative incremental)
- Rules and UX (e.g., enrollment conflict messages) are easier to refine in short iterations with immediate testing.
- Student/admin features can be delivered incrementally while keeping a runnable pilot at all times.
- Small school departments for pilot-level course enrollment workflows
- Classroom software engineering demonstrations
- Iteration 1: data model and SQLite schema
- Iteration 2: authentication + course listing
- Iteration 3: enrollment/drop with rules (capacity/conflict/prerequisite)
- Iteration 4: admin controls + documentation and demo prep
Replace placeholders before submission.
| Member | Role | Responsibilities | Portion |
|---|---|---|---|
| TO_BE_FILLED_A | PM/Analyst | requirement analysis, planning, README/report writing | 33.33% |
| TO_BE_FILLED_B | Backend Developer | SQLite schema, enrollment engine, conflict/prerequisite logic | 33.33% |
| TO_BE_FILLED_C | Frontend Developer | Tkinter UI for student/admin dashboards and chart widgets | 33.33% |
| TO_BE_FILLED_D | QA/Demo Engineer | test scenarios, data validation, video recording and polishing | 33.33% |
| Week | Planned work | Status |
|---|---|---|
| Week 1 | architecture + database schema | Done |
| Week 2 | student panel + enrollment rules | Done |
| Week 3 | admin panel + course management | Done |
| Week 4 | docs/video/submission packaging | In progress |
- Time conflict: reject enrollment when same day and time interval overlaps an existing schedule.
- Capacity check: reject enrollment when
enrolled >= capacity. - Prerequisite check: reject enrollment if required completed courses are missing.
- Login with role-based views (
admin,student) - Student functions: view all courses, enroll, drop, view own schedule
- Student waitlist functions: join/leave waitlist and track queue position
- Admin functions: open/close course, create new course
- Admin dashboard statistics chart (courses/open/enrollments/waitlists)
- Admin waitlist viewer per selected course
- Admin manual waitlist priority adjustment (move up/down)
- Admin one-click promote selected waitlist student (priority override admission)
- Rule engine: capacity, conflict, prerequisite validation
- Auto-promotion from waitlist when a seat is released
- SQLite persistence with seed data
- Password hashing and stronger account management
- Export timetable/report to CSV
- Web version (Flask/FastAPI) and API layer
- Demo URL:
TO_BE_FILLED_BEFORE_SUBMISSION - Recommended duration: 10–15 minutes
Demo should include:
- how to start the software
- student login and enrollment scenarios
- admin login and course open/close/create operations
- Python 3.10+
- CPU: Any modern processor
- RAM: 2 GB+
- OS: macOS/Windows/Linux desktop with Tk support
- No third-party packages are required for core features
- Uses Python standard library only (
tkinter,sqlite3,pathlib, etc.)
From project root:
python3 -m src.appDemo accounts:
admin / admin123alice / alice123bob / bob123
This project is an original academic software prototype.
Third-party/open-source usage:
- Python Standard Library modules only
- No external proprietary datasets/assets included
- Source code uploaded to GitHub
- README completed with real member names
- Demo video URL added
- Contribution form prepared for Canvas
- GitHub link submitted in Canvas