Skip to content

koushikvasa/mediconnect

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MediConnect

A full-stack healthcare platform that connects patients with medical specialists using AI-powered matching, real government clinician data, and interactive medical visualization tools.

Features

  • Doctor Search & Discovery — Search 2.8M+ real clinicians from CMS government data by location, specialty, or symptoms
  • AI-Powered Symptom Matching — Google Gemini AI analyzes symptoms and recommends appropriate medical specialties with confidence scoring
  • Precision Consult Match — Calculates doctor-patient compatibility scores, predicts consultation fees, and supports appointment scheduling
  • Interactive Map — View nearby doctors on an OpenStreetMap-powered map with distance and travel time calculations
  • 3D Anatomy Viewer — Explore interactive 3D medical visualizations tied to specialties and conditions
  • Clinical Nexus Academy — AI-driven medical education platform with condition explanations and specialist information
  • AI Chat Assistant — Conversational medical guidance with patient info collection, image upload, and diagnostic suggestions
  • User Accounts — Authentication, profile management, avatar uploads, and theme customization via Supabase
  • Emergency Features — Emergency location sharing and contact alerts

Tech Stack

Layer Technology
Frontend React 18, Vite 5
Backend Node.js, Express 4
Database SQLite, CMS CSV (2.8M+ records via Git LFS)
AI / ML Google Gemini 2.5 Flash
Authentication Supabase
Maps Leaflet, OpenStreetMap (no API key required)
3D Graphics Three.js, Google Model Viewer
Dev Tools Nodemon, ESLint, Concurrently

Prerequisites

  • Node.js (v18 or later recommended)
  • npm
  • Git LFS (the CMS clinician CSV is tracked with LFS)

Getting Started

1. Clone the repository

git clone https://github.com/koushikvasa/mediconnect.git
cd mediconnect

2. Set up environment variables

Frontend — create frontend/.env:

VITE_SUPABASE_URL=<your-supabase-url>
VITE_SUPABASE_ANON_KEY=<your-supabase-anon-key>
VITE_GEMINI_API_KEY=<your-gemini-api-key>

Backend — create backend/.env:

GEMINI_API_KEY=<your-gemini-api-key>
PORT=3001

3. Install dependencies

# Backend
cd backend
npm install

# Frontend
cd ../frontend
npm install

4. Import data (first time only)

cd backend
npm run import-data          # Import CMS CSV into SQLite
npm run generate-addresses   # Generate addresses for doctors

5. Run the application

# Start the backend (port 3001)
cd backend
npm run dev

# In a separate terminal, start the frontend (port 5173)
cd frontend
npm run dev

Or run both together from the frontend directory:

cd frontend
npm run dev:with-backend

Open http://localhost:5173 in your browser.

Project Structure

mediconnect/
├── backend/
│   ├── controllers/          # Route handlers
│   ├── routes/               # API endpoint definitions
│   ├── services/             # Business logic (CSV processing, AI matching)
│   ├── scripts/              # Data import & address generation utilities
│   ├── data/                 # SQLite DB & CMS CSV (Git LFS)
│   └── server.js             # Express entry point
├── frontend/
│   ├── src/
│   │   ├── components/       # React components (map, 3D viewer, academy, etc.)
│   │   ├── services/         # API clients & AI service integrations
│   │   ├── hooks/            # Custom React hooks
│   │   ├── utils/            # Constants and helpers
│   │   ├── assets/           # Static images
│   │   ├── App.jsx           # Main application component
│   │   └── main.jsx          # React entry point
│   ├── server/
│   │   └── proxy-server.js   # Dev proxy server
│   └── vite.config.js        # Vite configuration
└── README.md

API Endpoints

Method Endpoint Description
GET /api/doctors/search Search doctors by location, specialty, symptoms
POST /api/specialty/recommend AI-powered symptom-to-specialty recommendation
GET /api/doctors/specialties List all available specialties
GET /api/doctors/stats Database statistics
GET /health Server health check

Search parameters

GET /api/doctors/search?location=<city>&specialty=<spec>&symptoms=<symptoms>&age=<age>&limit=20

Specialty recommendation

POST /api/specialty/recommend
{
  "symptoms": "chest pain and shortness of breath",
  "age": 45,
  "gender": "male"
}

Available Scripts

Backend

Script Description
npm start Start the server
npm run dev Start with Nodemon (auto-reload)
npm run import-data Import CMS CSV into SQLite
npm run generate-addresses Generate doctor addresses

Frontend

Script Description
npm run dev Start Vite dev server
npm run build Production build
npm run preview Preview production build
npm run dev:with-backend Run frontend and backend together
npm run lint Run ESLint

License

This project is for educational and demonstration purposes.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors