.Net Core Microservice Application to book doctor appointments. Appointment requests are processed with the help of an AMQP Queue.
Code that's common throughout the project. Examples: Exception classes, Models, AMQP Objects.
Appointment requests from the frontend are routed to this service and appended to an AMQP Queue. They are processed in the Calendar service (AMQP Request/Response Pattern).
Microservice to read and write data to the Database (Doctors, Patients, Availability, Appointments). A HostedService is processing Appointment Requests coming from the AppointmentBooking Service.
Frontend Blazor Application (server side rendering) to book appointments and provide some information about the health clinic and doctors.
Logs are saved to an Elasticsearch NoSQL database and can be visualized through a Kibana Dashboard. To browse through Logs create an index pattern:
- Go to Kibana Dashboard --> http://localhost:5601
- Click "Index Patterns"
- Click "Create index pattern"
- To get all Logs use "*" (you can also filter by Service, Environment and Date --> see https://www.elastic.co/guide/en/kibana/current/tutorial-define-index.html)
- Click "Next step"
- Select "@timestamp" from dropdown
- Click "Create index pattern"
- Click on "Discover" (left menu) to see the logs
All the services (Microservices, Database, RabbitMQ, Blazor) are running within Docker containers so the following steps are required to start the project up:
- Make sure docker-compose is the startup project
- Build the full solution (First build takes a while)
- Start (if an Exception is shown in the browser on startup just wait a few seconds and refresh the page --> means that a backend service wasn't fully ready yet)