Inspiration
It started with something surprisingly common: searching online for skincare advice.
Whether it was dealing with occasional breakouts, dry skin, or simply trying to build a skincare routine, I found myself overwhelmed by conflicting recommendations. One website recommended an ingredient, while another advised avoiding it. Social media was filled with skincare trends that often ignored individual skin types and concerns, making it difficult to know what advice was actually right.
I realized that what most people need isn't more skincare content—they need guidance that is personalized to their skin. At the same time, professional dermatology consultations aren't always immediately accessible or affordable for everyone.
That inspired me to build SkinSense: an AI-powered skincare assistant that uses the Gemini API to generate personalized skincare routines, ingredient recommendations, and product suggestions tailored to each user's unique skin profile.
What it does
SkinSense is an AI-powered skincare assistant that creates personalized skincare routines based on a user's unique skin profile.
Users complete a comprehensive assessment including their skin type, sensitivity, concerns, lifestyle, and budget. Using the Gemini API, SkinSense analyzes this information and generates:
- Personalized morning and nighttime skincare routines
- Ingredients that are beneficial for the user's skin
- Ingredients to avoid based on skin concerns
- Product recommendations across affordable, mid-range, and premium budget categories
- Safety tips and skincare precautions
- A beautifully formatted downloadable PDF skincare report
- Clickable product recommendations that open Google Search for further exploration
The goal is to transform confusing skincare advice into a clear, structured, and personalized skincare plan.
How I built it
I built SkinSense as a full-stack web application using Java and Spring Boot for the backend, along with HTML, CSS, JavaScript, Bootstrap, and Thymeleaf for the frontend.
The core intelligence of the application is powered by the Gemini API. User responses from the assessment form are converted into carefully engineered prompts, allowing Gemini to generate personalized skincare routines, ingredient recommendations, product suggestions, and safety guidance. The AI response is then parsed and displayed in a modern dashboard with downloadable PDF support.
For deployment, I containerized the application using Docker and deployed it as a live web application on Render. GitHub was used for version control throughout development.
Challenges I ran into
One of the biggest challenges was designing prompts that consistently produced structured, reliable, and useful skincare recommendations. Since large language models can return responses in different formats, I spent considerable time refining prompts and output formatting so the responses could be rendered consistently in the user interface.
Another challenge was building a polished and responsive user experience within the limited time available during the hackathon. I redesigned the AI report into an interactive dashboard with organized cards, product recommendations, clickable search links, and PDF export while ensuring the application remained lightweight and responsive.
Deploying the application also required troubleshooting Docker configuration, environment variables, and cloud deployment before successfully publishing a live version.
Accomplishments that I'm proud of
- Successfully integrated the Gemini API to generate personalized skincare recommendations.
- Built a complete end-to-end workflow from user assessment to AI analysis and downloadable reports.
- Designed a clean and modern dashboard that presents AI-generated recommendations in an easy-to-understand format.
- Implemented budget-aware product recommendations with clickable search links.
- Added PDF export so users can save and revisit their personalized skincare routines.
- Successfully containerized and deployed the application as a publicly accessible web application.
What I learned
Building SkinSense gave me valuable hands-on experience with prompt engineering, AI integration, full-stack web development, Docker, and render deployment.
More importantly, I learned that creating a useful AI application isn't just about connecting an LLM to a project. Producing consistent, trustworthy, and user-friendly AI experiences requires thoughtful prompt design, structured outputs, intuitive interface design, and careful backend engineering.
What's next for SkinSense
I see SkinSense evolving into a comprehensive AI-powered skincare platform.
Future improvements include:
- AI-powered skin image analysis alongside questionnaire-based assessment
- User accounts with skincare history and progress tracking
- Routine reminders and adherence monitoring
- Weather- and season-aware skincare recommendations
- Dermatologist-reviewed recommendation validation
- Product availability and price comparison across retailers
- Explainable AI that helps users understand why each recommendation is made
My long-term vision is to make personalized skincare guidance more accessible, affordable, and trustworthy through responsible use of AI.
Best Use of Gemini API
SkinSense uses the Gemini API as the core intelligence behind the application. Rather than relying on predefined rules or static recommendations, Gemini analyzes each user's skin profile and generates personalized skincare guidance.
Based on the assessment responses, Gemini:
- Analyzes the user's skin type, sensitivity, concerns, lifestyle, and budget.
- Generates personalized morning and nighttime skincare routines.
- Recommends beneficial ingredients while identifying ingredients to avoid.
- Suggests products across different budget categories.
- Provides personalized skincare precautions and safety advice.
I carefully designed the prompts so Gemini produces structured responses that can be consistently rendered by the frontend, transforming questionnaire responses into detailed, actionable skincare plans.
Deployment
SkinSense is deployed as a live web application using Docker and Render, making it accessible through any modern web browser.
The application architecture is:
User → Frontend (HTML, CSS, Bootstrap, Thymeleaf) → Spring Boot Backend → Gemini API → Structured AI Response → Interactive Dashboard & PDF Export
Docker ensures consistent builds across environments, while Render securely hosts the application and manages environment variables for the Gemini API.
Agents & Skills Design System
To keep the project organized during development, I used AGENTS.md and SKILLS.md as architectural documentation.
AGENTS.md
Defines the responsibilities of different development areas—including frontend, backend, AI integration, deployment, and documentation—helping maintain a clear separation of concerns throughout the project.
SKILLS.md
Maps technologies such as Spring Boot, Gemini API, Bootstrap, Thymeleaf, Docker, and PDF generation to the features they power, improving maintainability and making the implementation easier to understand.
These files are not runtime AI agents. Instead, they serve as structured documentation that helped organize development and clearly communicate the system architecture during the hackathon.
Log in or sign up for Devpost to join the conversation.