How jron068/perfect_match works
Perfect Match is a Flask makeup-color suggestion and photo try-on application. A visitor uses the web interface to submit a photo and view suggested shades; signed-in users can unlock more choices, retrieve catalog shades, and manage account and analysis history. The backend contains the image/palette logic and serves API routes, with persistent account and analysis data. The README documents the product workflow and optional catalog integration; sampled backend excerpts show skin sampling, shade matching, and database access, but not the photo-upload route or frontend request wiring.
Main entry points: app.py Flask routes · perfect_match.db Application data · try-it.html Try-on page · login.html Login and registration
Components 17
Web interface
- Web pages
frontend/index.html - Browser client
frontend/assets/js/app.js - Try-on page
frontend/try-it.html - Results page
frontend/results.html - Login and registration
frontend/login.html - Profile page
frontend/profile.html - History page
frontend/history.html
Makeup guidance
- Flask routes
app.py - Photo skin analysis
app.py - Palette suggestions
app.py - Catalog shade matching
app.py
Accounts and history
- Account management
app.py - Analysis history
app.py
Persistence
- Application data
perfect_match.db - SQL schema
perfect_match.sql
Other components
- Visitor
- Makeup API
Connections 21
- Visitor → Web pages: opens
README.md - Visitor → Try-on page: chooses face shape
README.md - Browser client → Flask routes: requests routes
- Try-on page → Photo skin analysis: submits photo
- Photo skin analysis → Palette suggestions: informs suggestions
app.py - Palette suggestions → Results page: returns suggestions
- Flask routes → Photo skin analysis: analyzes image
app.py - Flask routes → Palette suggestions: builds palette
app.py - Flask routes → Catalog shade matching: matches catalog colors
app.py - Flask routes → Makeup API: fetches products
README.md - Visitor → Login and registration: signs in
README.md - Login and registration → Account management: uses account routes
- Visitor → Profile page: manages account
- Profile page → Account management: updates account
- Visitor → History page: views analyses
- History page → Analysis history: requests history
- Flask routes → Account management: handles account requests
app.py - Flask routes → Analysis history: serves history routes
app.py - Account management → Application data: reads and writes
app.py - Analysis history → Application data: reads and deletes
app.py - SQL schema → Application data: defines tables
README.md