Inspiration
Acne is one of the most common skin conditions worldwide, but access to dermatologists is slow, expensive, and intimidating—especially for students and teens. We wanted a way to quickly understand what kind of acne you might be dealing with, get plain-language guidance, and then seamlessly connect with a real dermatologist when needed.
What it does
AcneScan is a web app that:
- Lets users upload a face photo.
- Uses a computer vision model to detect common acne types and estimate severity.
- Summarizes the scan into a simple, friendly explanation.
- Uses a Machine Learning model to generate general, non-diagnostic skincare suggestions tailored to the acne type and severity.
- Lets users create an account and save their scans over time.
- Connects users with board-certified dermatologists, who can view past scan reports and accept appointment bookings.
We are very intentional about safety: AcneScan does not provide a medical diagnosis, prescribe treatment, or recommend specific products. Instead, it’s an educational triage tool that nudges people to seek proper dermatology care.
How we built it
- Collected and preprocessed acne image datasets, then trained a TensorFlow CNN to classify acne types / severity.
- Wrapped the model in a Flask API (
/api/predict) and deployed it on Render. - Built the front end with Next.js, React, and Tailwind CSS, deployed on Vercel.
- Used Supabase for authentication, database, and storage of scan metadata (not raw images in the browser) so users can track their history.
- Called a pre-trained model via API to turn our outputs into human-readable explanations and general skincare suggestions.
- Added a dermatologist directory + booking flow where derms can be discovered by location and users can schedule an appointment.
Challenges
- Getting a usable model working on a tight timeline with limited training data.
- Making sure we framed everything responsibly from a healthcare perspective, avoiding diagnosis language, adding clear disclaimers, and keeping recommendations very general.
- Juggling multi-service deployment: Vercel for the Next.js front end and Render for the Flask + TensorFlow backend.
What we learned
- How to take a computer vision model from a notebook into a real, production-ish web app.
- Practical trade-offs between model accuracy, inference time, and hosting limits.
- How important UX and wording are in healthcare tools—being precise about what the tool doesn’t do is just as important as what it does.
What’s next
- Improve the model with better, more diverse training data and clinical input from dermatologists.
- Add stronger privacy controls and clearer consent for image handling.
- Build a lightweight dermatologist dashboard to review patient scans, see trends over time, and manage bookings.
- Explore adapting the tool for other skin conditions while keeping a strong “education, not diagnosis” stance.
Built With
- flask
- next.js
- react
- supabase
- tailwind
- tensorflow
- typescript

Log in or sign up for Devpost to join the conversation.