Giter Club home page Giter Club logo

exam-system's Introduction

Exam System

If you wish read the description in portuguese, please click here

The architecture for this project using the following technologies:

  • Spring Boot - for build java application.
  • H2 - Data base in memory for persistence Healthcare Instituion and Exams.
  • Swagger - Used to describe methods for developers.

Instructions to run this project

After download project, run the follow command:

 mvn clean package

This command above will compile the application in target folder. If you want to run the application in a docker container, execute this command:

docker-compose up

To run a container in background add -d parameter:

docker-compose up -d

If necessary rebuild a container, execute this command:

docker-compose up --build

Available Interfaces:

Important notes

  • Since the project specification was written in English, I write the code in English too, because I didn't know if it waas a requirement. Anyway I wrote another README.md in Portuguese.

  • So about the entities, I would crete two more entities: Patient and Physician to be isolated from the exam. Because the actual definition entities, I use CNPJ to validate if there was already a institution in database, and for the exam I used Patient Name, Healthcare Institution and procedure name, I did not use the physician beacause the same exam can be requested by another doctor.

  • One of the requirements was that a healthcare institution must not have access to an exam that belongs to other healthcare institution. For this requirement, thinking a microservice could apply authentication through a Gateway API, with this we could get the institution that logged in, so there would be no need for institutionId parameter in delete an exam and get an exam by id.

  • Another possibility for the above alternative was to map exams within the institution resource (Ex: /api/institutions/{institutionId}/exams), so there would be no need for the institutionId parameter. I did not implment this altenative, becaise I thought of the exam as a separate entity, because if the requirements changes, you can seek an exam previously registered by another entity without the discount in your budget, it would not be associated with an institution.

  • Suggestion of use a service discovery and apply security to access methods.

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.