https://github.com/aelmah/amalelmahraoui-appointment-system-v1
A microservices based Appointment System using Spring Boot - Spring AI ..
https://github.com/aelmah/amalelmahraoui-appointment-system-v1
docker javamailsender kafka mysql pgvector postgresql spring-ai-openai spring-boot twilio-sms-api
Last synced: 2 months ago
JSON representation
A microservices based Appointment System using Spring Boot - Spring AI ..
- Host: GitHub
- URL: https://github.com/aelmah/amalelmahraoui-appointment-system-v1
- Owner: aelmah
- License: mit
- Created: 2025-02-21T16:06:24.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-04-18T22:35:24.000Z (6 months ago)
- Last Synced: 2025-04-19T09:16:26.422Z (6 months ago)
- Topics: docker, javamailsender, kafka, mysql, pgvector, postgresql, spring-ai-openai, spring-boot, twilio-sms-api
- Language: Java
- Homepage:
- Size: 3.08 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
#### **Appointment System - Microservices-Based Distributed System**
*This project was submitted as the **final module project** for the Microservices-Based Distributed Systems course.*
---
## **Project Overview**
A clinic appointment system designed to facilitate patient appointments, doctor selection, service bookings, reminders, notifications, and feedback collection. Patients can interact with the **RAG Assistant**, a chatbot that helps guide them in booking appointments, choosing the right doctor, understanding services, and checking prices. The backend is implemented using microservices, with each service responsible for a specific functionality in the system.---
## Service Details| Service | Description | Tech Stack |
|-----------------------|-------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------|
| **RAG Assistant** | Chatbot helping patients with booking, doctor selection, and service information | Spring AI, OpenAI GPT-4, pgvector (PostgreSQL) |
| **Appointment Service** | Manages appointment creation, viewing, updating, and cancellation | Spring Boot, JPA, MySQL |
| **Notification Service** | Sends email notifications about appointment updates | JavaMailSender, Kafka |
| **Reminder Service** | Sends SMS reminders for upcoming appointments | Twilio API |
| **Discovery Service** | Manages microservice discovery and inter-service communication | Eureka |
| **Config Service** | Provides centralized configuration management | Spring Cloud Config |
| **Feedbacks Service** | Collects and manages patient feedback | Spring Boot, JPA (Hibernate), MySQL |
| **API Gateway** | Routes external requests to appropriate microservices | Spring Cloud Gateway |## 📂 **Repository Structure**
```bash
├── .idea/
├── appointment-service/
├── appointment-system-front/ # Frontend (coming soon!)
├── config-service/
├── discovery-service/
├── feedbacks-service/
├── gateway-service/
├── notification-service/
├── rag-assistant/ # Spring AI + GPT-4 RAG
├── reminder-service/
├── config-repo/
└── docker-compose.yml
├── img/
│ ├── bookappointment.png
│ ├── workinghours&contactinfo.png
│ ├── userinterface.png
│ ├── feedbacksection.png
│ └── chatbot.png
└── README.md
```
---## 🛠️ **Getting Started**
### Prerequisites
- Docker
- Java 17+
- OpenAI API key (for RAG Assistant)```bash
git clone https://github.com/yourusername/appointment-system.git
cd appointment-system
docker-compose up --build
```
### Access Points:**API Gateway**: http://localhost:8080
**Eureka Dashboard**: http://localhost:8761
---
## 🖥️ **User Interface Preview**
![]()
User Interface
![]()
Appointment Booking Interface
![]()
AI- Assistant
![]()
Working hours & Contact info
![]()
Feedbacks Section
**Note:** The frontend code for the appointment system is coming soon and is being actively developed to include additional features and UI enhancements.
---
### Credits
Special thanks to my supervisor[**Dr. EL OUAHIDI Bouabid**](https://www.researchgate.net/profile/Bouabid-Ouahidi)
*Department of Computer Science*
[Mohammed V University of Rabat](https://www.um5.ac.ma)
## 🔗 Useful Links
### Alternative Implementations
Find an alternative implementation of the RAG Assistant using Langchain4j + Open AI + Astradb here
**[RAG Assistant (Langchain4j + Astradb Version)](https://github.com/aelmah/RAG-langchain4j-astradb)**