-
-
This is the landing page of the website clearly giving a disclaimer that the project is uses AI and ML so always take dr's advise too
-
The two options where the user can upload image of their skin or type the symptoms experiencing
-
Image uploaded
-
CNN analyzes image pixel patterns (texture, color, inflammation) to classify skin as normal, acne, or eczema.
-
Education section to go through recommended videos and articles
-
Education section to go through recommended videos and articles
-
The past history recorded of each and every user
-
Coordinates for the location
-
A detailed report generated
-
the report can be downloaded
-
it will show nearby clinics through google map to connect to the dermat
-
example
💡 Inspiration
🩺 Getting a doctor's appointment for something small — a weird patch of skin or a string of vague symptoms — often takes longer than it should. 😕 Many people end up self-diagnosing through random Google searches, which can be confusing or misleading. 🌐 I wanted to build a quick first-pass health screening tool that gives users an honest, explained starting point before deciding whether they should visit a doctor. ❤️
🚀 What it does
PULSE runs two independent health checks:
📷 Skin Scan
- 🧠 A CNN model classifies a skin photo as Normal, Acne, or Eczema
- 📊 Provides confidence scores for each prediction
💬 Symptom Checker
- ✍️ Users describe their symptoms in plain language
- 🤖 Predicts the most likely conditions using an ML model
✨ Every prediction is accompanied by a plain-English explanation generated by Groq AI, so users understand why the model reached its conclusion instead of seeing just percentages.
📁 Users can also:
- 🕘 Save their scan history
- 🔄 Revisit previous reports
📄 Download a detailed PDF report containing:
- 👤 User information
- 📊 Prediction results
- 💡 AI explanation
- 🏥 Contact details of the nearest dermatologist (automatically fetched using OpenStreetMap)
🛠️ How I built it
💻 Frontend: React + TypeScript
⚙️ Backend: Flask
🖼️ Skin Disease Detection:
- 🧠 Keras CNN
📝 Symptom Prediction:
- 📚 TF-IDF Vectorizer
- 📈 Logistic Regression
📄 PDF Reports:
- jsPDF
🗺️ Nearest Dermatologist Lookup:
- OpenStreetMap Overpass API (No API key required)
☁️ Deployment:
- ▲ Frontend on Vercel
- 🚀 Backend on Render
⚡ Challenges I ran into
🤖 Initially, the symptom checker used Bio_ClinicalBERT with PyTorch and Transformers.
💥 Unfortunately, it required far more RAM than a free-tier server could provide, causing the backend to crash whenever a symptom request was made.
🔄 I switched to a lightweight TF-IDF + Logistic Regression pipeline, which dramatically improved reliability while still providing meaningful, explainable predictions.
🐞 Along the way I also solved several deployment issues:
- ❌ Missing Flask app initialization
- 📂 Gitignored model files
- 🐍 Python version mismatches
- 🔧 Environment configuration errors
Each bug reinforced one lesson:
📖 Read the error carefully before guessing the solution.
🏆 Accomplishments I'm proud of
🎉 Building the entire project solo from start to finish.
✅ Successfully integrated:
- 🧠 Two machine learning models
- 🤖 AI-generated explanations
- 📄 Automated PDF generation
- 🗺️ Dermatologist locator
- ☁️ Full-stack deployment
❤️ I'm also proud that PULSE doesn't overpromise.
Every prediction clearly states that it is:
- ⚠️ A screening aid
- 🚫 Not a medical diagnosis
- 👨⚕️ Encourages consulting a real dermatologist when needed
📚 What I learned
💡 Free-tier infrastructure has real limitations.
🏗️ The most sophisticated model isn't always the best choice if it can't run reliably in production.
✅ A lightweight, dependable model that works every time provides a much better user experience than a larger model that repeatedly crashes.
🌱 What's next for PULSE
🚀 Planned improvements include:
- 🩺 Support for many more skin conditions beyond Normal, Acne, and Eczema
- ☁️ Backend database for persistent scan history instead of local storage
- 📅 Integration with real telehealth platforms or dermatologist appointment booking APIs
- 📱 Improved mobile responsiveness
- 🌍 Multi-language support
- 📊 Better model accuracy through larger medical datasets
❤️ Final Note
PULSE was built as a quick, honest first-pass health screening tool—not a replacement for a doctor 👨⚕️, but a smarter starting point than relying on random search results. 🔍
Built With
- flask
- groq
- jspdf
- keras/tensorflow
- openstreetmap-overpass-api
- python
- react
- render
- scikit-learn
- tailwind-css
- typescript
- vercel
Log in or sign up for Devpost to join the conversation.