0% found this document useful (0 votes)
2 views12 pages

Midsem Capstone Project-OOP Using Java

The assignment requires the development of a Student Management System using JavaFX, SQLite, and JDBC, focusing on managing student records efficiently. Students must implement features such as CRUD operations, data validation, report generation, and utilize GitHub for version control. The project is due on February 23, 2026, with an online presentation scheduled for March 3, 2026.

Uploaded by

samobed60
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views12 pages

Midsem Capstone Project-OOP Using Java

The assignment requires the development of a Student Management System using JavaFX, SQLite, and JDBC, focusing on managing student records efficiently. Students must implement features such as CRUD operations, data validation, report generation, and utilize GitHub for version control. The project is due on February 23, 2026, with an online presentation scheduled for March 3, 2026.

Uploaded by

samobed60
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

OBJECT ORIENTED PROGRAMMING USING JAVA

Mid Semester Individual Assignment

Student Management System Plus

JavaFX, SQLite, JDBC, Testing, and Professional Delivery

Weighting: 20 percent of Continuous Assessment

Duration: Four weeks

Code submission deadline: 23 February 2026

Online presentation date: 3 March 2026

Platform: Windows, Offline First


1. Background and problem scenario
Many departments still manage student records with spreadsheets. This creates problems such as
duplicate IDs, missing fields, inconsistent reports, and poor decision making. Your task is to
build an offline desktop application that helps a department manage student records, validate
inputs, store data safely, and generate useful reports.

The final product must run on a Windows machine without internet access. However, you must
use GitHub for version control and submission of your code.

2. Assignment type and rules


• This is an individual assignment
• You must write your own code and your own report
• You must use GitHub and share your repository with the lecturer
• Your repository must show meaningful commits across the four week period
• Your final submission includes a release zip and a report, plus an online presentation

3. Learning objectives
• Apply object oriented programming using classes, encapsulation, and clean architecture
• Build a JavaFX GUI with clear layout and good user experience
• Use SQLite with JDBC safely using prepared statements
• Validate input and enforce data integrity rules
• Write unit tests and run them with Maven
• Generate reports and export to CSV
• Package and document the project professionally
• Use GitHub properly with commits, branches if needed, and clear README
documentation

4. Technical requirements
• Language: Java
• User interface: JavaFX
• Database: SQLite using JDBC
• Build: Maven is recommended
• Run setup: Plain JavaFX SDK with manual VM options
• Platform: Windows

5. Functional requirements

5.1 Student record management


1. Add a new student
2. View all students in a table
3. Update an existing student
4. Delete a student with confirmation
5. Search students by student ID or full name
6. Filter students by level, programme, and status
7. Sort students by GPA and by full name

5.2 Student fields


• Student ID
• Full name
• Programme
• Level
• GPA
• Email
• Phone number
• Date added
• Status: Active or Inactive

5.3 Reports and analytics


Your system must provide a Reports screen with at least the reports below.

1. Top performers: top 10 students by GPA with filters for programme and level
2. At risk students: students with GPA below a threshold that can be changed in the UI.
Default is 2.0
3. GPA distribution summary: count how many students fall into each GPA band
4. Programme summary: total students per programme and average GPA per programme

5.4 Export
• Export full student list to CSV
• Export top performers report to CSV
• Export at risk report to CSV
• All exports must be saved inside a project controlled folder named data

5.5 Import
• Import student records from a CSV file with validation
• Invalid rows must not crash the app
• Invalid rows must be skipped and recorded in an import error report
• Duplicate student IDs must be rejected and reported

6. Data validation rules


You must implement validation in both the UI layer and the service layer.

• Student ID is required, 4 to 20 characters, letters and digits only, must be unique


• Full name is required, 2 to 60 characters, must not contain digits
• Programme is required
• Level must be one of: 100, 200, 300, 400, 500, 600, 700
• GPA must be between 0.0 and 4.0
• Email must contain an at sign and a dot
• Phone number must be 10 to 15 digits, digits only

If validation fails, show a clear message to the user and do not save.
7. Database requirements
• Use SQLite and JDBC
• Student ID must be a primary key
• Use NOT NULL constraints for required fields
• Use CHECK constraints for level and GPA
• Use prepared statements for all queries and updates
• Do not build SQL by concatenating user input

8. Architecture requirements
Your project must follow a layered design.

• UI: JavaFX controllers and views


• domain: Student and other core models
• service: business rules, validation, and reporting
• repository: interfaces plus SQLite implementations
• util: logging, safe file handling, helpers

Controller rules

• Controllers must not contain SQL


• Controllers must not contain heavy business logic
• Controllers must call services only

9. GUI requirements
Your GUI must be clear and consistent. Minimum screens are required.

9.1 Dashboard
• Total students
• Active students count
• Inactive students count
• Average GPA
• Quick buttons to open Students, Reports, Import, Export, Settings
9.2 Students screen
• Table view of students
• Search bar
• Filters: programme, level, status
• Buttons: Add, Edit, Delete, Refresh
• Form panel for add and edit

9.3 Reports screen


• Tabs or dropdown to select report type
• Table to show results
• Export report button
• Filter controls for each report

9.4 Import and Export screen


• Import CSV button
• Import results summary with success count and error count
• Save import error report to CSV inside data
• Export options list

