Skip to content

Main files are in branch "frontend". This is an online clinic where as a patient we can register visits to doctors, view what visits are available, register and log in as a doctor or patient. In this project I was responsible for the front-end. This project is created to be part of learning

Notifications You must be signed in to change notification settings

WojciechAdamowski/Microservices-Clinic

 
 

Repository files navigation

Microservices-Clinic

Implementation of medical unit administration system based on Spring Framework. The system is set up as distributed microservices architecture with use of Spring Boot tools. Main functionality of that system is registration of users(patients, doctors), managing doctors calendars and registering patients for visits.

Table of contents

Architecture

Example screenshot

Eureka Registry

This is typical implementation of Netflix Eureka registry. In simple words, in my opinion, this is a simple version of DNS for a microservice :)

Zuul

Service gateway is responsible for authorization. This service has 2 majors tasks, first if JWT doesn't exist and a request is directed to auth for new JWT or registration then pass this request further. Second if JWT exists, unpack and check if it is correct and decide if the request is allowed to reach a specific endpoint.

Authentication

Service responsible for authentication. This service has two tasks. One is to register new users and keep then in DB. The second is to check if the user exists if the password is correct and return JWT.

Patient Doctor Clinic

These three services are the core of the whole system. Our main goal is to be able to record the patient's visit to the doctor and a whole bunch of features related to doing this right.

Rabbit MQ, Search, Config, Statistic

These four services aren't implemented yet. Right now we have to decide how to make communication between services less pained.

  • Rabbit MQ we have tested in other projects but ... we're wondering if Kaffka in this project not will be a better choice?
  • Search after we decide Rabbit or Kaffka then we will be able to learn ElasticSearch and then implement into our system if it's will be fitted.
  • Config will be a simple typical config service, with the possibility to change the config on the fly.
  • Statistic we would like to make in .NET core MVC and check how these main two different technology play together.
    All that is right now stopped by tests. We have to do some unit and integrated tests.

Security

Example screenshot

Example communication between mssc

Example screenshot

Tech_Stack

  • Java 13
  • Spring Boot 2
  • Netflix Eureka
  • DB Postgres
  • JPA / Hibernate
  • Swagger 2
  • ReactJS

Screenshots

Example screenshot Example screenshot Example screenshot Example screenshot Example screenshot Example screenshot Example screenshot

TODO in progress

Back-End:

  • doctor's unitests tests and integration tests <--- move here tests from postman
  • search (kafka || rabit && elasticSearch)
  • statistic mssc in .NET MVC
  • config mssc
  • rewrite to use faign, hateos

Front-End:

  • create documentation about each component and container
  • add new animations when logging in or registration
  • add unit and integration tests

Project is in progress.

Contact

Created by:

About

Main files are in branch "frontend". This is an online clinic where as a patient we can register visits to doctors, view what visits are available, register and log in as a doctor or patient. In this project I was responsible for the front-end. This project is created to be part of learning

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 67.6%
  • JavaScript 32.1%
  • HTML 0.3%