Version: 0.8
Technologies: Java, JavaFX, SQLite
Platform: Desktop Application
ProfMeet is a scheduling system designed to streamline the student-advising process. It enables faculty to manage office hours, time slots, and courses, while students can schedule, update, or cancel appointments in a clean, intuitive interface.
- Faculty Office Hour Management – Advisors can define recurring or single-time office hours.
- Time Slot Scheduling – Advisors can set specific availability, and students can book from open time slots.
- Course Management – Instructors can add course details, which students associate with appointments.
- Student Booking System – Students can schedule, search, edit, or cancel advising appointments.
- Smart Search & Edit – Built-in tools to search appointments by name and edit details with real-time updates.
- Validation Logic – Prevents invalid time entries (e.g., end time before start time).
- Automatic Sorting – Appointments and time slots are sorted by date/time for better clarity.
- Unified Navigation – Central homepage provides one-click access to all core functionality.
Edit Office Hours (Example: Emma Mochi)

Start the application to access the homepage with all major features.
- Add Office Hours
- Add Time Slots
- Add Course
- Add Appointment
- View Time Slots
- View Semester Office Hours
- View Courses
- View Appointments
- Search and Edit Office Hours
- Advisor creates time slots and course options
- Student selects an available time slot
- Student inputs their name, course, and reason for meeting
- Appointment is saved and can be viewed or edited later
- Use the “Search and Edit Office Hours” page
- Enter the student name (case-insensitive search)
- Select an appointment to edit or delete
ProfMeet uses a Page interface to enable navigation across different JavaFX screens via polymorphism.
public interface Page {
Scene getScene(Stage stage);
}
public class SearchAndEditOfficeHoursPage implements Page {
@Override
public Scene getScene(Stage stage) {
// returns a custom JavaFX scene
}
}All office hours, courses, time slots, and appointments are stored in a local SQLite database.
No data is lost between sessions; all entries persist until explicitly edited or deleted.
Records are queried and sorted dynamically for live table display.