9.5 Settings screen


• Configure at risk GPA threshold
• Optional: manage programme list

9.6 UI quality rules


• All buttons must be labelled clearly
• Use dialogs for confirmation and errors
• Do not freeze the UI during import or heavy operations
• Use background threads for long tasks and update UI safely
10. JavaFX run requirements on Windows
Include a file named RUN_VM_OPTIONS.txt in your release folder.

VM options example

• --module-path "C:\javafx\javafx-sdk-21\lib" --add-modules [Link],[Link]

Your RUN_VM_OPTIONS.txt must also state the JDK version you used.

11. Testing requirements


• At least 12 unit tests
• Tests must cover validation logic, report calculations, and repository methods
• Tests must run using mvn test
• Include test output as a text file inside the evidence folder

12. Logging requirements


• Write logs to a file inside data
• Log: app start and close, add update delete, import summary, export completion, database
failures
• Do not log full personal records

13. GitHub requirements and setup guide

13.1 What you must do


• Create one GitHub repository for this assignment
• Make it private, unless the lecturer requests a public repository
• Share access with the lecturer by adding them as a collaborator, or by sharing the
repository link if public
• Commit regularly. A minimum of 12 meaningful commits is expected across the four
week period
• Use clear commit messages that describe what changed
13.2Step by step GitHub setup
1. Create a GitHub account if you do not already have one
2. Create a new repository named: student management system plus your index number
3. Choose Private and tick Add a README file
4. Clone the repository to your Windows machine using GitHub Desktop or Git
5. Open the project folder in your IDE and begin development inside the cloned folder
6. Commit small changes frequently and push to GitHub

13.3 GitHub Desktop recommended workflow


• Install GitHub Desktop on Windows
• Sign in with your GitHub account
• Clone the assignment repository
• After each milestone, commit and push
• Use the History tab to confirm your commits are visible

13.4 Recommended commit message style


• Use present tense verbs: Add, Fix, Refactor, Test, Document
• Examples: Add student validation rules, Fix duplicate ID import handling, Refactor
repository layer, Add tests for GPA bands

13.5 Repository structure expectation


• Root contains [Link], README, and src folder if you are using Maven
• Do not commit the target folder
• Store database and exports in data, but do not commit large generated files
• Include a short section in README that explains how to run the app on Windows

13.6 Sharing your repository with the lecturer


• Private repository option: Settings, Collaborators, Add people, enter the lecturer GitHub
username or email
• Public repository option: send the repository link
• If you are unsure, ask during class and do not wait until the last day
14. Timeline and milestones
This is a four week assignment. Use the plan below.

Week 1
• Create GitHub repository and push initial project structure
• Create database schema and repository layer
• Build Students screen skeleton with table and form
• Implement add and view actions
• Minimum 3 commits this week

Week 2
• Complete CRUD: add, edit, delete
• Add validation in service layer
• Add search, filter, sort
• Add at least 6 unit tests
• Minimum 3 commits this week

Week 3
• Build Reports screen with top performers and at risk reports
• Implement export to CSV
• Implement import from CSV with error report
• Improve logging and error handling
• Minimum 3 commits this week

Week 4
• Finish remaining reports and settings
• Finalise tests to at least 12 and capture mvn test output
• Prepare release folder and perform fresh folder test
• Write the final report and prepare presentation slides
• Minimum 3 commits this week
15. Submission and presentation

15.1 Code submission deadline


Your GitHub repository must be fully pushed by: 23 February 2026.

15.2 Final project presentation


You will present online on: 3 March 2026.

• Presentation duration: 7 to 10 minutes


• You must demonstrate key features and one failure handling case
• You must show your GitHub repository commit history briefly

16. Deliverables
Submit these items.

A Release zip
• One zip file named: StudentManagementSystemPlus YourName YourIndexNumber
• Release folder with app, source, evidence, and documentation
• README and RUN_VM_OPTIONS.txt
• CHANGELOG and version number
• Sample exports and sample log file
• If SQLite used: include a sample database with records

B Final report
• Word or PDF report with problem statement, requirements, design, screenshots,
testing, security, limitations, and references

C Presentation
• Slides or a structured demo script used for the online presentation

17. Marking scheme


Total: 100 marks. This project contributes 20 percent to Continuous Assessment.
Functionality 40
• CRUD works correctly: 15
• Search, filter, sort: 10
• Reports correct and usable: 10
• Import and export work: 5

Code quality and object oriented design 20


• Clean architecture and separation of concerns: 10
• Good modelling and encapsulation: 10

Database, security, and integrity 15


• SQLite schema and constraints: 7
• Prepared statements and safe queries: 8

GUI and usability 10


• Layout and consistency: 6
• Error handling and responsiveness: 4

Testing and reliability 10


• Number and quality of tests: 7
• mvn test evidence: 3

GitHub usage and professionalism 5


• Regular commits with clear messages: 3
• Readable README with run instructions and project overview: 2

18. Academic integrity


• Plagiarism is not allowed
• Do not copy code from classmates
• If you use any external reference, cite it in the report
• If you use AI tools for support, you must disclose it in the report and explain what you
used it for
19. Notes for students
• Start early. Do not wait until the last week
• Commit your work regularly to GitHub
• Test your release in a fresh folder before you submit
• Make your user interface simple and clear

You might also like