Skip to content

ApexFadeVIP/TeethRepair

Repository files navigation

TeethRepair Logo
TeethRepair screen collage

Table of Content

[[TOC]]

Introduction

TeethRepair is a full-stack dentist booking system all across Sweden. It allows both patients and dentists to streamline their appointment booking process while offering an intuitive user experience. The system provide core functionalites such as booking appointments, managing appointment availability, viewing clinics on a map, and staying notified about booking updates.

Tech Stack

Frontend

Backend

Installation Guide

Please follow the installation guide to set up the project.

Before setting up either of the installations, please clone the project.

git clone git@git.chalmers.se:courses/dit355/2024/student_teams/dit356_2024_20/dit-356-project-group-20.git 

Setting up the Services

  1. Make sure you are in the root directory in the command line

  2. Through the bash command line, write the following command

docker swarm init
docker login
  1. After this, you will be prompted to login to the container registry to pull images from our repository's container registry.

  2. After succesfully logging in, run the following command.

In Linux,

bash automated_build.sh

In Windows, make sure you run this through Git Bash,

chmod +x automated_build.sh
./automated_build.sh
  1. You have succesfully run the services! If you decide to close the services please run the following command.
docker stack rm microservices_stack
docker stop $(docker ps -q)

Setting up the Application

  1. Install client dependencies
cd client
npm install
  1. Run the application
npm run dev

System's Architecture

The system relies on the combination between microservices and publish-subscribe. It creates a distributed systems environment where several services can run independently from each other through different nodes.

Entity Relationship (ER) Diagram ![diagram](images/DSDERFINAL.drawio.png)
Architecture Diagram ![diagram](images/DSDARCHDIAGRAM.drawio.png)
Deployment Diagram ![diagram](images/DSDDEPLOYDIAGRAM.drawio.png)

Development Process

At the start of the project, we devised a Social Contract that would explain the decision-making, processes we use, communication channels and which days we are off. The Social Contract can be found in the Wiki.

The team followed a lightweight SCRUM Process. It would consist of two meetings a week, a Sprint Planning and a Sprint Review

In the Sprint Planning, we discuss the current backlog, and select tasks to distribute to the members.

In the Sprint Review, the team would showcase and review each others tasks and have a constructive feedback session about the team's dynamic.

During the week, members would use the Issue Board to track their issues between Open, In-Progress, and Closed as well as open additional code meetings if the members need help or are pair-programming.

System Features

ToothRepair's layered-microservices architecture paired with pub-sub architecture allows for it to be a featured-packed system.

The system implementes dockerised services which allows the developers to run the services in different platforms. Due to dockers, the developers do not need to ensure that all the dependencies for the services are installed within their respective system.

Docker-compose allows the system to use replica services, ensuring availability at all times. When a service fails or shuts down, the replicas take over while the service tries to restart itself.

The services also implement load balancer, making ToothRepair a high-performing and fast system.

Continuous Integration (CI) is ensured with the help of gitlab's pipeline. Each commit triggers the pipeline where each service is built, test cases are ran, and dockers are built and pushed to container registry with their new changes. This ensures that only tested code/feature is integrated into the system.

The system also features script files to ensure that building and running the containers for the services can be easily done with only one command.

Contributors

Name username
Mohamed Taha Jasser @mohamedt
Nadman Abdullah Bin Faisal @nadman
Vaibhav Puram @puram
Danis Music @danism
Filipe Rosa @filipero

Acknowledgments

Many thanks to the contributors of the project for helping out finishing the project.

And many thanks to the professors and the TAs of Gothenburg University|Chalmers University for providing the necessary knowledge and insights for the development of this project.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors