MediBro is a full-stack Machine Learning-powered web application that predicts diseases based on symptoms entered by the user and provides medically relevant recommendations including medications, workouts, precautions, and diets.
Area | Tech |
---|---|
Frontend | Next.js, TypeScript, Tailwind CSS |
Backend | Node.js, Express.js |
ML Model | Python, scikit-learn, XGBoost |
Data Tools | Pandas, NumPy |
Deployment | Localhost (dev mode) |
project-root/
āāā backend/ # Backend logic for disease prediction and recommendations
ā āāā datasets/ # Contains all CSV datasets used for prediction and recommendations
ā ā āāā description.csv # Description of diseases
ā ā āāā diets.csv # Recommended diets per disease
ā ā āāā medications.csv # Medications per disease
ā ā āāā precautions.csv # Precautions for each disease
ā ā āāā symtoms.csv # List of symptoms
ā ā āāā training.csv # Training data for the ML model
ā ā āāā workout.csv # Workout recommendations per disease
ā āāā model/
ā ā āāā xgb_regressor.pkl # Trained XGBoost model for disease prediction
ā āāā .gitignore # Git ignore rules for backend
ā āāā diseaseInfo.py # Returns detailed disease info based on prediction
ā āāā disease_prediction.ipynb # Jupyter Notebook for model development and training
ā āāā package-lock.json # Auto-generated for locking dependencies
ā āāā package.json # Backend dependencies and scripts
ā āāā recomended.py # Returns diet, medication, workout, precautions for a disease
ā āāā server.js # Express.js server handling API requests
ā
āāā public/ # Public assets like images and icons for frontend
ā āāā 24.avif # Various images used in the frontend UI
ā āāā favicon-32x32.png # Favicon for the website
ā āāā favicon.ico # Favicon
ā āāā img1.avif # General UI image
ā āāā img2.jpg # General UI image
ā āāā img3.jpg # General UI image
ā āāā img4.jpg # General UI image
ā āāā logo.jpg # Logo image
ā āāā logo2.png # Alternate logo
ā āāā logo5.png # Alternate logo
ā āāā logonew1.png # Final/updated logo
ā āāā meds rec.jpg # Image representing medical recommendations
ā āāā sec.jpeg # Security-related image
ā āāā symp.jpg # Symptoms-related illustration
ā āāā trust.png # Trust-related icon
ā āāā user frie.png # User-friendly design image
ā
āāā src/ # Frontend (Next.js) source files
ā āāā app/ # App routing and pages
ā ā āāā about/
ā ā ā āāā page.tsx # About page component
ā ā āāā contact/
ā ā ā āāā page.tsx # Contact page component
ā ā āāā workplace/
ā ā ā āāā page.tsx # Workplace-related page
ā ā āāā NavBar.tsx # Navigation bar component
ā ā āāā globals.css # Global styles
ā ā āāā layout.tsx # Layout file wrapping all pages
ā ā āāā not-found.tsx # Custom 404 error page
ā ā āāā page.tsx # Main (home) page
ā āāā lib/
ā ā āāā utils.ts # Utility functions used across frontend
ā
āāā .gitignore # Ignore rules for the entire project
āāā README.md # Project documentation
āāā components.json # UI components configuration
āāā eslint.config.mjs # ESLint config for code linting
āāā next.config.ts # Next.js configuration
āāā package-lock.json # Lock file for frontend dependencies
āāā package.json # Frontend project dependencies
āāā postcss.config.mjs # PostCSS configuration for styling
āāā tsconfig.json # TypeScript configuration
Fork the repository to your GitHub account by clicking the "Fork" button at the top right of the original repo.
git clone https://github.com/YOUR-USERNAME/MedBro-Minor.git
cd MedBro-Minor
npm install
npm run dev
In a separate terminal:
cd backend
npm install
node server.js
Make sure your Python model is already trained and exported to
model.joblib
.
Go to http://localhost:3000 in your browser.
joblib
and used via an API bridge/predict
Body:
{
"symptoms": ["headache", "fever", "nausea"]
}
Response:
{
"disease": "Typhoid",
"description": "...",
"medications": [...],
"workout": [...],
"diet": [...],
"precautions": [...]
}