You are building a console-based system for a small community clinic.
The clinic needs help managing:
- Patients
- Check-ins
- Appointments
- Daily reports
Your job is to design and build the system step-by-step.
This project will assess your understanding of:
- Variables
- Methods
- Loops
- Conditionals
- Arrays
- ArrayList
- Objects and Classes
You must demonstrate clean structure and logical thinking.
Create the following classes:
YourNamePatient.javaYourNameAppointment.javaYourNameClinicSystem.javaYourNameClinicApp.java(Main class)
You may add additional helper methods if needed.
Build the foundation.
Your system must allow the user to:
- Add a new patient
- View all patients
- Check in a patient
- Search for a patient
- Exit
Requirements:
- Store patients using an
ArrayList - Assign each patient a unique ID
- Use methods (no large main method)
- Use loops for searching and listing
- Use conditionals for validation
Now the clinic needs scheduling.
Add:
- An array representing daily time slots
- Ability to schedule appointments
- Ability to cancel appointments
- View the full schedule
Requirements:
- Prevent double-booking a time slot
- Validate input
- Store appointments using an
ArrayList
Make it realistic.
Add:
- Daily summary report
- Appointment completion tracking
- Rules that prevent invalid actions
- Basic waitlist feature
Your system should now behave like a small real clinic system.
Choose one of the following stretch challenges to extend your project. This is your opportunity to show deeper understanding and creativity.
-
Priority Patients Add a priority level (Emergency, Regular, Follow-up) and adjust scheduling behavior.
-
Multiple Doctors Add a Doctor class and assign appointments to specific doctors.
-
File Saving (Persistence) Save patient and appointment data to a text file and reload it when the program starts.
-
Search Filters Allow searching patients by phone number or appointment status.
-
Improved Reporting Add more detailed daily statistics (e.g., busiest hour, total cancellations).
-
Rescheduling Feature Allow appointments to be moved to a different time slot safely.
-
Patient Visit History Track and display a patient’s previous completed appointments.
-
Billing Simulation Add cost tracking and print a simple receipt.
-
Input Validation System Create a reusable validation method for all user inputs.
-
Console UI Upgrade Improve the user interface with formatted menus and clearer output layout.
You may choose more than one once you finish early.
Required Personalization Component:
To reduce identical solutions: Each student must choose ONE of the following themes and rename their system accordingly:
- Dental Office
- Auto Repair Shop
- Gym Check-In
- Barber Shop
- University Advising Office
- Tech Support Desk
- Event Ticketing Desk
- Coffee Shop Pickup System
- Vet Clinic
- DMV Service Counter
- Clean class design
- Logical method structure
- Proper use of loops and conditionals
- Meaningful variable names
- Organized code
- Create your own branch
- Make at least 10 commits
- Put everything in
main - Hardcode answers
- Overcomplicate your design
Submit:
- All
.javafiles - Code that runs without errors
- Clear console interaction