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

Share this project:

Updates