Skip to content

TingRongYou/Y2S1DataStructureAndAlgorithm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

42 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

TARUMT Clinic Management System πŸ₯πŸ’Š

A console-based Java application designed to streamline the daily operations of a medical clinic. This project was developed to demonstrate the practical application of custom Abstract Data Types (ADTs) and algorithms in managing complex, interconnected data without relying on a traditional relational database.

πŸš€ Overview

The TARUMT Clinic Management System utilizes a robust Boundary-Control-Entity (BCE) architecture to separate user interfaces, business logic, and data models. It acts as an end-to-end management tool, handling everything from patient registration and appointment scheduling to doctor consultations, pharmacy queues, and final payment processing.

✨ Key Features

  • Custom Data Structures: Implements bespoke ADTs (MyClinicADT implementing ClinicADT) to efficiently store, retrieve, and manipulate application data in memory.
  • Pharmacy Queue Management: Utilizes queueing algorithms to handle prescription workflows, transitioning patients from a ready_queue to a dispensed_queue as medication is prepared and collected.
  • Comprehensive Entity Tracking:
    • Patients & Doctors: Full profile registration and staff duty scheduling.
    • Appointments: Scheduling and tracking of patient visits.
    • Consultations: Logging of diagnoses (DiagnosisCatalog), required medical treatments, and medicine prescriptions.
  • Billing & Receipts: Automated calculation of consultation fees, treatment costs, and medication prices, culminating in detailed receipt generation.
  • File-Based Persistence: Automatically serializes all ADT data into text files (appointments.txt, patients.txt, medicine.txt, etc.) to ensure state persistence between sessions.

πŸ› οΈ Tech Stack & Architecture

  • Language: Java
  • Architecture: Boundary-Control-Entity (BCE) Pattern
  • Build Tool: Apache Ant (NetBeans project structure)
  • Data Storage: Custom ADTs with .txt file serialization

πŸ“ Core Project Structure

πŸ“¦ TARUMTClinicManagementSystem
 ┣ πŸ“‚ src
 ┃ ┣ πŸ“‚ adt           # Custom Data Structure Interfaces and Implementations
 ┃ ┣ πŸ“‚ boundary      # CLI Menus (PatientUI, DoctorUI, PharmacyUI, etc.)
 ┃ ┣ πŸ“‚ control       # Business Logic (TreatmentControl, QueueControl, etc.)
 ┃ ┣ πŸ“‚ entity        # Data Models (Consultation, Medicine, Appointment, etc.)
 ┃ ┣ πŸ“‚ textFile      # Local text-file database storage
 ┃ ┣ πŸ“‚ utility       # Helper classes (Validation, Report Generation)
 ┃ β”— πŸ“‚ tarumtclinic... # Main execution class and Session state

βš™οΈ How to Run

  1. Clone this repository to your local machine.
  2. Open the TARUMTClinicManagementSystem.java folder in an IDE that supports Apache Ant (such as Apache NetBeans).
  3. Ensure your project is set to compile with the correct JDK version.
  4. Clean and build the project.
  5. Run the main application file: TARUMTClinicManagementSystem.java.
  6. Follow the on-screen command-line interface to navigate through different staff and patient modules.

πŸ‘¨β€πŸ’» Author

  • Ting Rong You
  • Yong Chong Xin
  • Lim Wen Liang
  • Anson Chang

Bachelor of Software Engineering (Honours)

Tunku Abdul Rahman University of Management and Technology (TARUMT) Year 2 Semester 1 - Data Structure and Algorithm Assignment

About

A Java-based console application for clinic operations, demonstrating the practical use of custom Abstract Data Types (ADTs), queue algorithms, and file-based persistence.

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages