Prof-Support helps faculty manage students’ academic profiles, programming-language knowledge, and professional information. Version 0.9 introduces the full Show Reports functionality, including tabular filtering (Whitelist / Blacklist), read-only Student Report page, and complete Full Comment Viewer page. This release completes all major reporting requirements of the project.
- Implemented Reports main page with filtering options (All / Whitelist / Blacklist) and student list in tabular format.
- Enabled double-click on student to open a read-only Student Report page (profile at top, comments table at bottom).
- Implemented double-click on a comment row to open a Full Comment Viewer page showing the entire comment contents.
- Enabled CSV export for reports table.
- Populated system with 6 student profiles (3 whitelisted, 3 blacklisted) and ensured each student has at least one meaningful comment (≥30 words).
- Cleaned and packaged the project folder (dev-24-0.9) per rubric requirements.
Version: 0.9
- Chenying Wang: Populated 6 student profiles (3 whitelist, 3 blacklist), added all required comments (≥30 words), cleaned project folder, prepared final ZIP, and updated README.
- Trista Chen: Designed and implemented Reports main page (filtering + table display + CSV export).
- Jaime Gonzalez: Implemented double-click comment → Full Comment Viewer page (FXML + controller).
- Vraj Mistry: Integrated report navigation across pages, ensured UI consistency, and performed end-to-end testing. Implemented double-click student → Student Report (profile + comments table, read-only).
- Added Add Comments functionality (new comment entry + comments display section).
- Implemented permanent comment storage using SQLite through new Comment DAO and Service classes.
- Updated View Student Profiles page to include a structured comments section.
- Ensured all comments follow format:
YYYY-MM-DD — comment text. - Verified that 3 programming languages and 5 student profiles remain intact.
- Cleaned and packaged the project folder (dev-24-0.8).
- Added full Edit Student Profile functionality.
- Improved Search Students Profiles with case-insensitive filters.
- Added whitelist/blacklist filters.
- Added Back buttons across all pages.
- Verified SQLite persistence for updated profiles.
- Added Search Students Profiles page.
- Added Delete Student Profile feature.
- Implemented TableView for listing student profiles.
- Updated Home Page layout.
- Verified 3 programming languages and 5 student profiles.
- Added Define Student Profile page with input form.
- Added View Student Profiles page (TableView).
- Added persistence support for student profiles.
- Updated Home Page navigation links.
- Completed Functional Specification Draft.
- Created 3 required mockups (Define PL, Home, Define Student Profile).
- Completed Technical Specification Draft (data model, class diagram, sequence diagram).
- Implemented Define Programming Languages page.
- Added optional data persistence.
- Displayed languages using a sorted TableView (A–Z).
- Cleaned project folder and included README.
- Imported starter project template.
- Added navigation to Define Programming Languages page.
- Allowed entering programming language names.
- Successfully compiled with Zulu 23.
- Created first Functional Specification Draft.
- Designed required mockups.
- Completed initial Technical Specification Draft (UML + data model).
- Established initial architecture plan.
- Architecture: JavaFX + SQLite using Maven (Zulu JDK 23 compatible).
- Persistence: SQLite database for programming languages, student profiles, reports, and comments.
- Navigation: All pages include Back or Home button.
- Main Class:
cs151.application.Main - Tools: JavaFX, FXML, DAO/Service structure, SQLite.
- Show Reports page with tabular filtering (All / Whitelist / Blacklist).
- Double-click student → open Read-Only Student Report (profile + comments table).
- Double-click comment → open Full Comment Viewer page.
- CSV export for student report table.
- Add and view comments with timestamps (YYYY-MM-DD).
- Permanent SQLite storage.
- Define programming languages.
- Define and update student profiles.
- Store academic status, job status, roles, and skills.
- Search / filter / delete profiles.
- Ensure the folder
dev-24-0.9contains only source code before zipping (no.idea,.git,.mvn,target,mvnw, etc.). - After submitting, download the ZIP from Canvas, unzip it, and verify that: ✓ Folder name is dev-24-0.9 ✓ Project compiles and runs correctly in IntelliJ with Zulu JDK 23 ✓ SQLite database is included or auto-generated on first run
- Only Maven build tool is accepted.
- Comments must follow date-only format:
YYYY-MM-DD.
Prof-Support helps faculty manage students’ academic profiles, programming-language knowledge, and professional information. Version 0.8 introduces the Add Comments feature, enabling faculty to record and review time-stamped comments (date only) for each student, completing one of the major functional requirements of the project.
- Added Add Comments functionality (new comment entry + comments display section).
- Implemented permanent comment storage using SQLite through new Comment DAO and Service classes.
- Updated View Student Profiles page to include a structured comments section.
- Ensured all comments follow the format:
YYYY-MM-DD — comment text. - Verified that 3 programming languages and 5 student profiles remain intact.
- Cleaned and packaged the project folder (
dev-24-0.8) per rubric requirements.
- Chenying Wang – Updated README for v0.8
- Trista Chen – Implemented Add Comments UI (FXML + Controller); designed layout for comment input and comment history.
- Jaime Gonzalez – Developed backend Comment Service and Comment DAO; implemented permanent SQLite persistence for comments.
- Vraj Mistry – Performed full-system testing; cleaned project folder; validated structure; prepared final submission (
dev-24-0.8).
- Added full Edit Student Profile functionality.
- Improved Search Students Profiles with case-insensitive filters.
- Added whitelist/blacklist filters.
- Added Back buttons across all pages.
- Verified SQLite persistence for profile changes.
- Added Search Students Profiles page.
- Added Delete Student Profile feature.
- Implemented TableView for listing students.
- Updated Home Page layout.
- Verified 3 programming languages and 5 student profiles.
- Added Define Student Profile page.
- Added View Student Profiles page (TableView).
- Added persistence support for student profiles.
- Updated Home Page navigation.
- Completed Functional Specification Draft.
- Created 3 required mockups (Define PL, Home, Define Student Profile).
- Completed Technical Specification Draft (data model, class diagram, sequence diagram).
- Implemented Define Programming Languages page.
- Added optional data persistence.
- Displayed languages using a sorted TableView (A–Z).
- Cleaned project folder and included README.
- Imported starter project template.
- Added navigation to Define Programming Languages page.
- Allowed entering programming language names.
- Ensured successful compilation with Zulu 23.
- Created first Functional Specification Draft.
- Created mockups for required pages.
- Completed first Technical Specification Draft (data model + UML diagrams).
- Established initial architecture plan.
- Architecture: JavaFX + SQLite using Maven; Zulu JDK 23 compatible.
- Persistence: SQLite database for programming languages, student profiles, and comments.
- Navigation: All pages include a Back or Home button.
- Main Class:
cs151.application.Main. - Tools: JavaFX, FXML, DAO/Service structure.
-
Version 0.8
- View and add comments with date-only timestamps.
- Permanent comment storage in SQLite.
-
Version 0.6
- Search and filter profiles.
- Delete student profiles.
-
Earlier versions
- Define programming languages.
- Define and update student profiles.
- Store academic status, job status, roles, and skills.
- Ensure the project folder contains only source code before zipping (
no .idea,.git,.mvn,target, etc.). - After submission, re-download the zip file to verify it runs correctly.
- Comments must use date-only format (
YYYY-MM-DD). - SQLite database should be included or auto-generated on first run.
Version: 0.7
Prof-Support is a JavaFX application that helps faculty manage students’ academic profiles, programming-language knowledge, and professional data in a simple and persistent way using SQLite.
This milestone (v0.7) focuses on the Edit Students Profiles implementation and required submission structure. It builds directly on v0.6, maintaining all previous features while introducing full profile editing and saving, refined search, and packaging cleanup.
- Added Edit Students Profiles functionality – From the Search page, users can open a profile, modify fields, and permanently save changes to SQLite.
- Confirmed 5 student profiles and 3 programming languages pre-populated via
StudentSeeder.java. - Added Back navigation buttons on all pages for consistent user flow.
- Improved Search Students Profiles with case-insensitive match and smoother UI interaction.
- Verified data persistence and SQLite foreign-key integrity.
- Cleaned the project folder (
dev-24-0.7) according to the rubric — removed.idea,.mvn,target, and other non-source files. - Updated README to document new version and “who did what.”
| Member | Contribution |
|---|---|
| Chenying Wang | Populated 3 Programming Languages and 5 Student Profiles; updated README (v0.7); verified UI and navigation consistency. |
| Trista Chen | Implemented Edit Students Profiles functionality and page logic; connected UI fields to DB update operations. |
| Vraj Mistry | Assisted in implementing Edit Students Profiles backend (DAO update methods and validation). |
| Jaime Gonzalez | Cleaned and packaged project (dev-00-0.7); verified folder structure and zipping; confirmed SQLite dependency in POM. |
- Java 23 (Zulu 23)
- JavaFX 23 with Maven (
javafx-maven-plugin 0.0.8) - SQLite JDBC (3.46.1.0)
- SceneBuilder / FXML
- CSS for UI styling
# Run from project root
mvn clean javafx:run-
Launch screen that provides navigation to:
- Search Students Profiles
- Define Programming Languages
- Add/Edit Student Profile
- Displays all stored profiles in a TableView.
- Search by name, email, or major (case-insensitive).
- Selecting a student opens the Edit Profile page for modifications.
- Allows editing of any student information (except ID).
- Saves changes permanently to SQLite using
StudentProfileDAO. - Includes a Back button to return to the search list.
- Manage 3 programming languages pre-populated by the seeder.
- Add or modify entries using the JavaFX TableView interface.
- Comment feature not implemented (per rubric note).
- Advanced multi-criteria search still under development.
- Profile pictures remain static (default image only).
SQLite DB file:
./dev-24-0.7/profsupport.db
Seeder class:
StudentSeeder.java (replaces old DevSeeder.java)
src/main/java/cs151/application
├─ AppState.java
├─ Main.java
├─ homepage/
│ ├─ HomePageController.java
│ ├─ HomePageService.java
├─ persistence/
│ ├─ DatabaseConnector.java
│ ├─ DbInit.java
│ ├─ StudentSeeder.java
│ ├─ ProgrammingLanguagesDAO.java
│ ├─ StudentProfileDAO.java
├─ programminglanguages/
│ ├─ Language.java
│ ├─ PLController.java
└─ studentprofile/
├─ Student.java
├─ StudentProfileController.java
├─ ViewStudentProfileController.java
├─ StudentDirectoryService.java
├─ StudentService.java
├─ Comment.java
├─ StudentRow.java
src/main/resources/cs151/application
├─ homepage.fxml
├─ define-pl.fxml
├─ define-student-profile.fxml
├─ view-student-profile.fxml
├─ homepage.css
├─ define-pl.css
├─ define-student-profile.css
├─ view-student-profile.css
└─ theme.css
- Project folder renamed to
dev-00-0.7before submission. - All non-source files removed.
- README updated per rubric item 6.
- Verified inclusion of SQLite JDBC dependency in
pom.xml. - Zipped as
dev-00-0.7.zip, ensuring folder structure is preserved after extraction.
Version: 0.6
Prof-Support helps faculty (professors) manage students’ profile data, academic skills, and programming-language knowledge.
This milestone (v0.6) adds the “Search Students Profiles” page, allows deleting profiles from the database, and refines overall UI and structure based on previous milestones (v0.5 → v0.6).
- Added Search Students Profiles page with filters (by name, language, database, and preferred roles)
- Implemented JavaFX TableView to display all students in tabular format
- Enabled Delete Profile feature – permanently removes selected student from SQLite DB
- Refined Home Page UI with active search components and linked navigation
- Verified 3 Programming Languages and 5 Student Profiles pre-loaded
- Cleaned project folder (
dev-24-0.6) and updated README - General restructuring and test verification
| Member | Contribution |
|---|---|
| Trista Chen | Restructured project folders and code organization; cleaned non-source files; verified Maven build and zipping process. |
| Jaime Gonzalez | Implemented Delete Student Profile feature using TableView selection; ensured DB row removal and UI refresh after deletion. |
| Vraj Mistry | Implemented Search Students Profiles page (front-end and backend filter logic); added TableView bindings; managed testing and zipped release. |
| Chenying Wang | Populated 3 Programming Languages and 5 Student Profiles; updated README (v0.6); verified UI layout and navigation consistency. |
- Java 23 (Zulu 23)
- JavaFX 23 with Maven (
javafx-maven-plugin 0.0.8) - SQLite JDBC (3.46.1.0)
- SceneBuilder / FXML
- CSS for UI styling
# Run from project root
mvn clean javafx:run- Provides quick navigation to Define Programming Languages, Add/Edit Student, and Search Students Profiles.
- Includes filter panel (search by name, language, database, and preferred roles) with All / Whitelist / Blacklist toggle.
- Add or update programming languages (e.g., C++, Java, Python) via JavaFX TableView.
- Entries are stored in SQLite DB and sorted A → Z.
- Create or update student profiles with academic status, job status, and preferred roles.
- Persist data to SQLite DB after validation.
- Displays all stored profiles in a TableView with real-time filtering.
- Clicking a row shows student details and skills.
- Supports deletion of selected student profile.
- Advanced filter combinations (e.g., multi-criteria queries) still in progress.
- Photo upload feature not yet linked to storage.
SQLite DB file location:
./dev-24-0.6/profsupport.db
To reset data: close the app and delete this file.
src/main/java/cs151/application
├─ Main.java
├─ homepage/
│ ├─ HomePageController.java
│ ├─ HomePageService.java
│ ├─ SearchService.java
├─ persistence/
│ ├─ DatabaseConnector.java
│ ├─ DbInit.java
├─ programminglanguages/
│ ├─ PLController.java
│ ├─ ProgrammingLanguagesDAO.java
│ ├─ Language.java
└─ studentprofile/
├─ Student.java
src/main/resources/cs151/application
├─ homepage.fxml
├─ define-pl.fxml
├─ define-student.fxml
├─ view-student.fxml
├─ homepage.css
├─ define-pl.css
└─ theme.css
Version: 0.5
Prof-Support helps faculty (professors) manage students’ profile data, academic skills, and programming-language knowledge.
This milestone (v0.5) add “define student profile” and “View Student Profile” pages.
- Added “Define Student Profile” page
- Added “View Student Profile” page (with tableview)
- Added persistence for student profiles
- Updated HomePage UI
| Member | Contribution |
|---|---|
| Trista Chen | Created FXML and Controller for “View Student Profiles” page, created DAO for controllers |
| Jaime Gonzalez | Implemented “StudentProfileController”, verified ViewStudentProfileController, updated ReadMe |
| Vraj Mistry | Implemented StudentService, changed location of database, cleaned and zipped files for submission |
| Chenying Wang | Implemented and verified Student Profile UI v2, removed legacy “Other”, added CSS linking, and validated navigation functionality |
- Java 23 (Zulu 23)
- JavaFX 23 with Maven (
javafx-maven-plugin 0.0.8) - SQLite JDBC (3.46.1.0)
- SceneBuilder / FXML
- CSS for UI styling
# Run from project root
mvn clean javafx:run- Define Students Profile:
- Navigate to Define Students Profile page through HomePage
- Input all required fields as per the problem statement
- On clicking save: app verifies all required fields are inputted and persists student profile in SQLite database.
- App shows errors if there are missing inputs
- View Student Profile:
- Navigate to "View Student Profiles" page through HomePage
- Left of UI shows a TableView of all defined students
- On clicking a desired student in the TableView right of UI will show all other details of student
- You can optionally sort the students by whitelist blacklist or all.
- Home search/filters are stubbed; full backend hookup is planned for the next milestone.
- Adding a student photo does nothing.
SQLite DB file has moved from:
~/.profsupport/profsupport.db to ./dev-24-0.5/profsupport.db
To reset the data, close the app and delete that file.
---- Older Versions ReadMe ----
Prof-Support helps faculty (professor) manage student info and skills.
This milestone focuses on the Programming Languages feature and the Home screen shell:
- Navigate Home → Define Programming Languages and back.
- Add a programming language; it’s saved to SQLite.
- Languages are shown in a JavaFX TableView, sorted A→Z.
- Basic Home screen UI with “Add Programming Languages” entry point.
- Trista Chen - reorganized packages, cleaned files, wrote README, packaging/zip for submission.
- Jaime Gonzalez - converted Define-PL to TableView (from ListView).
- Vraj Mistry - refreshed the Homepage UI and made “Add Programming Languages” navigation clear.
- Chenying Wang - ensured language names are sorted alphabetically (ascending).
- JDK: Zulu 23 (Java 23)
- Build: Maven
- UI: JavaFX (FXML + CSS)
- DB: SQLite (via org.xerial:sqlite-jdbc)
- Modules: module-info.java configured for JavaFX + JDBC
src/main/java/cs151/application
├─ Main.java
├─ homepage/
│ ├─ HomePageController.java # UI controllers (Home)
│ ├─ HomePageService.java
│ └─ SearchService.java
├─ persistence/ # DB connector, schema, DAO
│ ├─ DatabaseConnector.java
│ ├─ DbInit.java
│ └─ ProgrammingLanguagesDAO.java
├─ programminglanguages/
│ ├─ PLController.java # UI controllers (Define Programming Language)
│ └─ Language.java
└─ studentprofile/
└─ Student.java
src/main/resources/cs151/application ├─ homepage.fxml ├─ define-pl.fxml ├─ homepage.css ├─ define-pl.css └─ theme.css
- Install Zulu JDK 23.
- Ensure Maven is available (mvn -v).
mvn clean javafx:run- DbInit.ensureSchema() creates tables if missing.
- The app opens homepage.fxml.
- Use the “Add Programming Languages” link to go to Define Programming Language Page.
- Define Programming Languages
- Enter a name (e.g., Java) → Save.
- Duplicate names are ignored by the DAO.
- The table refreshes and stays A→Z.
- Home
- UI shell with search/filters. (Search integration will grow in later versions.)
- Click the top link to open Define-PL.
SQLite DB file lives in your user home (created automatically):
~/.profsupport/profsupport.dbTo reset the data, close the app and delete that file.
- Home search/filters are stubbed; full backend hookup is planned for the next milestone.
- Student profile TableView not yet implemented (model exists).
A. UI/Navigation - Trista Chen
B. Define Page Behavior - Jaime Gonzalez & Vraj Mistry
C. Optional Persistence - Trista Chen & Chenying Wang
This page allows the user to input a programming language, creator, year, and a sample "Hello World" example.
FXML File: hello-view.fxml
Controller: MainController.java
Main Class: Main.java
Result:
When running mvn javafx:run, the following JavaFX window appears:

