- 🤖 Introduction
- 🔋 Features
- 🔩 Tech Stack
- 💃 Quick Start
- 🕸 Snippets
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
- 👉 User: This encapsulates all the users of the platform of which include the
patients,admins,super_adminsand certifiedconsultants. - 👉 Registration: This is the conversion of a guest to an authenticated user. The guest can be converted to a
PATIENTor aCONSULTANTat a time. To qualify as a verifiedCONSULTANT, theADMINassigned 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
ADMINcan be registered as an admin by aSUPER_ADMINand 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
- SpringBoot
- Hibernate
- Java
- Docker
- Postgresql
Follow these steps to set up the project locally on your machine:
Prerequisites Make sure you have the following installed on your machine:
- Set up Docker's
aptrepository.
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 updateif 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/recommendicSet 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:latestGet it up and running
docker compose upor
docker-compose up --remove-ophansNow localhost port 8080 is ready to receive requests