A modern JavaFX desktop application for managing medical appointments, patient records, and healthcare workflows
Explore the docs Β»
Report Bug
Β·
Request Feature
- About the Project
- Getting Started
- Usage
- Project Structure
- Documentation
- Contributing
- License
- Contact
- Acknowledgements
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.
β¨ 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
- JavaFX 17.0.2 - Modern UI framework
- JFoenix 8.0.8 - Material Design components
- Maven - Dependency management and build tool
- MySQL 5.7+ - Database management system
- Apache Commons DBCP - Connection pooling
- FontAwesomeFX - Icon library
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.
Follow these instructions to get HealingTouch running on your local machine.
Required Software:
-
Java Development Kit (JDK) 17 or higher
java -version # Verify installationDownload from: Adoptium
-
Apache Maven 3.6 or higher
mvn -version # Verify installationDownload from: Maven
-
MySQL Server 5.7 or higher
mysql --version # Verify installationDownload from: MySQL
-
Clone the repository
git clone https://github.com/mbelduque/Healingtouch.git cd Healingtouch -
Build the project
mvn clean compile
-
Package the application
mvn package
-
Create the database
CREATE DATABASE healingtouchdb; USE healingtouchdb;
-
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) );
-
Configure database connection
Edit the database credentials in
src/main/java/com/healingtouch/config/DatabaseConfig.javaif 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
Option 1: Using Maven (Recommended)
mvn javafx:runOption 2: Using an IDE
- Open the project in your IDE (Eclipse, IntelliJ IDEA, VS Code)
- Run
com.healingtouch.app.HealingTouchAppas a Java Application
For detailed build instructions, see BUILD_INSTRUCTIONS.md.
- Launch the application
- Use your registered credentials to log in
- New installations will require creating a user in the database
- Navigate to the patient registration section
- Enter patient details (name, ID, contact information)
- Save and manage patient records
- Select a patient from the database
- Choose appointment date and time
- Assign a medical specialty
- Confirm the appointment
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
- ARCHITECTURE.md - Detailed architecture and design patterns
- BUILD_INSTRUCTIONS.md - Complete build and deployment guide
- MIGRATION_GUIDE.md - Migration and update instructions
- FUTURE_IMPROVEMENTS.md - Planned features and enhancements
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow the existing code structure and patterns
- Add appropriate comments and documentation
- Test your changes thoroughly
- Update documentation as needed
Distributed under the GNU General Public License v3.0. See LICENSE for more information.
Mauricio Belduque GuzmΓ‘n
- LinkedIn: Mauricio Belduque
- GitHub: @mbelduque
Project Link: https://github.com/mbelduque/Healingtouch
- JavaFX Documentation
- JFoenix - Material Design Components
- Font Awesome Icons
- Apache Commons
- Maven Central Repository
- MySQL Documentation
- GitHub - Version Control
Made with β€οΈ for healthcare professionals
