A comprehensive academic tracking system for educational institutions, built with Java and JavaFX.
SchoolTrack manages the complete academic lifecycle of students, including enrollment, class assignments, grade tracking, and payment management. The system maintains data integrity through synchronized operations and implements temporal access controls to protect historical records.
- Hierarchical Structure: Organizes academic data in sections → classes → students
- Subject Management: Track subjects with coefficients and active/inactive status
- Grade Tracking: Automated grade generation and weighted average calculations
- Report Cards: Trimester-based bulletins with PDF export functionality
- Fee Categories: Configurable payment rubriques per class
- Payment Tracking: Monitor tuition payments and installments
- Cashier Dashboard: Financial overview and payment processing
- Role-based Access: Different interfaces for administrators, secretaries, and cashiers
- Temporal Restrictions: Prevent modification of historical academic data
- Academic Year Filtering: All operations scoped to current academic year
- Section: Top-level division (Primary, Secondary, etc.)
- Classe: Grade/class level within a section
- Matiere: Subject with coefficient and status
- Bulletin: Trimester report card (3 per student per year)
- Note: Individual grade for a subject on a bulletin
- Rubrique: Payment category with amount and description
- DAO pattern implementation for all entities
- Automatic note generation when subjects are added
- Synchronized bulletin creation on student enrollment
- Referential integrity through foreign key relationships
- JavaFX-based desktop application
- Role-specific dashboards and controllers
- Dynamic table updates with cascading choice boxes
- PDF generation for report cards
- Select section and class for current academic year
- Add student to class
- System automatically generates 3 bulletins (one per trimester)
- Notes are created for all active subjects in each bulletin
- Open bulletin interface for specific student and trimester
- Edit grades in table format
- System calculates weighted average automatically
- Export bulletin as PDF
- Add/edit subjects with coefficients
- System updates all student bulletins in the class
- Notes are generated/removed to maintain data consistency
- Connection pooling via DBManager
- Prepared statements for SQL injection prevention
- Transaction management for data consistency
- Weighted average calculation: Σ(note × coefficient) / Σ(coefficient)
- Temporal validation using CURRENT_YEAR constant
- Automatic synchronization between related entities
- Custom DAOException for database errors
- User-friendly error messages for validation failures
- Alert dialogs for operation feedback
src/main/java/com/schooltrack/
├── controller/ # UI controllers
│ ├── admin/ # Administrator interfaces
│ ├── caissier/ # Cashier interfaces
│ └── secretaire/ # Secretary interfaces
├── models/ # Data models
│ └── datasource/ # DAO implementations
├── jdbc/ # Database connection management
├── pdf/ # PDF generation utilities
└── utils/ # Utility classes and constants
- JavaFX for UI framework
- JDBC for database connectivity
- iText for PDF generation
- SQL injection prevention through prepared statements
- Role-based access control
- Temporal data protection
- Input validation on all forms