How canny-seiji/unimatrix works
UniMatrix is a desktop exam-scheduling application for managing academic resources and building, editing, organizing, and reviewing exam schedules. The principal workflow runs from schedule-management views through manual or generated planning, rule validation, and persistence; users can also organize schedule files, inspect dashboard summaries, and export schedules as PDFs. The graph reflects the sampled sources and source-index references; the README is empty, and some subsystem links remain unverified because their implementations were not excerpted.
Main entry points: ScheduleEditorService.java Schedule editor · ManageSchedulesPanel.java Schedule management · WorkspaceService.java Workspace and trash · ExamScheduleDAO.java Exam data access
Components 31
Desktop interface
- Application startup
src/main/java/com/unimatrix/App.java - Login view
src/main/java/com/unimatrix/view/LoginView.java - Main dashboard
src/main/java/com/unimatrix/view/MainDashboardView.java - Dashboard summaries
src/main/java/com/unimatrix/view/DatabaseDashboardProvider.java - Schedule management
src/main/java/com/unimatrix/view/ManageSchedulesPanel.java - Manual scheduling
src/main/java/com/unimatrix/view/ManualSchedulePanel.java - Automatic scheduling
src/main/java/com/unimatrix/view/AutoGeneratePanel.java - Schedule overview
src/main/java/com/unimatrix/view/ScheduleOverview.java - Data management
src/main/java/com/unimatrix/view/ManageDataPanel.java - Background tasks
src/main/java/com/unimatrix/view/BackgroundTask.java - UI theme
src/main/java/com/unimatrix/view/theme/UniMatrixTheme.java - Account management
src/main/java/com/unimatrix/view/AccountPanel.java
Schedule planning
- Scheduling engine
src/main/java/com/unimatrix/service/SchedulingEngine.java - Explicit planner
src/main/java/com/unimatrix/service/ExplicitPlanner.java - Planning rules
src/main/java/com/unimatrix/service/PlanningRules.java - Schedule editor
src/main/java/com/unimatrix/service/ScheduleEditorService.java - Schedule validation
src/main/java/com/unimatrix/service/ScheduleValidator.java - Schedule history
src/main/java/com/unimatrix/service/ScheduleHistory.java - PDF export
src/main/java/com/unimatrix/service/SchedulePdfExporter.java
Persistence and workspace
- Workspace and trash
src/main/java/com/unimatrix/service/WorkspaceService.java - MySQL database
- Database connections
src/main/java/com/unimatrix/dao/DatabaseConnection.java - Transactions
src/main/java/com/unimatrix/dao/Transactions.java - Catalog data access
src/main/java/com/unimatrix/dao/EntityDataDAO.java - Exam data access
src/main/java/com/unimatrix/dao/ExamScheduleDAO.java - Schedule folders
src/main/java/com/unimatrix/dao/ScheduleFolderDAO.java
Scheduling domain
- Schedule document
src/main/java/com/unimatrix/model/ScheduleDocument.java - Exam assignment
src/main/java/com/unimatrix/model/ExamSchedule.java - Course and resource models
src/main/java/com/unimatrix/model/Course.java - Exam time rules
src/main/java/com/unimatrix/service/ExamTimes.java
Other components
- Staff user
Connections 41
- Staff user → Login view: signs in
- Application startup → Login view: opens
src/main/java/com/unimatrix/App.java - Staff user → Main dashboard: uses
- Main dashboard → Dashboard summaries: loads summaries
- Dashboard summaries → Exam data access: loads exams
src/main/java/com/unimatrix/view/DatabaseDashboardProvider.java - Dashboard summaries → MySQL database: reads counts
- Staff user → Schedule management: manages schedules
- Schedule management → Manual scheduling: opens manual editor
src/main/java/com/unimatrix/view/ManageSchedulesPanel.java - Schedule management → Automatic scheduling: opens generator
src/main/java/com/unimatrix/view/ManageSchedulesPanel.java - Manual scheduling → Schedule editor: edits schedules
src/main/java/com/unimatrix/view/ManualSchedulePanel.java - Automatic scheduling → Scheduling engine: requests generation
- Scheduling engine → Explicit planner: delegates planning
src/main/java/com/unimatrix/service/SchedulingEngine.java - Schedule editor → Schedule validation: validates edits
src/main/java/com/unimatrix/service/ScheduleEditorService.java - Schedule editor → Planning rules: checks constraints
src/main/java/com/unimatrix/service/ScheduleEditorService.java - Schedule editor → Catalog data access: loads catalog
src/main/java/com/unimatrix/service/ScheduleEditorService.java - Schedule editor → MySQL database: reads and writes
src/main/java/com/unimatrix/service/ScheduleEditorService.java - Schedule editor → Transactions: uses transactions
src/main/java/com/unimatrix/service/ScheduleEditorService.java - Schedule editor → Schedule history: records revisions
src/main/java/com/unimatrix/service/ScheduleEditorService.java - Planning rules → Exam time rules: checks intervals
src/main/java/com/unimatrix/service/PlanningRules.java - Planning rules → Exam assignment: checks assignments
src/main/java/com/unimatrix/service/PlanningRules.java - Schedule overview → Exam data access: loads schedules
src/main/java/com/unimatrix/view/ScheduleOverview.java - Schedule management → Schedule overview: shows schedules
src/main/java/com/unimatrix/view/ManageSchedulesPanel.java - Schedule management → Workspace and trash: organizes files
src/main/java/com/unimatrix/view/ManageSchedulesPanel.java - Workspace and trash → Schedule history: captures before moves
src/main/java/com/unimatrix/service/WorkspaceService.java - Workspace and trash → Transactions: uses transactions
src/main/java/com/unimatrix/service/WorkspaceService.java - Workspace and trash → MySQL database: updates workspace
src/main/java/com/unimatrix/service/WorkspaceService.java - Schedule management → Schedule folders: manages folders
src/main/java/com/unimatrix/view/ManageSchedulesPanel.java - Schedule management → PDF export: exports schedules
src/main/java/com/unimatrix/view/ManageSchedulesPanel.java - PDF export → Schedule document: renders document
src/main/java/com/unimatrix/service/SchedulePdfExporter.java - PDF export → Exam assignment: renders exams
src/main/java/com/unimatrix/service/SchedulePdfExporter.java - Catalog data access → Database connections: opens connection
src/main/java/com/unimatrix/dao/EntityDataDAO.java - Exam data access → Database connections: opens connection
src/main/java/com/unimatrix/dao/ExamScheduleDAO.java - Database connections → MySQL database: connects to
src/main/java/com/unimatrix/dao/DatabaseConnection.java - Exam data access → Schedule editor: saves through
src/main/java/com/unimatrix/dao/ExamScheduleDAO.java - Schedule editor → Schedule document: builds documents
src/main/java/com/unimatrix/service/ScheduleEditorService.java - Schedule document → Exam assignment: contains assignments
src/main/java/com/unimatrix/model/ScheduleDocument.java - Exam assignment → Course and resource models: references course
src/main/java/com/unimatrix/model/ExamSchedule.java - Staff user → Data management: maintains data
- Staff user → Account management: manages account
- Background tasks → Schedule management: supports tasks
src/main/java/com/unimatrix/view/ManageSchedulesPanel.java - Main dashboard → UI theme: uses styling
src/main/java/com/unimatrix/view/DashboardPreview.java