- Use the command
git clone https://github.com/SylvanasGr/my-doctor-app
to download and clone the project. - Open the project located at
../my-doctor-app
.
- Follow the instructions provided in
my-doctor-app/api-gateway/keycloak.md
.
- Start the microservices in the following sequence:
- a) discovery-server
- b) configuration-service
- c) api-gateway
- d) my-doctor-app-service
- e) payment-service
- f) appointment-service
- Open a terminal and navigate to
~/my-doctor-app-service/liquibase/changelog
. Executeliquibase update
to create the schemas. - Run the script located at
./global/bash_scripts/citizen_mock_data.sh
.
- Select a random record from the 'citizen' table and assume the identity of that user. (
SELECT * FROM citizen ORDER BY random() LIMIT 1
) - Visit http://localhost:8500/login, select 'Login' -> 'Keycloak', then choose 'Register'.
- Provide your real information, excluding the data from the user selected in step 7.
- Upon successful login, navigate to the 'User Page' to validate your existence by providing your tax number and social number to the system.
- Enter the tax number and social number as indicated in step 7.
- If the record from step 7 now reflects your data, it simulates the process of mock data generation, similar to a real scenario on the Greek Government site.
- Navigate to the 'Doctors' tab to request an appointment.
- Choose 'Schedule Appointment' and select a date and time.
- Go to the 'Appointments' tab to view the status of your appointment.
- Open another browser, log in as the chosen doctor from step 15, and navigate to 'Appointments' to accept the appointment.
- Refresh the page to validate that the appointment has been accepted (Status: Accepted), and check the 'Payments' tab to view the payment history.
- You can also verify the same process from the perspective of a doctor.
- As a doctor, add the patient for the appointment using the 'Add Patient' button and prescribe necessary medications (Add Prescriptions).
- Check the associated prescriptions from the 'Prescription' tab as a user.
To efficiently work on the project, ensure you have the following tools installed:
-
Git: Version control system for tracking changes in source code during development.
-
Gradle: Build automation tool for managing dependencies and building projects.
-
JDK 17: Java Development Kit, the environment required to develop and run Java applications.
-
Docker Desktop: Platform for building, sharing, and running containerized applications.
-
Liquibase: Database schema change management tool for tracking, managing, and applying database changes.
-
Python: Optional, but useful for various scripting and development tasks.
Make sure to install the appropriate versions compatible with your operating system. Additionally, consider using an Integrated Development Environment (IDE) for a more efficient development experience. JetBrains IntelliJ IDEA is recommended, but feel free to choose the IDE you're most comfortable with.