### Part C – Optional Persistence (UI + Controller Integration)
**FXML File:** `hello-view.fxml`
**Controller:** `MainController.java`
**Main Class:** `Main.java`
#### MainController.java (Excerpt)
```java
@FXML
private TextField nameField;
@FXML
private TextField creatorField;
@FXML
private TextField yearField;
@FXML
private TextArea exampleArea;
@FXML
private void handleSave(ActionEvent event) {
try {
String name = nameField.getText();
String creator = creatorField.getText();
String year = yearField.getText();
String example = exampleArea.getText();
System.out.println("Saved: " + name + " by " + creator + " (" + year + ")");
System.out.println("Example:\n" + example);
Alert alert = new Alert(Alert.AlertType.INFORMATION, "Data saved successfully!");
alert.showAndWait();
} catch (Exception e) {
Alert alert = new Alert(Alert.AlertType.ERROR, "Failed to save data.");
alert.showAndWait();
}
}<GridPane fx:controller="cs151.application.MainController"
xmlns:fx="http://javafx.com/fxml" alignment="CENTER" hgap="10" vgap="10">
<TextField fx:id="nameField" promptText="Language Name"/>
<TextField fx:id="creatorField" promptText="Creator"/>
<TextField fx:id="yearField" promptText="Year"/>
<TextArea fx:id="exampleArea" promptText="Hello World Example"/>
<Button text="Save" onAction="#handleSave"/>
</GridPane>
0.2
- A. UI/Navigation – Trista Chen
- B. Define Page Behavior – Jaime Gonzalez & Vraj Mistry
- C. Optional Persistence – Trista Chen
- D. Build/Packaging + README + QA – Chenying Wang
- Zulu JDK 23 (23.0.1)
- Maven 3.x
- IntelliJ IDEA (any recent version)
- Zulu JDK 23 (23.0.1)
- Maven 3.x
- IntelliJ IDEA
- In IntelliJ, set Project SDK = Zulu JDK 23.
- From the project root, run:
mvn clean javafx:run
**Expected result:** A JavaFX window titled **Hello Chenying Wang** with a button.
## Packaging for submission
Create a clean zip named **dev-00-0.2.zip** that contains only:
* `src/`
* `pom.xml`
* `ReadMe.md`
Exclude: `.idea/`, `target/`, `out/`, `.git/`, `.mvn/`, `mvnw`, `mvnw.cmd`.
### Windows (PowerShell)
```powershell
cd <project-root>
New-Item -ItemType Directory dev-00-0.2 | Out-Null
Copy-Item -Recurse -Force .\src .\dev-00-0.2\
Copy-Item -Force .\pom.xml .\dev-00-0.2\
Copy-Item -Force .\ReadMe.md .\dev-00-0.2\
Compress-Archive -Path .\dev-00-0.2 -DestinationPath .\dev-00-0.2.zip -Force
```
## Troubleshooting
* **Module not found:** ensure `src/main/java/module-info.java` module name matches the **left** side of `<mainClass>` in `pom.xml` (currently `s25.cs151.application/...`). Reload Maven changes and run again.
* Warnings about native access or terminal digits in the module name can be ignored for v0.2.