Code Monkey home page Code Monkey logo

microservices-clinic's Introduction

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:

microservices-clinic's People

Contributors

sobczynskipio-softhouse avatar weronikawalczak avatar wojciechadamowski avatar wojciechgaudnik avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.