Skip to content

Full Stack Application that manages patients, clinics and their relationships

Notifications You must be signed in to change notification settings

Cunegundess/MediSync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MediSync

Full Stack Application that manages patients, clinics and their relationships

Technologies Used

  • Backend:

    • FastAPI
    • Python 3.9+
    • Swagger
  • Frontend:

    • React.js
    • TailwindCSS
    • Zod
    • React Hook Form
  • Database:

    • PostgreSQL
  • Containerization:

    • Docker
    • Docker Compose
  • Version Control:

    • Git
    • Github

Installation

To install and run the project, follow these steps:

  1. Clone the repository:

    git clone https://github.com/cunegundess/MediSync.git
  2. Navigate to the project directory:

    cd MediSync
  3. Create a .env file with the following content:

    POSTGRES_USER=medisync
    POSTGRES_PASSWORD=medisync1234#
    POSTGRES_DB=medisync_database
    POSTGRES_URL=postgresql://medisync:medisync1234#@postgres/medisync_database
    
    VITE_BACKEND_API_URL=http://localhost:8000
    
  4. Now run the project the following command:

    docker compose -f docker-compose.yml up --build

Usage

Once the application is running, the backend will be available at http://localhost:8000 and the frontend at http://localhost:5173. The Swagger UI will be available at http://localhost:8000/docs

Endpoints

Clinics Endpoints

  • Get All Clinics

    • URL: /clinics
    • Method: GET
    • Description: Retrieves a list of all clinics in the system.
  • Create Clinic

    • URL: /clinics
    • Method: POST
    • Description: Allows the creation of a new clinic. The request body should include details such as clinic name and specialty.
  • Update Clinic

    • URL: /clinics/{clinic_id}
    • Method: PUT
    • Description: Updates the details of an existing clinic. The request body should contain updated information about the clinic.
  • Delete Clinic

    • URL: /clinics/{clinic_id}
    • Method: DELETE
    • Description: Deletes a clinic from the system using its unique identifier (clinic_id).

Patients Endpoints

  • Get All Patients

    • URL: /patients
    • Method: GET
    • Description: Retrieves a list of all patients in the system.
  • Create Patient

    • URL: /patients
    • Method: POST
    • Description: Allows the creation of a new patient. The request body should include patient details like name, email and phone number.
  • Update Patient

    • URL: /patients/{patient_id}
    • Method: PUT
    • Description: Updates a patient's details using their unique identifier (patient_id). The request body should include the updated patient information.
  • Delete Patient

    • URL: /patients/{patient_id}
    • Method: DELETE
    • Description: Deletes a patient from the system by their unique identifier (patient_id).

Relationships Endpoints

  • Get All Relationships

    • URL: /relationships/
    • Method: GET
    • Description: Retrieves a list of all relationships between patients and clinics.
  • Create Relationship

    • URL: /relationships/
    • Method: POST
    • Description: Allows the creation of a new relationship. The request body should include patient_id, clinic_id and relationship_type
  • Update Relationship

    • URL: /relationships/{relationship_id}
    • Method: PUT
    • Description: Updates a patient's details using their unique identifier (patient_id). The request body should include the updated patient information.
  • Delete Relationship

    • URL: /relationships/{relationship_id}
    • Method: DELETE
    • Description: Deletes a relationship from the system by their unique identifier (relationship_id).

Backlog

In Progress

  • Backend | Implement Unit Tests

Completed

  • Backend | Create Patients CRUD
  • Backend | Create Clinics CRUD
  • Backend | Create Relationships CRUD
  • Backend | Create Clinics Routes
  • Frontend | Implement Patients screen and components
  • Frontend | Implement Clinics screen and API integration
  • Frontend | Implement Relationships screen and API integration
  • Frontend | Create Modal components for Entities
  • Frontend | Integrate Patients data with backend after PUT request
  • Frontend | Fix background opacity in modals and remove column name from icons
  • Docker | Configure PostgreSQL for backend
  • Docker | Configure Docker for frontend
  • Docker | Add API URL as an environment variable for frontend
  • Frontend | Implement React Router and create pages
  • Frontend | Style Sidebar and HomePage, remove PageFooter
  • Frontend | Implement form validations

About

Full Stack Application that manages patients, clinics and their relationships

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published