AfyaQuik is a comprehensive healthcare management system designed to streamline operations in healthcare facilities. The system provides specialized interfaces for different roles including doctors, nurses, receptionists, and administrators, enabling efficient patient management, appointment scheduling, billing, and reporting.
- Patient Management: Register, update, and manage patient information
- Appointment Scheduling: Schedule and manage patient appointments
- Visit Tracking: Record and track patient visits and medical notes
- Reporting: Generate various reports for administrative and clinical purposes
- User Management: Manage system users with role-based access control
- Multi-interface Support: Specialized interfaces for doctors, nurses, receptionists, and administrators
- Java 17
- Spring Boot 3.4.5
- Spring Data JPA
- Spring Security
- PostgreSQL
- Liquibase (for database migrations)
- Lombok
- MapStruct
- JUnit Jupiter (for testing)
- SpringDoc OpenAPI (for API documentation)
- JWT Authentication
- React
- React Router
- Bootstrap
- SASS
- Docker
- Maven
The project follows a modular architecture with separate backend services and frontend applications:
- appointments: Appointment scheduling functionality
- patients: Patient management
- reports: Reporting functionality
- users: User management and authentication
- utils: Utility classes and helpers
- web: Web interface components
- dtos: Data Transfer Objects shared across modules
- admin: Administrative interface
- auth: Authentication interface
- doctor: Doctor interface
- nurse: Nurse interface
- receptionist: Receptionist interface
- reports: Reporting interface
- shared: Shared components and utilities
- Java 17 or higher
- Maven 3.6 or higher
- Node.js 18 or higher
- npm 9 or higher
- PostgreSQL 14 or higher
- Docker and Docker Compose (optional, for containerized deployment)
-
Clone the repository:
git clone https://github.com/brianbrix/afyaquik.git cd afyaquik -
Build the backend services:
mvn clean install -
Configure the database connection in
application.propertiesorapplication.yml. -
Run the backend services:
mvn spring-boot:run
-
Navigate to the frontend directory:
cd afyaquik-frontend -
Install dependencies:
npm install -
Build all frontend applications:
npm run build:all -
Copy built files to their respective backend modules:
npm run copy:all
-
Build and start all services using Docker Compose:
docker-compose up -d -
Access the services at:
- Backend API: http://localhost:8080/api
- Admin Frontend: http://localhost:8080/client/admin/index.html
- Auth Frontend: http://localhost:8080/client/auth/index.html
- Doctor Frontend: http://localhost:8080/client/doctor/index.html
- Receptionist Frontend: http://localhost:8080/client/receptionist/index.html
- Reports Frontend: http://localhost:8080/client/reports/index.html
- Pharmacy Frontend: http://localhost:8080/client/pharmacy/index.html
API documentation is available via SpringDoc OpenAPI. After starting the backend services, access the API documentation at:
http://localhost:8080/swagger-ui/index.html
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature-name - Commit your changes:
git commit -m 'Add some feature' - Push to the branch:
git push origin feature/your-feature-name - Submit a pull request
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.