Skip to content

divjazz03/Recommendic

Repository files navigation

spring spring security openjdk postman postgresql docker hibernate

A Medical Consultation and Recommendation Application

Build this project step by step with this detailed guild

📑 Table of Contents

  1. 🤖 Introduction
  2. 🔋 Features
  3. 🔩 Tech Stack
  4. 💃 Quick Start
  5. 🕸 Snippets

🤖 Introduction

This application was inspired by the challenges people face in accessing medical consultations due to distance or unfamiliarity with their surroundings. It connects patients with certified medical practitioners from various specialties whether globally or locally enabling virtual consultations and seamless scheduling of in-person checkups.

The platform is designed to simplify the process of finding trusted healthcare professionals, especially in unfamiliar regions, and places a strong emphasis on ease of use and a smooth experience for both patients and medical practitioners

🔋 Features

  • 👉 User: This encapsulates all the users of the platform of which include the patients, admins,super_admins and certified consultants.
  • 👉 Registration: This is the conversion of a guest to an authenticated user. The guest can be converted to a PATIENT or a CONSULTANT at a time. To qualify as a verified CONSULTANT, the ADMIN assigned must verify the authenticity of the certification, or in later versions can be verified by artificial intelligence.
  • 👉 Login: This logs in the users into the platform. It uses JWT Authentication to verify user identity. It makes the feeds and data displayed to them personalized according to their recent activities or authorization level.
  • 👉 Recommendation: This is unique to the patients. It recommends consultants or articles according to search patterns, location or recent activities.
  • 👉 Real Time Consultation and Chat: This involves real time consultation/chats with consultants whom the admin has started a consultation with. It utilizes web sockets. The admin can have a real-time conversation with the practitioner of their choosing about topics they are interested in.
  • 👉 Admin Registration: An ADMIN can be registered as an admin by a SUPER_ADMIN and an automatically generated password is assigned to that admin.
  • 👉 Consultant Certification: Admins are assigned the certificates of the consultants that haven't been certified. Once the assigned admin certifies the certificates. The Consultant is automatically verified.
  • 👉 File upload: The Consultant can upload pdf documents or clear images of their certificates. Everyone writer and patients need to upload their profile pictures for visual identification.
  • 👉 Email Notifications: Implements email notifications for account confirmation and reset of passwords

🔩 Tech Stack

  • SpringBoot
  • Hibernate
  • Java
  • Docker
  • Postgresql

💃 Quick Start

Follow these steps to set up the project locally on your machine:

Prerequisites Make sure you have the following installed on your machine:

Installing docker and docker-compose

  • Set up Docker's apt repository.
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  jammy stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

if you use an Ubuntu derivative distro, such as Linux Mint, you may need to use UBUNTU_CODENAME instead of VERSION_CODENAME.

  • Install the Docker packages
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  • Verify that the Docker engine installation was successful
sudo docker run hello-world
  • Update the package index, and install the latest version of Docker Compose
sudo apt-get update
sudo apt-get install docker-compose-plugin
  • Finally, verify that the Docker compose is installed correctly by checking the version
docker compose version

🔰 For more info on installation in other distros

Cloning the Repository

git clone https://github.com/divjazz03/recommendic

Set Up Environment Variables

Create a new file named .env in the root of your project and add the following content

POSTGRES_USER=
POSTGRES_PASSWORD=
POSTGRES_DB=
SECRET={Make it as long as possible}
EMAIL_HOST=
EMAIL_PORT=
EMAIL_ID=
EMAIL_PASSWORD=
VERIFY_EMAIL_HOST=

Build the app image

docker build --tag=recommendic:latest

Get it up and running

docker compose up

or

docker-compose up --remove-ophans

Now localhost port 8080 is ready to receive requests

About

This application is inspired by the idea and observation of the hassels involved in medical consultations due to distance or location...

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors