# EXAM SCHEDULING SYSTEM - DEVELOPMENT ROADMAP **Project:** Exam Planner Desktop Application **Team:** Team 3, Section 1 **Timeline:** 10 weeks (November 26, 2025 - February 4, 2026) **Technology Stack:** Java 17+, JavaFX, SQLite, Maven --- ## OVERVIEW This roadmap provides a week-by-week plan for developing the Exam Scheduling System. The project is structured into 5 major phases over 10 weeks, with clear deliverables and milestones for each week. ### Team Structure (Specialist Roles) | Team Member | Role | Primary Focus Areas | |------------|------|-------------------| | Kerem Bozdag | Database & Data Layer Lead | SQLite schema, DAO pattern, CSV import/export, data validation | | Milena Larissa Ünal | Algorithm Specialist | CSP solver, constraint validation, optimization strategies | | Rabia Tülay Gokdag | UI/FXML Specialist | JavaFX views, FXML layouts, Scene Builder, UI components | | Mehmet Sefa Keskin | Controller Layer Lead | MVC controllers, event handling, UI-business integration | | Feyza Gereme | Testing & QA Lead | JUnit tests, integration testing, CI/CD, test automation | | Emin Arslan | Documentation & Integration Lead | JavaDoc, user manual, code reviews, feature integration | --- ## PHASE 1: PROJECT FOUNDATION (WEEKS 1-3) ### Week 1: Setup & Infrastructure (Nov 26 - Dec 2) #### Goals - ✅ Project repository initialized - ✅ Development environment setup for all team members - ✅ Memory bank and documentation framework created - ✅ Maven/Gradle project structure established #### Tasks by Role **Database Lead (Kerem):** - [ ] Create SQLite database schema script (`schema.sql`) - [ ] Design ER diagram (use draw.io, Lucidchart, or similar) - [ ] Set up database connection utility class - [ ] Create basic DAO interfaces (StudentDAO, CourseDAO, ClassroomDAO, EnrollmentDAO) - [ ] Write unit tests for database connection and schema creation **Algorithm Specialist (Milena):** - [ ] Research backtracking CSP algorithms (review textbooks, papers) - [ ] Design high-level algorithm architecture - [ ] Define constraint validator interfaces - [ ] Create pseudocode for core backtracking algorithm - [ ] Document algorithm design in `ALGORITHM_DESIGN.md` **UI/FXML Specialist (Rabia):** - [ ] Set up Scene Builder on development machine - [ ] Design wireframes for main window and navigation - [ ] Create basic FXML layout for main window (`MainWindow.fxml`) - [ ] Design color scheme and styling guidelines - [ ] Create initial CSS stylesheet (`styles.css`) **Controller Lead (Sefa):** - [ ] Set up JavaFX application entry point (`Main.java`) - [ ] Create `MainController` skeleton - [ ] Implement basic navigation between views - [ ] Design controller architecture and interfaces - [ ] Document MVC layer interactions **Testing Lead (Feyza):** - [ ] Set up JUnit 5 in Maven/Gradle - [ ] Configure test directory structure - [ ] Set up GitHub Actions for CI (basic workflow) - [ ] Create test utility classes (`TestDataBuilder`) - [ ] Write first integration test (database schema creation) **Documentation Lead (Emin):** - [ ] Review and finalize `MEMORY_BANK.md` - [ ] Create `ROADMAP.md` (this document) - [ ] Create `TEAM_ASSIGNMENTS.md` with detailed responsibilities - [ ] Set up JavaDoc configuration in Maven/Gradle - [ ] Create Git workflow documentation (`GIT_WORKFLOW.md`) #### Deliverables - ✅ Git repository with initial project structure - ✅ Memory bank document (comprehensive) - ✅ Roadmap document (this file) - [ ] Database schema script - [ ] Algorithm design document - [ ] Basic UI wireframes - [ ] CI/CD pipeline (basic) - [ ] Team assignments document #### Meeting Schedule - **Monday (Nov 26):** Kickoff meeting - review requirements, assign roles, setup environments - **Wednesday (Nov 28):** Mid-week check-in - troubleshoot setup issues, review initial designs - **Friday (Nov 30):** Week 1 review - demo database schema, UI wireframes, algorithm pseudocode --- ### Week 2: Core Data Layer (Dec 3 - Dec 9) #### Goals - ✅ Database fully implemented with all tables - ✅ DAO layer complete with CRUD operations - ✅ CSV import functionality working - ✅ Data validation implemented #### Tasks by Role **Database Lead (Kerem):** *PRIMARY FOCUS THIS WEEK* - [ ] Implement all DAO classes (StudentDAO, CourseDAO, ClassroomDAO, EnrollmentDAO) - [ ] Add batch insert methods for performance - [ ] Implement transaction management (`TransactionManager` utility) - [ ] Create CSV parser utility (`CSVParser.java`) - [ ] Implement import service for all 4 CSV types - [ ] Add data validation (duplicates, format checks, referential integrity) - [ ] Write comprehensive DAO unit tests (target: >90% coverage) - [ ] Test with sample data files **Algorithm Specialist (Milena):** - [ ] Create domain model classes (Student, Course, Classroom, Enrollment, etc.) - [ ] Implement constraint validator skeleton - [ ] Write unit tests for constraint validation logic - [ ] Begin research on heuristics (MRV, least constraining value) **UI/FXML Specialist (Rabia):** - [ ] Create Import View FXML layout (`ImportView.fxml`) - [ ] Design file browse dialogs - [ ] Create results display area with styling - [ ] Add icons and visual feedback elements **Controller Lead (Sefa):** - [ ] Implement `ImportController` - [ ] Connect file browse buttons to file chooser dialogs - [ ] Integrate import service with UI - [ ] Display import results (success/error messages) - [ ] Handle import errors gracefully **Testing Lead (Feyza):** - [ ] Create test CSV files (valid and invalid cases) - [ ] Write integration tests for CSV import workflow - [ ] Test duplicate detection - [ ] Test error handling for malformed CSV files - [ ] Add test coverage reporting to CI pipeline **Documentation Lead (Emin):** - [ ] Review all DAO code and provide feedback - [ ] Ensure JavaDoc is complete for DAO layer - [ ] Create database documentation with examples - [ ] Document CSV file formats expected - [ ] Review and merge PRs for database layer #### Deliverables - [ ] Complete DAO layer with unit tests - [ ] CSV import functionality (all 4 file types) - [ ] Import View UI (functional) - [ ] Data validation with error reporting - [ ] Test coverage report (>85% for DAO layer) #### Meeting Schedule - **Monday (Dec 3):** Sprint planning - focus on data layer - **Wednesday (Dec 5):** Pair programming session - Kerem + Sefa (integrate DAO with UI) - **Friday (Dec 7):** Week 2 demo - import sample CSV files, show data in database browser --- ### Week 3: Configuration & Data Models (Dec 10 - Dec 16) #### Goals - ✅ Configuration view implemented - ✅ All domain model classes complete - ✅ Schedule and ExamAssignment DAOs implemented - ✅ Basic UI navigation working #### Tasks by Role **Database Lead (Kerem):** - [ ] Implement ScheduleDAO (save, load, list schedules) - [ ] Implement ExamAssignmentDAO (batch operations) - [ ] Add database indexes for performance - [ ] Create configuration service for saving user preferences - [ ] Test schedule persistence (save → load → verify) **Algorithm Specialist (Milena):** *PRIMARY FOCUS THIS WEEK* - [ ] Implement all domain model classes with proper encapsulation - [ ] Create ScheduleConfiguration class - [ ] Implement constraint validator methods: - `checkNoConsecutiveExams()` - `checkMaxTwoExamsPerDay()` - `checkClassroomCapacity()` - [ ] Write comprehensive unit tests for each constraint - [ ] Create test cases with known violations **UI/FXML Specialist (Rabia):** - [ ] Create Configuration View FXML (`ConfigurationView.fxml`) - [ ] Add number spinners for days and slots - [ ] Create radio buttons for optimization strategies - [ ] Design calculated fields (total slots display) - [ ] Add validation feedback (sufficient slots check) **Controller Lead (Sefa):** - [ ] Implement `ConfigurationController` - [ ] Add input validation (positive numbers only) - [ ] Calculate and display total slots - [ ] Enable/disable Generate button based on configuration validity - [ ] Save configuration to database **Testing Lead (Feyza):** - [ ] Write integration tests for configuration workflow - [ ] Test configuration validation logic - [ ] Create TestFX tests for configuration UI - [ ] Test navigation between Import and Configuration views **Documentation Lead (Emin):** - [ ] Document constraint validation logic - [ ] Create diagrams for data models (UML class diagrams) - [ ] Review algorithm design document - [ ] Ensure all model classes have JavaDoc - [ ] Create user guide for configuration #### Deliverables - [ ] Configuration view (fully functional) - [ ] All domain model classes - [ ] Constraint validation (tested) - [ ] Schedule persistence (DAO) - [ ] Navigation between views #### Meeting Schedule - **Monday (Dec 10):** Sprint planning - focus on models and configuration - **Wednesday (Dec 12):** Code review session - review constraint validation logic - **Friday (Dec 14):** Week 3 demo - configure exam period, show validation --- ## PHASE 2: CORE ALGORITHM (WEEKS 4-5) ### Week 4: CSP Solver Implementation (Dec 17 - Dec 23) #### Goals - ✅ Backtracking algorithm implemented - ✅ Basic solver working for simple cases - ✅ Constraint propagation (forward checking) implemented - ✅ Progress tracking integrated #### Tasks by Role **Algorithm Specialist (Milena):** *PRIMARY FOCUS THIS WEEK* - [ ] Implement `CSPSolver` class with backtracking algorithm - [ ] Implement variable ordering (MRV heuristic) - [ ] Implement value ordering (least constraining value) - [ ] Add forward checking for constraint propagation - [ ] Implement `ProgressTracker` callback mechanism - [ ] Test with small datasets (3-5 courses) - [ ] Measure performance and optimize if needed **Database Lead (Kerem):** - [ ] Create efficient query methods for solver: - `getStudentsForCourse(courseCode)` - `getCoursesForStudent(studentId)` - Pre-compute enrollment mappings for performance - [ ] Optimize database indexes for solver queries - [ ] Support Milena with data access needs **UI/FXML Specialist (Rabia):** - [ ] Create Generate View FXML (`ScheduleView.fxml`) - [ ] Design progress bar and status display - [ ] Create success/failure result screens - [ ] Add cancel button for long-running operations **Controller Lead (Sefa):** - [ ] Implement `ScheduleController` - [ ] Integrate CSP solver with UI using JavaFX Task - [ ] Update progress bar in real-time - [ ] Handle cancellation (interrupt solver) - [ ] Display success or failure results - [ ] Handle `NoSolutionException` gracefully **Testing Lead (Feyza):** - [ ] Create test datasets (solvable and unsolvable) - [ ] Write unit tests for solver with known solutions - [ ] Test constraint violations are detected - [ ] Test cancellation functionality - [ ] Benchmark solver performance (small dataset <10 seconds) **Documentation Lead (Emin):** - [ ] Document algorithm implementation details - [ ] Create flowchart for backtracking process - [ ] Review solver code for clarity and comments - [ ] Document optimization strategies - [ ] Update user guide with generation instructions #### Deliverables - [ ] Working CSP solver (basic cases) - [ ] Constraint validation integrated - [ ] Progress tracking UI - [ ] Performance benchmarks - [ ] Algorithm documentation #### Meeting Schedule - **Monday (Dec 17):** Sprint planning - focus on algorithm - **Wednesday (Dec 19):** Pair programming - Milena + Sefa (integrate solver with UI) - **Friday (Dec 21):** Week 4 demo - generate schedule for 5 courses --- ### Week 5: Optimization & Heuristics (Dec 24 - Dec 30) *Note: This week includes holidays (Christmas). Adjust schedule as needed.* #### Goals - ✅ All 4 optimization strategies implemented - ✅ Solver works for medium datasets (20 courses) - ✅ Conflict detection implemented - ✅ Performance optimized #### Tasks by Role **Algorithm Specialist (Milena):** *PRIMARY FOCUS THIS WEEK* - [ ] Implement optimization strategy interface and 4 concrete strategies: 1. MinimizeDaysStrategy 2. BalanceDistributionStrategy 3. MinimizeClassroomsStrategy 4. BalanceClassroomsStrategy - [ ] Integrate strategies with value ordering heuristic - [ ] Implement `ConflictDetector` for unsolvable cases - [ ] Test solver with sample data (20 courses, 250 students, 10 classrooms) - [ ] Optimize performance (memoization, caching) **Database Lead (Kerem):** - [ ] Profile database queries during solving - [ ] Add any missing indexes - [ ] Optimize batch operations - [ ] Support Milena with performance testing **UI/FXML Specialist (Rabia):** - [ ] Create conflict report display screen - [ ] Design recommendations UI - [ ] Improve progress display (time estimate) - [ ] Add visual feedback for different strategies **Controller Lead (Sefa):** - [ ] Integrate optimization strategy selection - [ ] Display conflict report when solver fails - [ ] Show recommendations to user - [ ] Add time estimate to progress display **Testing Lead (Feyza):** - [ ] Test all 4 optimization strategies - [ ] Verify strategies produce different solutions - [ ] Test performance with sample data (must complete <10 seconds) - [ ] Test conflict detection on unsolvable cases - [ ] Create performance benchmarks report **Documentation Lead (Emin):** - [ ] Document each optimization strategy - [ ] Create comparison of strategies (when to use each) - [ ] Review and improve code comments - [ ] Update user guide with strategy selection - [ ] Create troubleshooting guide for conflicts #### Deliverables - [ ] All 4 optimization strategies working - [ ] Solver handles sample data (<10 sec) - [ ] Conflict detection and reporting - [ ] Performance optimization complete - [ ] Strategy comparison documentation #### Meeting Schedule - **Monday (Dec 24):** *Holiday - No meeting* - **Wednesday (Dec 26):** *Holiday - No meeting* - **Friday (Dec 28):** Week 5 review (async/written update) --- ## PHASE 3: USER INTERFACE (WEEKS 6-7) ### Week 6: Schedule Views Implementation (Dec 31 - Jan 6) *Note: New Year's week - adjust as needed* #### Goals - ✅ All 4 schedule views implemented (Classroom, Student, Course, Day) - ✅ Data display working correctly - ✅ Filtering and sorting implemented - ✅ Views fully styled #### Tasks by Role **UI/FXML Specialist (Rabia):** *PRIMARY FOCUS THIS WEEK* - [ ] Create FXML layouts for all 4 views: - `ClassroomView.fxml` (table view) - `StudentView.fxml` (table with search) - `CourseView.fxml` (sortable table) - `DayView.fxml` (grid layout) - [ ] Design table column layouts - [ ] Add filter controls (dropdowns, search boxes) - [ ] Style tables (alternating rows, headers) - [ ] Add icons and visual hierarchy **Controller Lead (Sefa):** *PRIMARY FOCUS THIS WEEK* - [ ] Implement controllers for all 4 views: - `ClassroomViewController` - `StudentViewController` - `CourseViewController` - `DayViewController` - [ ] Populate tables with schedule data - [ ] Implement filtering logic - [ ] Implement sorting for table columns - [ ] Handle view switching **Database Lead (Kerem):** - [ ] Create query methods for each view: - Classroom view query (JOIN exams, courses, enrollments) - Student view query (filter by student) - Course view query (all courses with assignments) - Day view query (grid format) - [ ] Optimize queries for fast display (<100ms) **Algorithm Specialist (Milena):** - [ ] Support team with data transformation logic - [ ] Help with grid layout calculations for Day view - [ ] Review view logic for correctness **Testing Lead (Feyza):** - [ ] Write TestFX tests for each view - [ ] Test filtering functionality - [ ] Test sorting functionality - [ ] Test view switching - [ ] Test with various schedule sizes **Documentation Lead (Emin):** - [ ] Document view implementation - [ ] Create user guide for viewing schedules - [ ] Review UI code for consistency - [ ] Take screenshots for documentation - [ ] Create video walkthrough of views #### Deliverables - [ ] All 4 schedule views (functional) - [ ] Filtering and sorting working - [ ] Styled and polished UI - [ ] View documentation with screenshots - [ ] TestFX tests for views #### Meeting Schedule - **Monday (Dec 31):** *Holiday - No meeting* - **Wednesday (Jan 2):** Mid-week sync - review view progress - **Friday (Jan 4):** Week 6 demo - view generated schedule in all 4 views --- ### Week 7: Export & Manual Editing (Jan 7 - Jan 13) #### Goals - ✅ CSV export implemented - ✅ Excel export implemented - ✅ Manual editing with constraint validation - ✅ Export view complete #### Tasks by Role **Database Lead (Kerem):** - [ ] Implement export queries for all view types - [ ] Create `ExportService` class - [ ] Test data export accuracy - [ ] Support export functionality development **Algorithm Specialist (Milena):** - [ ] Implement manual edit validation - [ ] Create detailed error messages for constraint violations - [ ] Test edit validation thoroughly - [ ] Handle edge cases for edits **UI/FXML Specialist (Rabia):** - [ ] Create Export View FXML (`ExportView.fxml`) - [ ] Design format selection (CSV/Excel) - [ ] Add view selection checkboxes - [ ] Create file destination chooser - [ ] Design edit dialog for manual adjustments **Controller Lead (Sefa):** *PRIMARY FOCUS THIS WEEK* - [ ] Implement `ExportController` - [ ] Integrate CSV export (using `CSVWriter` utility) - [ ] Integrate Excel export (using Apache POI) - [ ] Add file save dialog - [ ] Display export success/error messages - [ ] Implement manual edit dialog controller - [ ] Validate edits before applying **Testing Lead (Feyza):** - [ ] Test CSV export (verify format, content) - [ ] Test Excel export (verify multi-sheet workbook) - [ ] Test manual edit validation (try violating each constraint) - [ ] Test edit rejection with proper error messages - [ ] Integration test: Generate → Edit → Export workflow **Documentation Lead (Emin):** - [ ] Document export file formats - [ ] Create export user guide - [ ] Document manual editing limitations - [ ] Review export code - [ ] Create example exported files #### Deliverables - [ ] CSV export (all 4 views) - [ ] Excel export (multi-sheet) - [ ] Manual editing (with validation) - [ ] Export view (complete) - [ ] Export documentation #### Meeting Schedule - **Monday (Jan 7):** Sprint planning - focus on export and editing - **Wednesday (Jan 9):** Pair programming - Sefa + Rabia (export UI) - **Friday (Jan 11):** Week 7 demo - export schedule, attempt manual edits --- ## PHASE 4: ADVANCED FEATURES (WEEK 8) ### Week 8: History, Conflict Detection, Polish (Jan 14 - Jan 20) #### Goals - ✅ Schedule history view implemented - ✅ Load previous schedules working - ✅ Conflict detection fully functional - ✅ All features integrated and polished #### Tasks by Role **Database Lead (Kerem):** - [ ] Implement schedule history queries - [ ] Add metadata display for schedules - [ ] Implement schedule deletion - [ ] Test save/load/delete workflows **Algorithm Specialist (Milena):** - [ ] Finalize conflict detector - [ ] Create detailed conflict reports - [ ] Add recommendations for each conflict type - [ ] Test with various unsolvable scenarios **UI/FXML Specialist (Rabia):** - [ ] Create History View FXML (`HistoryView.fxml`) - [ ] Design schedule list with metadata - [ ] Create conflict report display - [ ] Polish all UI screens (consistency, alignment, styling) - [ ] Add application icon and branding **Controller Lead (Sefa):** - [ ] Implement `HistoryController` - [ ] Load selected schedule from history - [ ] Delete schedules with confirmation - [ ] Display conflict reports - [ ] Polish all controller logic **Testing Lead (Feyza):** *PRIMARY FOCUS THIS WEEK* - [ ] Write integration tests for history workflow - [ ] Test conflict detection comprehensively - [ ] End-to-end testing (full workflow: import → configure → generate → view → export) - [ ] Performance testing with larger datasets - [ ] Create test report **Documentation Lead (Emin):** - [ ] Review all features for completeness - [ ] Update user guide with history and conflicts - [ ] Review all JavaDoc for completeness - [ ] Create feature comparison matrix - [ ] Conduct code review session with team #### Deliverables - [ ] History view (functional) - [ ] Conflict detection (complete) - [ ] All features polished - [ ] Integration tests complete - [ ] Feature documentation complete #### Meeting Schedule - **Monday (Jan 14):** Sprint planning - focus on polish and integration - **Wednesday (Jan 16):** Integration review - test full workflows - **Friday (Jan 18):** Week 8 demo - show all features working together --- ## PHASE 5: TESTING, DOCUMENTATION, POLISH (WEEKS 9-10) ### Week 9: Comprehensive Testing & Bug Fixes (Jan 21 - Jan 27) #### Goals - ✅ All unit tests complete (>70% coverage) - ✅ All integration tests complete - ✅ All bugs fixed - ✅ Performance targets met #### Tasks by Role **Testing Lead (Feyza):** *PRIMARY FOCUS THIS WEEK* - [ ] Run full test suite and generate coverage report - [ ] Identify untested code paths - [ ] Write additional tests to reach 70% coverage - [ ] Create test documentation - [ ] Verify performance benchmarks: - Small dataset (50 courses, 500 students): <10 sec ✓ - Sample dataset (20 courses, 250 students): <5 sec ✓ - [ ] Create bug report template - [ ] Track all bugs found **All Team Members:** - [ ] Fix assigned bugs - [ ] Add tests for bug fixes (regression tests) - [ ] Code cleanup (remove dead code, unused imports) - [ ] Improve error handling - [ ] Add logging where needed **Database Lead (Kerem):** - [ ] Final database optimization - [ ] Add any missing indexes - [ ] Test database performance under load - [ ] Create database backup/restore utility **Algorithm Specialist (Milena):** - [ ] Final algorithm optimization - [ ] Test edge cases thoroughly - [ ] Fix any constraint validation bugs - [ ] Optimize memory usage **UI/FXML Specialist (Rabia):** - [ ] Fix UI bugs (alignment, styling issues) - [ ] Test on different screen resolutions - [ ] Ensure consistent styling across all views - [ ] Test keyboard navigation **Controller Lead (Sefa):** - [ ] Fix controller logic bugs - [ ] Test error handling in all controllers - [ ] Ensure proper resource cleanup (close connections, etc.) - [ ] Test memory leaks **Documentation Lead (Emin):** - [ ] Review all bug fixes - [ ] Update documentation with any changes - [ ] Ensure JavaDoc is complete and accurate - [ ] Create known issues document #### Deliverables - [ ] Test coverage report (>70%) - [ ] All critical bugs fixed - [ ] Performance benchmarks met - [ ] Regression test suite - [ ] Bug fix documentation #### Meeting Schedule - **Monday (Jan 21):** Testing sprint planning - assign bug fixes - **Wednesday (Jan 23):** Bug triage meeting - prioritize remaining issues - **Friday (Jan 25):** Week 9 review - verify all tests passing, bugs fixed --- ### Week 10: Final Documentation & Delivery (Jan 28 - Feb 4) #### Goals - ✅ User manual complete with screenshots - ✅ Developer documentation complete - ✅ Deliverable package prepared - ✅ Final presentation ready #### Tasks by Role **Documentation Lead (Emin):** *PRIMARY FOCUS THIS WEEK* - [ ] Finalize user manual with screenshots and step-by-step instructions - [ ] Create installation guide - [ ] Write troubleshooting guide - [ ] Compile developer documentation (architecture, API, database schema) - [ ] Create README for repository - [ ] Prepare presentation slides **All Team Members:** - [ ] Review and proofread documentation - [ ] Test installation guide on fresh machine - [ ] Record demo video (optional but recommended) - [ ] Prepare individual sections for presentation - [ ] Final code cleanup and organization **Database Lead (Kerem):** - [ ] Prepare sample database file - [ ] Document database schema fully - [ ] Create ER diagram (final version) - [ ] Write database maintenance guide **Algorithm Specialist (Milena):** - [ ] Document algorithm implementation fully - [ ] Create algorithm flowcharts - [ ] Write performance tuning guide - [ ] Document optimization strategies **UI/FXML Specialist (Rabia):** - [ ] Take screenshots for user manual - [ ] Create UI component guide - [ ] Document styling approach - [ ] Create FXML template documentation **Controller Lead (Sefa):** - [ ] Document controller architecture - [ ] Create API documentation for controllers - [ ] Document event handling approach - [ ] Create integration guide for new features **Testing Lead (Feyza):** - [ ] Finalize test documentation - [ ] Create test execution guide - [ ] Document CI/CD pipeline - [ ] Create quality assurance report #### Deliverables - [ ] **User Manual** (PDF, 15-25 pages with screenshots) - [ ] **Developer Documentation** (JavaDoc + architecture docs) - [ ] **Source Code** (clean, commented, organized) - [ ] **Test Suite** (all tests passing, >70% coverage) - [ ] **Sample Database** (with sample data loaded) - [ ] **Executable JAR** (runnable application) - [ ] **Installation Guide** (step-by-step) - [ ] **Presentation Slides** (15-20 slides for final demo) - [ ] **Demo Video** (5-10 minutes, optional) #### Meeting Schedule - **Monday (Jan 28):** Final sprint planning - documentation tasks - **Wednesday (Jan 30):** Documentation review session - **Friday (Feb 1):** Final review meeting - verify all deliverables complete - **Tuesday (Feb 4):** Final presentation rehearsal --- ## FINAL DELIVERY CHECKLIST ### Code Quality - [ ] All code follows Java naming conventions - [ ] No compiler warnings - [ ] No dead code or commented-out code - [ ] All public methods have JavaDoc - [ ] Complex algorithms have explanatory comments - [ ] All TODOs resolved or documented ### Testing - [ ] All unit tests passing - [ ] All integration tests passing - [ ] Test coverage >70% overall - [ ] Critical paths (algorithm, constraints) >90% coverage - [ ] Performance benchmarks met ### Documentation - [ ] User manual complete with screenshots - [ ] Installation guide tested on fresh machine - [ ] JavaDoc generated and complete - [ ] Architecture documentation complete - [ ] Database schema documented - [ ] Algorithm design documented - [ ] README comprehensive ### Functionality - [ ] All functional requirements (FR1-FR12) implemented - [ ] All non-functional requirements (NFR1-NFR6) met - [ ] Import workflow works end-to-end - [ ] Schedule generation works for sample data - [ ] All 4 views display correctly - [ ] Export to CSV and Excel works - [ ] Manual editing with validation works - [ ] Schedule history works - [ ] Conflict detection works ### User Experience - [ ] Error messages are clear and actionable - [ ] All buttons/controls have clear labels - [ ] Navigation is intuitive - [ ] Progress indicators work correctly - [ ] Application doesn't freeze during long operations - [ ] Cancellation works ### Deployment - [ ] Executable JAR builds correctly - [ ] JAR runs on Windows 10/11 - [ ] Sample database included - [ ] Sample CSV files included - [ ] All dependencies bundled --- ## RISK MANAGEMENT ### Identified Risks & Mitigation Strategies #### Risk 1: Algorithm Performance Issues **Risk:** CSP solver may be too slow for larger datasets **Mitigation:** - Start performance testing early (Week 5) - Implement optimization (memoization, caching) proactively - Have fallback: greedy heuristic if backtracking is too slow - Test with sample data regularly #### Risk 2: Team Member Availability During Holidays **Risk:** Weeks 5 & 6 include holidays, reduced productivity **Mitigation:** - Plan lighter workload for those weeks - Schedule async updates instead of meetings - Front-load critical work (algorithm) to Week 4 - Build buffer time into schedule #### Risk 3: Integration Issues Between Layers **Risk:** DAO, algorithm, UI, controllers may not integrate smoothly **Mitigation:** - Define clear API contracts (see Memory Bank) - Conduct weekly integration reviews - Pair programming for integration points - Integration tests written early #### Risk 4: Testing Coverage Gap **Risk:** May not reach 70% test coverage in time **Mitigation:** - Write tests alongside code (not at the end) - Testing Lead monitors coverage weekly - CI/CD shows coverage on every commit - Dedicate Week 9 entirely to testing #### Risk 5: Unclear Requirements **Risk:** Ambiguity in requirements leads to rework **Mitigation:** - Memory Bank documents all decisions - Ask professor for clarification early - Team votes on technical decisions - Document all assumptions #### Risk 6: Scope Creep **Risk:** Team adds features beyond requirements **Mitigation:** - Stick to roadmap strictly - Any new features require team vote - Focus on requirements FR1-FR12 only - Save "nice to have" features for post-delivery --- ## SUCCESS METRICS ### Week-by-Week Progress Tracking | Week | Expected Completion | Key Milestone | |------|---------------------|---------------| | 1 | 10% | Project setup, infrastructure, designs | | 2 | 20% | Data layer complete, CSV import working | | 3 | 30% | Configuration working, constraints validated | | 4 | 50% | Basic CSP solver working | | 5 | 60% | All optimization strategies, sample data working | | 6 | 75% | All views implemented | | 7 | 85% | Export and editing complete | | 8 | 95% | All features complete and polished | | 9 | 98% | All tests passing, bugs fixed | | 10 | 100% | Documentation complete, ready for delivery | ### Definition of "Done" for Each Phase **Phase 1 (Foundation) Done When:** - Database schema created and tested - Import workflow works for all 4 CSV types - Configuration view functional - All team members can run project locally **Phase 2 (Algorithm) Done When:** - Solver generates valid schedules for sample data (20 courses, 250 students) - All constraints validated correctly - Performance <10 seconds for sample data - Conflict detection identifies unsolvable cases **Phase 3 (UI) Done When:** - All 4 views display schedule data correctly - Export to CSV and Excel works - Manual editing validates constraints - UI is polished and styled **Phase 4 (Advanced Features) Done When:** - Schedule history works (save/load/delete) - Conflict reports are detailed and helpful - All features integrated smoothly - No critical bugs remaining **Phase 5 (Testing & Documentation) Done When:** - Test coverage >70% - All tests passing - User manual complete with screenshots - Executable JAR builds and runs correctly --- ## COMMUNICATION & COLLABORATION ### Weekly Meeting Structure **Monday Sprint Planning (30 min):** - Review last week's progress - Discuss any blockers - Assign tasks for current week - Set goals for the week **Wednesday Mid-Week Sync (15-30 min):** - Quick status update from each person - Identify any issues early - Schedule pair programming if needed - Adjust week plan if necessary **Friday Demo & Retrospective (30-45 min):** - Each person demos their work - Celebrate wins - Discuss what went well - Discuss what to improve - Plan for next week ### Communication Channels **Synchronous:** - Weekly meetings (Monday, Wednesday, Friday) - Pair programming sessions (as needed) - Emergency sync (if someone is blocked) **Asynchronous:** - WhatsApp/Discord (daily updates, quick questions) - GitHub (code reviews, PR comments) - Email (formal communication with professor) ### Code Review Process **PR Requirements:** - At least one approval required - All tests must pass (CI/CD check) - No merge conflicts - Description follows template **Review Checklist:** - Code quality (naming, structure, comments) - Tests included - JavaDoc complete - No obvious bugs **Turnaround Time:** - PRs should be reviewed within 24 hours - Small PRs preferred (easier to review) --- ## CONTINGENCY PLANS ### If We Fall Behind Schedule **Mild Delay (1-2 days):** - Extend current week's work into weekend - Reduce scope of next week slightly - Skip optional features **Moderate Delay (3-5 days):** - Hold emergency team meeting - Re-prioritize features (focus on FR1-FR4 core features) - Reduce test coverage goal to 60% - Simplify UI (less polish) **Severe Delay (>1 week):** - Meet with professor to discuss extension or scope reduction - Cut advanced features (manual editing, history) - Focus on core workflow: import → configure → generate → view → export - Minimal UI (functional but not polished) ### If Team Member Is Unavailable **Short-term (1-3 days):** - Other team members cover their tasks - Documentation Lead coordinates coverage **Long-term (>1 week):** - Redistribute responsibilities permanently - Reduce scope if necessary - Adjust roadmap ### If Technical Challenge Arises **Algorithm doesn't perform well:** - Implement greedy heuristic as fallback - Reduce sample data size - Extend time limit to 30 seconds **UI framework issues:** - Simplify UI design - Use basic components instead of custom ones - Accept less polished UI **Database performance issues:** - Add more indexes - Use in-memory caching - Pre-compute complex queries --- ## POST-DELIVERY (OPTIONAL) ### Potential Enhancements (Beyond Scope) If time permits after requirements are met, consider: 1. **Multi-classroom exams:** Allow splitting large courses across multiple rooms 2. **Time slot templates:** Save common configurations (e.g., "Standard 2-week period") 3. **Conflict visualization:** Graph showing which students/courses conflict 4. **Auto-save:** Periodically save work-in-progress 5. **Undo/Redo:** For manual edits 6. **Classroom features:** Add classroom attributes (projector, capacity, building) 7. **Custom constraints:** Allow user to add soft constraints 8. **Schedule comparison:** Compare two schedules side-by-side 9. **Print preview:** Formatted print layouts for schedules 10. **Dark mode:** Alternative UI theme **Note:** Only pursue enhancements if core requirements are 100% complete and polished. --- ## APPENDICES ### Appendix A: Key Dates | Date | Event | |------|-------| | Nov 26, 2025 | Project start, Week 1 begins | | Dec 24-26 | Christmas holiday | | Dec 31 - Jan 1 | New Year holiday | | Jan 28, 2026 | Week 10 begins (final week) | | Feb 4, 2026 | Final delivery deadline | ### Appendix B: Resources **Learning Resources:** - JavaFX Tutorial: https://openjfx.io/openjfx-docs/ - SQLite Tutorial: https://www.sqlitetutorial.net/ - CSP Algorithms: Russell & Norvig AI Textbook, Chapter 6 - JUnit 5 Guide: https://junit.org/junit5/docs/current/user-guide/ **Tools:** - IntelliJ IDEA: https://www.jetbrains.com/idea/ - Scene Builder: https://gluonhq.com/products/scene-builder/ - DB Browser for SQLite: https://sqlitebrowser.org/ - Git: https://git-scm.com/ ### Appendix C: Contact Information | Team Member | Email | Phone | Role | |------------|-------|-------|------| | Kerem Bozdag | [email] | [phone] | Database Lead | | Milena Larissa Ünal | [email] | [phone] | Algorithm | | Rabia Tülay Gokdag | [email] | [phone] | UI/FXML | | Mehmet Sefa Keskin | [email] | [phone] | Controller | | Feyza Gereme | [email] | [phone] | Testing | | Emin Arslan | [email] | [phone] | Documentation | **Professor:** [Name, Email, Office Hours] --- ## CHANGELOG | Version | Date | Author | Changes | |---------|------|--------|---------| | 1.0 | 2025-11-26 | Claude Code | Initial roadmap creation | --- **END OF ROADMAP** --- **Note:** This roadmap is a living document. Update it as the project progresses, risks materialize, or plans change. Review and adjust weekly during sprint planning meetings.