36 KiB
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
MainControllerskeleton - 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.mdwith 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 (
TransactionManagerutility) - 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
CSPSolverclass with backtracking algorithm - Implement variable ordering (MRV heuristic)
- Implement value ordering (least constraining value)
- Add forward checking for constraint propagation
- Implement
ProgressTrackercallback 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
NoSolutionExceptiongracefully
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:
- MinimizeDaysStrategy
- BalanceDistributionStrategy
- MinimizeClassroomsStrategy
- BalanceClassroomsStrategy
- Integrate strategies with value ordering heuristic
- Implement
ConflictDetectorfor 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:
ClassroomViewControllerStudentViewControllerCourseViewControllerDayViewController
- 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
ExportServiceclass - 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
CSVWriterutility) - 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:
- Multi-classroom exams: Allow splitting large courses across multiple rooms
- Time slot templates: Save common configurations (e.g., "Standard 2-week period")
- Conflict visualization: Graph showing which students/courses conflict
- Auto-save: Periodically save work-in-progress
- Undo/Redo: For manual edits
- Classroom features: Add classroom attributes (projector, capacity, building)
- Custom constraints: Allow user to add soft constraints
- Schedule comparison: Compare two schedules side-by-side
- Print preview: Formatted print layouts for schedules
- 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 | 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.