A comprehensive hospital management system built with Spring Boot that facilitates seamless management of appointments, specialists, inventory, billing, and patient care.
HealPoint is a modern, RESTful backend application designed to streamline hospital operations. It provides secure authentication, role-based access control, and comprehensive APIs for managing healthcare services including appointment scheduling, inventory management, billing, and specialist coordination.
-
User Management
- Secure user authentication and authorization using JWT
- Role-based access control (RBAC)
- User registration and profile management
-
Appointment System
- Schedule, manage, and track patient appointments
- Slot-based booking system
- Appointment status tracking (Pending, Confirmed, Cancelled, Completed)
-
Specialist Management
- Manage healthcare specialists and their availability
- Associate specialists with specific slots and departments
-
Inventory Management
- Track medical supplies and equipment
- Category-based inventory organization
- Real-time stock monitoring
-
Billing & Cart
- Generate and manage patient bills
- Shopping cart functionality for medical items
- Order history tracking
-
Security
- JWT-based authentication
- Password encryption
- Secure API endpoints
- Backend Framework: Spring Boot 3.5.0
- Language: Java 17
- Database: PostgreSQL
- ORM: Spring Data JPA & Hibernate
- Security: Spring Security with JWT (JSON Web Tokens)
- Object Mapping: MapStruct 1.5.5
- Utilities: Lombok, Apache Commons
- Build Tool: Maven
- Validation: Jakarta Validation API
Before running this application, ensure you have the following installed:
- Java Development Kit (JDK) 17 or higher
- Maven 3.6+ (or use included Maven wrapper)
- PostgreSQL 12+
- Git (for cloning the repository)
git clone https://github.com/Krishal-Modi/HealPoint.git
cd HealPoint/HealPointCreate a PostgreSQL database:
CREATE DATABASE HealPoint;Update the database credentials in src/main/resources/application.properties:
spring.datasource.url=jdbc:postgresql://localhost:5432/HealPoint
spring.datasource.username=your_postgres_username
spring.datasource.password=your_postgres_passwordUsing Maven wrapper (recommended):
# Windows
mvnw.cmd clean install
# Linux/Mac
./mvnw clean installOr using Maven:
mvn clean install# Windows
mvnw.cmd spring-boot:run
# Linux/Mac
./mvnw spring-boot:runThe application will start on http://localhost:8086
Key configuration options in application.properties:
# Server Port
server.port=8086
# Database Configuration
spring.datasource.url=jdbc:postgresql://localhost:5432/HealPoint
spring.datasource.username=postgres
spring.datasource.password=root
# JPA/Hibernate
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=truePOST /users/signup- Register a new userGET /users/getAllUsers- Get all users (requires authentication)DELETE /users/deleteAccount- Delete user account
- Manage patient appointments
- Schedule and track appointment status
- CRUD operations for healthcare specialists
- Manage specialist availability and schedules
- Manage appointment time slots
- Check slot availability
- Track medical inventory
- Category-based item management
- Generate bills for patients
- Track billing items and order history
- Add items to cart
- Process orders
- Manage user roles and permissions
HealPoint/
βββ src/
β βββ main/
β β βββ java/com/example/HealPoint/
β β β βββ config/ # Security and app configuration
β β β βββ controller/ # REST API controllers
β β β βββ entity/ # JPA entities
β β β βββ enums/ # Enumeration types
β β β βββ exceptions/ # Custom exceptions
β β β βββ filter/ # JWT authentication filter
β β β βββ mapper/ # MapStruct mappers
β β β βββ model/ # DTOs and models
β β β βββ repository/ # Data repositories
β β β βββ service/ # Business logic
β β β βββ utils/ # Utility classes
β β βββ resources/
β β βββ application.properties
β βββ test/ # Unit and integration tests
βββ pom.xml # Maven configuration
Run tests using:
mvn testThe application uses:
- JWT tokens for stateless authentication
- Spring Security for endpoint protection
- Password encryption using BCrypt
- Role-based authorization
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a 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
This project is licensed under the MIT License - see the LICENSE file for details.
Krishal Modi
- GitHub: @Krishal-Modi
For any queries or support, please open an issue in the GitHub repository.
Made with β€οΈ for better healthcare management