How aadisrimenon/reva-student-management-system-java works
This is an in-memory, console-based university student management system. The principal workflow starts with a console user choosing an operation in Main: student records are registered or searched and sorted through StudentService, grades and semester fees are calculated, and record and department-fee reports are displayed. Faculty records support the university-directory polymorphism demonstration. The model defines student/person and payable/reporting contracts; there is no persistent database or external service. The README documents the evaluator demonstrations, but their individual control flow is not fully sampled.
Main entry points: Main.java Menu and handlers · StudentService.java Student records · Student.java Student · Faculty.java Faculty
Components 11
Console workflow
- Menu and handlers
src/com/reva/sms/main/Main.java
Student services
- Student records
src/com/reva/sms/service/StudentService.java
University model
- Student
src/com/reva/sms/model/Student.java - Faculty
src/com/reva/sms/model/Faculty.java - Person base
src/com/reva/sms/model/Person.java - Department rates
src/com/reva/sms/model/Department.java - Payable contract
src/com/reva/sms/model/Payable.java - Reportable contract
src/com/reva/sms/model/Reportable.java
Assessments
- Grade calculation
src/com/reva/sms/service/GradeCalculator.java - Fee calculation
src/com/reva/sms/service/FeeCalculator.java
Other components
- Console user
Connections 12
- Console user → Menu and handlers: chooses operations
- Menu and handlers → Student records: manages records
- Menu and handlers → Grade calculation: requests grades
- Menu and handlers → Fee calculation: requests fees
- Student records → Student: creates and manages
- Student records → Faculty: stores faculty
- Student records → Department rates: groups fee analytics
- Fee calculation → Department rates: reads credit rates
- Student → Person base: extends
- Faculty → Person base: extends
- Student → Payable contract: implements
- Payable contract → Reportable contract: extends