12 KiB
GETTING STARTED - Exam Scheduling System
Welcome to the Exam Scheduling System project!
This document will help you get started with the project quickly.
Project Setup Complete! ✅
The project foundation has been fully set up with:
Documentation Created
- ✅ MEMORY_BANK.md - Comprehensive project documentation (100+ pages)
- ✅ ROADMAP.md - Detailed 10-week development plan
- ✅ TEAM_ASSIGNMENTS.md - Team roles and responsibilities
- ✅ GIT_WORKFLOW.md - Git branching strategy and PR process
- ✅ README.md - Project overview and quick start guide
Project Structure
- ✅ Maven
pom.xmlwith all dependencies configured - ✅ Directory structure created (
src/main/java,src/test/java,src/main/resources) - ✅ Package structure ready (
model,dao,service,algorithm,controller,util) - ✅
.gitignoreconfigured for Java/Maven project - ✅ GitHub Actions CI/CD pipeline (
.github/workflows/ci.yml)
Quick Start for Team Members
1. Clone the Repository
git clone https://github.com/sabazadam/se302.git
cd se302
2. Install Prerequisites
Required:
Recommended:
- IntelliJ IDEA (recommended) or Eclipse - Download IntelliJ
- Scene Builder (for FXML editing) - Download
3. Build the Project
mvn clean install
This will:
- Download all dependencies
- Compile the code
- Run tests (when we have them)
- Create a JAR file
4. Open in IDE
IntelliJ IDEA:
- File → Open
- Select the
pom.xmlfile - Click "Open as Project"
- Wait for dependencies to download
Eclipse:
- File → Import
- Maven → Existing Maven Projects
- Select the project directory
- Finish
5. Configure JDK 17
IntelliJ:
- File → Project Structure → Project → SDK → Select JDK 17
Eclipse:
- Right-click project → Properties → Java Build Path → Libraries → Add JDK 17
First Steps for Each Team Member
Database Lead (Kerem)
Week 1 Tasks:
- Read MEMORY_BANK.md - Database Schema section
- Create
schema.sqlinsrc/main/resources/database/ - Implement DAO interfaces
- Start with StudentDAO and test it
Getting Started:
git checkout develop
git pull origin develop
git checkout -b feature/database-schema
# Create your database schema file
# Edit src/main/resources/database/schema.sql
# Then commit and push
Algorithm Specialist (Milena)
Week 1 Tasks:
- Read MEMORY_BANK.md - Algorithm Design section
- Create domain model classes (Student, Course, Classroom, etc.)
- Start designing constraint validator
Getting Started:
git checkout develop
git pull origin develop
git checkout -b feature/domain-models
# Create model classes in src/main/java/com/se302/examscheduler/model/
# Start with Student.java, Course.java
UI/FXML Specialist (Rabia)
Week 1 Tasks:
- Read MEMORY_BANK.md - User Interface Design section
- Install Scene Builder
- Create wireframes for main window
- Start FXML for MainWindow
Getting Started:
git checkout develop
git pull origin develop
git checkout -b feature/ui-main-window
# Create FXML files in src/main/resources/fxml/
# Design with Scene Builder
Controller Lead (Sefa)
Week 1 Tasks:
- Read MEMORY_BANK.md - Controller Layer section
- Create Main.java application entry point
- Design controller architecture
Getting Started:
git checkout develop
git pull origin develop
git checkout -b feature/main-controller
# Create Main.java in src/main/java/com/se302/examscheduler/
# Set up JavaFX application structure
Testing Lead (Feyza)
Week 1 Tasks:
- Read MEMORY_BANK.md - Testing Strategy section
- Set up test utilities (TestDataBuilder)
- Verify CI/CD pipeline works
- Create test data fixtures
Getting Started:
git checkout develop
git pull origin develop
git checkout -b feature/test-infrastructure
# Create test utilities in src/test/java/com/se302/examscheduler/util/
# Create test CSV files in src/test/resources/
Documentation Lead (Emin)
Week 1 Tasks:
- Review all documentation created
- Set up JavaDoc generation
- Create documentation templates
- Review first PRs from team
Getting Started:
# Generate JavaDoc
mvn javadoc:javadoc
open target/site/apidocs/index.html
# Set up documentation watching
# Review team members' code for documentation quality
Important Files to Read
MUST READ (Everyone)
- README.md - Project overview and quick start
- MEMORY_BANK.md - Comprehensive documentation (read your section)
- ROADMAP.md - Week-by-week plan (see your tasks)
- TEAM_ASSIGNMENTS.md - Your role and responsibilities
- GIT_WORKFLOW.md - How to use Git, commit messages, PRs
Your Section in MEMORY_BANK.md
- Kerem: Database Schema, DAO Layer
- Milena: Algorithm Design, Constraint Validation
- Rabia: User Interface Design, UI Components
- Sefa: API Contracts (Controller), MVC Architecture
- Feyza: Testing Strategy, Test Types
- Emin: All sections (for review)
Git Workflow Reminder
Creating a Feature Branch
# Always start from latest develop
git checkout develop
git pull origin develop
# Create your feature branch
git checkout -b feature/your-feature-name
# Make changes, then commit
git add .
git commit -m "feat(scope): brief description"
# Push to remote
git push -u origin feature/your-feature-name
Commit Message Format
<type>(<scope>): <subject>
Examples:
feat(dao): Add StudentDAO with batch insert
fix(algorithm): Correct consecutive exam constraint
test(dao): Add unit tests for StudentDAO
docs(readme): Update installation instructions
Creating a Pull Request
- Push your feature branch to GitHub
- Go to GitHub repository
- Click "New Pull Request"
- Base:
develop, Compare:feature/your-feature-name - Fill in PR template
- Request at least 1 reviewer
- Wait for approval and CI to pass
- Merge when approved
Useful Commands
Maven Commands
# Clean and build
mvn clean install
# Run tests
mvn test
# Run specific test
mvn test -Dtest=StudentDAOTest
# Generate test coverage report
mvn clean test jacoco:report
open target/site/jacoco/index.html
# Generate JavaDoc
mvn javadoc:javadoc
open target/site/apidocs/index.html
# Run application (when Main.java is ready)
mvn javafx:run
# Package into JAR
mvn package
Git Commands
# Check status
git status
# View changes
git diff
# Stage files
git add file.java
git add .
# Commit
git commit -m "message"
# Push
git push origin feature-name
# Pull latest develop
git checkout develop
git pull origin develop
# Rebase your branch on develop
git checkout feature-name
git rebase develop
# View commit history
git log --oneline
# View branches
git branch -a
Project Statistics
- Team Size: 6 members
- Duration: 10 weeks (Nov 26, 2025 - Feb 4, 2026)
- Lines of Documentation: ~15,000+ lines
- Files Created: 8 core documentation files
- Technology Stack: Java 17, JavaFX 21, SQLite, Maven
- Target: Fully functional desktop application with >70% test coverage
Weekly Meeting Schedule
Monday (30 min) - Sprint Planning:
- Review last week's progress
- Assign this week's tasks
- Discuss blockers
Wednesday (15-30 min) - Mid-Week Sync:
- Quick status updates
- Identify issues early
- Schedule pair programming if needed
Friday (30-45 min) - Demo & Retrospective:
- Each person demos their work
- Celebrate wins
- Discuss improvements
- Brief planning for next week
Communication Channels
Synchronous:
- Weekly meetings (Monday, Wednesday, Friday)
- Pair programming sessions (as needed)
Asynchronous:
- WhatsApp/Discord - Daily updates, quick questions
- GitHub - Code reviews, PR discussions
- Email - Formal communication with professor
Success Metrics
Week 1 (Current Week)
- Expected Completion: 10%
- Key Milestone: Project setup, infrastructure, initial designs
- Deliverables:
- Database schema script
- Algorithm design document
- UI wireframes
- CI/CD pipeline working
By Week 3 (End of Phase 1)
- Expected Completion: 30%
- Key Milestone: Foundation complete
- Deliverables:
- Database layer working
- CSV import functional
- Configuration screen working
- All team members can run project locally
Getting Help
If You're Stuck
- Try for 2 hours - Google, documentation, StackOverflow
- Ask in team chat - Someone may have solved it
- Pair program - Schedule session with teammate
- Ask Emin - Integration Lead can help with architecture questions
- Ask Professor - For requirements clarification
Common Issues
Maven dependency download fails:
# Clear Maven cache and retry
rm -rf ~/.m2/repository
mvn clean install
IDE doesn't recognize Java 17:
- Verify JDK 17 is installed:
java -version - Configure project SDK in IDE settings
Git merge conflicts:
- See GIT_WORKFLOW.md section on "Merge Conflict Resolution"
- Ask Emin if you need help resolving
Tests won't run:
- Ensure Maven Surefire plugin is configured in pom.xml (already done)
- Check test file naming: must end with
Test.java
Next Steps
For the Team
-
Today (Nov 26):
- All members clone repository
- Set up development environment
- Read assigned sections of MEMORY_BANK.md
-
This Week (Week 1):
- Each member starts assigned tasks from ROADMAP.md
- Create first feature branches
- Make first commits
-
Friday Meeting (Nov 30):
- Each person demos progress
- Database schema presented
- UI wireframes presented
- Algorithm pseudocode presented
Resources
Learning Resources
Java & JavaFX:
- JavaFX Official Docs: https://openjfx.io/javadoc/17/
- JavaFX Tutorial: https://openjfx.io/openjfx-docs/
SQLite:
- SQLite Tutorial: https://www.sqlitetutorial.net/
- SQLite Java: https://www.sqlitetutorial.net/sqlite-java/
CSP Algorithms:
- Russell & Norvig AI Textbook: Chapter 6
- Online: https://artint.info/2e/html/ArtInt2e.Ch4.html
Testing:
- JUnit 5: https://junit.org/junit5/docs/current/user-guide/
- Mockito: https://site.mockito.org/
Tools
Required:
- Java JDK 17: https://adoptium.net/
- Maven: https://maven.apache.org/download.cgi
- Git: https://git-scm.com/
Recommended:
- IntelliJ IDEA: https://www.jetbrains.com/idea/download/
- Scene Builder: https://gluonhq.com/products/scene-builder/
- DB Browser for SQLite: https://sqlitebrowser.org/
Questions?
- Check MEMORY_BANK.md for detailed answers
- Ask in team chat
- Contact Emin (Documentation Lead) for documentation questions
- Contact team members for their specialty areas
- Email professor for requirements clarification
Last Updated: November 26, 2025
Good luck team! Let's build an amazing exam scheduler! 🚀
For comprehensive documentation, see MEMORY_BANK.md