Live Project: Healthvision
Status: β
Completed (MVP)
A comprehensive MedTech web application built with the MERN stack and integrated AI/ML capabilities for medical report analysis, appointment booking, and telemedicine consultations.
HealthVision provides users with a simple, accessible digital health platform where they can:
- Analyze medical reports using AI/ML
- Interact with a symptom chatbot for urgency assessment
- Book appointments with doctors
- Conduct video consultations via WebRTC
- Make secure payments for consultations
HealthVision/
βββ frontend/ # React.js frontend application (Vite + Tailwind)
βββ backend/ # Node.js/Express backend API (MongoDB + Socket.io)
βββ healthvision-chatbot/ # Independent symptom chatbot service (Python)
βββ ml-service/ # Python AI/ML service for report analysis
βββ team-docs/ # Project documentation & design assets
- Framework: React.js with Vite
- Styling: TailwindCSS
- State Management: React Context API
- HTTP Client: Axios
- WebRTC: Socket.io-client
- Runtime: Node.js
- Framework: Express.js
- Database: MongoDB with Mongoose
- Authentication: JWT + bcrypt
- Real-time: Socket.io (for WebRTC signaling)
- Payment: Razorpay (Live Mode)
- Framework: FastAPI/Flask
- OCR: Tesseract/PyMuPDF
- ML Libraries: scikit-learn, pandas, numpy
- NLP: For symptom analysis
| Name | Role | GitHub |
|---|---|---|
| Akhil Pandey | Backend + DB | @Akhil9648 |
| Aditya Pratap Singh | Ml-Service + HealthVison-Chatbot | @aditya2005-code |
| Rishi Tiwari | Frontend, Backend + DB | @rishi-tiwari023 |
For detailed information about the project, please refer to:
- Project Overview - MVP features, tech stack, and system design
- Team Roles - Responsibilities and task distribution
- Development Timeline - 1-month development schedule
- Node.js (v16+)
- MongoDB
- Python (v3.8+)
- Git
cd frontend
npm install
npm run devcd backend
npm install
npm run devcd ml-service
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
python main.py- Secure JWT-based authentication
- Protected routes and role-based access
- Upload medical reports (PDF/Image)
- OCR text extraction
- Disease pattern detection (Dengue, Typhoid, Viral Fever)
- Interactive symptom description
- Urgency level classification
- Consultation recommendations
- Doctor selection and availability
- Timeslot management
- Appointment confirmation
- Secure Processing: Integrated Razorpay Checkout JS for seamless frontend payments.
- Order Generation: Express backend securely generates Order IDs and authenticates transactions.
- Signature Verification: Server-side webhook and crypto HMAC signature validation.
- User Experience: Automatic sync with database state for instantly confirmed appointment statuses.
- Consultation Fee: Dynamic pricing retrieved from database models.
- WebRTC-based real-time communication
- Voice and video calls
- Basic call controls
The project relies on environment variables for secure configuration. Both the frontend and backend require a .env file in their respective directories based on the provided templates.
VITE_API_URL: Points to the Node.js APIVITE_RAZORPAY_KEY_ID: Public key for the Razorpay Checkout integration.
- Database:
MONGODB_URIfor the MongoDB Atlas or local connection. - Authentication:
JWT_SECRETfor secure token signing andJWT_EXPIRE. - Email (Resend):
RESEND_API_KEYfor transactional system emails. - Cloud Storage:
CLOUDINARY_URL(or discrete name/key/secret) for report hosting. - Payments:
RAZORPAY_KEY_IDandRAZORPAY_KEY_SECRETfor server-side verification. - Microservices:
ML_API_URLto connect with the FastAPI ML engine.
HealthVision is architected as a distributed system with optimal hosting across different platforms:
- Frontend (Vite): Deployed on Vercel for ultra-fast edge delivery.
- Backend (Node.js): Hosted on Render (Web Service).
- ML Microservice (FastAPI): Hosted on Render (Independent Service).
- Symptom Chatbot: Hosted on Render (Autonomous Service).
- Domain Management: Custom domain
healthviz.inconfigured via GoDaddy.
- Branching Strategy: Feature-based branching
- Code Review: Pull requests required for merging
- Testing: Continuous testing throughout development
- Communication: Daily standups and async updates
If you see a "Report Not Found" error when visiting http://localhost:5173/reports/analysis, this is expected behavior.
- Cause: The URL
/reports/analysistries to load a report with the ID "analysis", which does not exist. - Solution: Use the correct URL format:
/reports/:reportId(e.g.,/reports/65d4...). You can navigate to specific reports from the Reports page or Dashboard.
In the backend console, you may notice that every request from the frontend is logged twice.
- Cause: The frontend is running in React Strict Mode (enabled in
frontend/src/main.jsx). In development, React intentionally mounts components twice to help identify side effects, which triggers duplicate API calls. - Note: This behavior is restricted to the development environment and will not occur in the production build.
If you pull in backend changes (like switching to Cloudinary or new MongoDB routes) and testing them locally still shows the old logic:
- Cause: Your backend server needs to be fully restarted, or your browser is making requests to a cached URL on Render instead of localhost.
- Solution:
- Stop your local Node server (
Ctrl+C) and start again:npm run dev. - Perform a Hard Refresh on your frontend (
Ctrl + F5orShift + F5on Windows).
- Stop your local Node server (
This project is licensed under the MIT License - see the LICENSE file for details.
Please refer to the Development Timeline for task assignments and contribution guidelines.
Built with β€οΈ by Team HealthVision