Skip to content

mbelduque/Healingtouch

Repository files navigation

HealingTouch

License: GPL v3 Java JavaFX Maven Contributors Stars LinkedIn


HealingTouch Logo

Medical Appointment Management System

A modern JavaFX desktop application for managing medical appointments, patient records, and healthcare workflows
Explore the docs Β»

Report Bug Β· Request Feature


Table of Contents


About The Project

HealingTouch is a comprehensive medical appointment management system built with JavaFX. It provides healthcare facilities with a modern, intuitive interface for managing patient records, scheduling appointments, and streamlining healthcare workflows.

The application follows enterprise-level architecture patterns including MVC (Model-View-Controller), Service Layer, and Repository patterns, ensuring maintainability, scalability, and testability.

Key Features

✨ Patient Management

  • Complete patient registration and profile management
  • Secure storage of personal and medical information
  • Search and filter capabilities

πŸ—“οΈ Appointment Scheduling

  • Intuitive appointment booking interface
  • Multi-specialty support (General Medicine, Dentistry, Gynecology, Urology)
  • Real-time availability management

πŸ” Authentication & Security

  • Secure user authentication system
  • Role-based access control
  • Password encryption

πŸ’» Modern UI/UX

  • Material Design components (JFoenix)
  • Responsive and intuitive interface
  • System tray notifications

Built With

Architecture

HealingTouch implements a clean, layered architecture:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Presentation      β”‚  Controllers + FXML Views
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚   Service Layer     β”‚  Business Logic
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚   Repository        β”‚  Data Access (DAO)
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚   Database          β”‚  MySQL
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

For detailed architecture information, see ARCHITECTURE.md.


Getting Started

Follow these instructions to get HealingTouch running on your local machine.

Prerequisites

Required Software:

  • Java Development Kit (JDK) 17 or higher

    java -version  # Verify installation

    Download from: Adoptium

  • Apache Maven 3.6 or higher

    mvn -version   # Verify installation

    Download from: Maven

  • MySQL Server 5.7 or higher

    mysql --version  # Verify installation

    Download from: MySQL

Installation

  1. Clone the repository

    git clone https://github.com/mbelduque/Healingtouch.git
    cd Healingtouch
  2. Build the project

    mvn clean compile
  3. Package the application

    mvn package

Database Setup

  1. Create the database

    CREATE DATABASE healingtouchdb;
    USE healingtouchdb;
  2. Create required tables

    -- Users table
    CREATE TABLE user (
        id INT AUTO_INCREMENT PRIMARY KEY,
        email VARCHAR(255) NOT NULL UNIQUE,
        password VARCHAR(255) NOT NULL
    );
    
    -- Patients table
    CREATE TABLE patient (
        id INT AUTO_INCREMENT PRIMARY KEY,
        names VARCHAR(255) NOT NULL,
        surnames VARCHAR(255) NOT NULL,
        document_id VARCHAR(50) NOT NULL UNIQUE,
        telephone VARCHAR(20),
        birthdate DATE,
        address VARCHAR(500)
    );
  3. Configure database connection

    Edit the database credentials in src/main/java/com/healingtouch/config/DatabaseConfig.java if needed:

    private static final String URL = "jdbc:mysql://localhost:3306/healingtouchdb?useSSL=false";
    private static final String USER = "root";
    private static final String PASSWORD = ""; // Update with your password

Running the Application

Option 1: Using Maven (Recommended)

mvn javafx:run

Option 2: Using an IDE

  • Open the project in your IDE (Eclipse, IntelliJ IDEA, VS Code)
  • Run com.healingtouch.app.HealingTouchApp as a Java Application

For detailed build instructions, see BUILD_INSTRUCTIONS.md.


Usage

Login

  • Launch the application
  • Use your registered credentials to log in
  • New installations will require creating a user in the database

Patient Management

  • Navigate to the patient registration section
  • Enter patient details (name, ID, contact information)
  • Save and manage patient records

Appointment Scheduling

  • Select a patient from the database
  • Choose appointment date and time
  • Assign a medical specialty
  • Confirm the appointment

Project Structure

Healingtouch/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ main/
β”‚   β”‚   β”œβ”€β”€ java/com/healingtouch/
β”‚   β”‚   β”‚   β”œβ”€β”€ app/              # Application entry point
β”‚   β”‚   β”‚   β”œβ”€β”€ config/           # Configuration (database, etc.)
β”‚   β”‚   β”‚   β”œβ”€β”€ controller/       # UI Controllers
β”‚   β”‚   β”‚   β”œβ”€β”€ model/            # Domain models (entities)
β”‚   β”‚   β”‚   β”œβ”€β”€ repository/       # Data access layer
β”‚   β”‚   β”‚   β”œβ”€β”€ service/          # Business logic
β”‚   β”‚   β”‚   └── util/             # Utilities
β”‚   β”‚   └── resources/
β”‚   β”‚       └── com/healingtouch/
β”‚   β”‚           β”œβ”€β”€ css/          # Stylesheets
β”‚   β”‚           β”œβ”€β”€ images/       # Images and icons
β”‚   β”‚           └── view/         # FXML view files
β”‚   └── test/                     # Test files
β”œβ”€β”€ lib/                          # External libraries
β”œβ”€β”€ pom.xml                       # Maven configuration
β”œβ”€β”€ README.md                     # This file
β”œβ”€β”€ ARCHITECTURE.md               # Architecture documentation
β”œβ”€β”€ BUILD_INSTRUCTIONS.md         # Detailed build guide
β”œβ”€β”€ MIGRATION_GUIDE.md            # Migration information
└── LICENSE                       # GPL v3 License

Documentation


Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Development Guidelines

  • Follow the existing code structure and patterns
  • Add appropriate comments and documentation
  • Test your changes thoroughly
  • Update documentation as needed

License

Distributed under the GNU General Public License v3.0. See LICENSE for more information.


Contact

Mauricio Belduque GuzmΓ‘n

Project Link: https://github.com/mbelduque/Healingtouch


Acknowledgements


Made with ❀️ for healthcare professionals

About

JavaFX / Appointment Booking System GUI

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors