Create SkinGenius AI , web tool that builds personalized skin reports in 4 steps: Basic Info : Age, gender (optional), skin concerns (dropdown), current routine (text). Symptoms : Facial map + stinging/allergy checkboxes. Photos : Front/side selfies with AI feedback (e.g., “Too dark”). Lifestyle : Water, stress, sun exposure. Report output (dummy): Page 1 : Skin score (72/100) + insights (“Moderate dehydration”). Page 2 : Product picks (CeraVe , The Ordinary ) + weekly routine. Page 3 : Medical alerts (“See dermatologist if redness lasts >2 weeks”).
To upload files, please first save the app
import streamlit as st
st.title('SkinGenius AI')
# Page 1: Basic Info
st.header('Step 1: Basic Info')
age = st.number_input('What is your age?', min_value=0)
gender = st.selectbox('Gender (optional)', ['Select', 'Male', 'Female', 'Other'])
skin_concerns = st.selectbox('What are your skin concerns?', ['Dryness', 'Acne', 'Sensitivity', 'Wrinkles', 'Oily'])
current_routine = st.text_area('What is your current skincare routine?')
# Page 2: Symptoms
st.header('Step 2: Symptoms')
st.subheader('Facial Map')
# Placeholder for facial map (currently just text)
st.write('Facial map will be implemented here.')
st.checkbox('Stinging or burning?')
st.checkbox('Any allergic reactions?')
# Page 3: Photos
st.header('Step 3: Upload Photos')
front_photo = st.file_uploader('Upload your front selfie', type=['jpg', 'jpeg', 'png'])
side_photo = st.file_uploader('Upload your side selfie', type=['jpg', 'jpeg', 'png'])
if front_photo and side_photo:
st.image([front_photo, side_photo], caption=['Front Photo', 'Side Photo'], use_column_width=True)
# Page 4: Lifestyle
st.header('Step 4: Lifestyle')
water_intake = st.number_input('How many glasses of water do you drink daily?', min_value=0)
stress_level = st.select_slider('Rate your stress level', options=['Low', 'Moderate', 'High'])
sun_exposure = st.number_input('Hours of sun exposure per week?', min_value=0)
# Generate report
if st.button('Generate Report'):
skin_score = 72 # Dummy score
insights = 'Moderate dehydration'
product_picks = ['CeraVe', 'The Ordinary']
medical_alert = 'See dermatologist if redness lasts >2 weeks'
# Display the report
st.write(f'\n**Your skin score:** {skin_score}/100')
st.write(f'**Insights:** {insights}')
st.write('**Product Picks:**')
for product in product_picks:
st.write(f'- {product}')
st.write(f'**Medical Alerts:** {medical_alert}')
Hi! I can help you with any questions about Streamlit and Python. What would you like to know?