Medical document store, verify and sharing platform with end-to-end encryption
-
Encourages user to store and share their medical records with end-to-end encryption
-
Verify a documentsβ authenticity and identify prescription/medical record tempering
-
Identify patient negligence / doctor mistreatment with share history
-
Doctor-Patient Confidentiality, Patient has full control over his data
-
Faster Medical document (eg. fitness certificate) verification process
-
Emergency medical information
-
Organize medical documents in collection, easily share a group of documents
-
Public health analysis for Directorate General of Health ServicesΒ (DGHS)
-
ReactJS
-
React Bootsrap
-
Axios
-
React Router
-
Google Map SDK
-
SCSS
-
Spring Boot
-
Spring Web
-
Spring Security
-
JPA Hibernate
-
JWT Token
-
Lombok
-
Stanford Core NLP
-
Deep Learing for Java (dl4j)
-
Word2Vec Pretrained Model
-
ProsgreSQL Database
-
Firebase Cloud Storage
Deplyment: Netlify
CI/CD: Trigger on deply-frontend
branch
Backend was deplyed without NLP because the
deeplearning4j
andStanford Core NLP
take too much resources. Tokenization in the deployed version is done using regular expression andWord2Vec
function similarity is rewritten by us in java.This version of code is in
without-ai
branch
Deplyment: Azure
Docker Image: [URL](Docker docker push mjksabit/spondon-backend:without-nlp
CI/CD: Trigger on without-ai
branch
Deployment: Render
Three Tier Archirecture: Presentation Tier, Logic Tier, Data Tier
-
ImageBB: To upload image
-
Endless Medical: AI integrated symptom analyzer
-
ChatPDF: Analyze pdf files and ask questions
-
User have RSA public-private key pair, public key isΒ stored in the database
-
When a document is uploaded, a random password is generated, which is used for AES encryption of the document
-
The generated key encrypted with user public key stored in the database for accessing the document later
-
All these are done at frontend
-
Endless Medical: AI integrated symptom analyzer [link]
-
ChatPDF: Analyze pdf files and ask questions [link]
-
Analysis: Stanford CoreNLP with deeplearing4j for tokenizing, sentence splitting, sentiment etc analysis of anonymous data using word2vec pretrained model
Dockerfile
./java/com/github/mjksabit
βββ spondon
βββ SpondonBackendApplication.java
βββ consts
βββ controller
βΒ Β βββ All the controllers are here
βββ model
βΒ Β βββ All the entities are here
βββ repository
βΒ Β βββ All the repositories are here
βββ security
βΒ Β βββ Security configuration and JWT Filter
βββ service
βΒ Β βββ All the services
βββ util
resources
βββ application.properties
public
βββ PUBLIC folder required by React
src/app
βββ App.js (Entry Point)
βββ App.scss (SASS Root)
βββ AppRoutes.js (React Router Entrypoint, Lazy loaded Components)
βββ admin
βΒ Β βββ Admin Related Components
βββ api
βΒ Β βββ All API calls
βββ common
βΒ Β βββ Common Components and security functions
βββ doctor
βΒ Β βββ Doctor Related Components
βββ firebase-config.js
βββ logo.svg
βββ shared
βββ user
βΒ Β βββ Doctor Related Components
βββ user-pages
βββ Auth Related Components
-
Installing Dependency
npm i
-
Running frondend
npm start
-
Building frontend
npm build
-
Running backend
./mvnw spring-boot:run
-
Building backend
./mvnw clean package java -jar target/spondon-0.0.1-SNAPSHOT.jar
-
Building & Running docker image
docker build -t spondon-backend . docker run --env-file ./.env --expose=8080 -p 8080:8080 spondon-backend
-
Environment Variable
DB_PASSWORD= DB_URL= DB_USER= DEBUG_MODE=false GMAIL= GMAIL_SMTP_PASSWORD= JWT_SECRET= FRONTEND_URL=https://sp0nd0n.netlify.app