Your personal AI-powered wardrobe stylist
Get outfit recommendations based on your closet, occasion, and personal style.
- Personalized daily styling tips
- Quick suggestion chips for common occasions
- Natural language outfit requests ("I need an outfit for date night at a sushi bar...")
- One-tap "Style Me" button for instant AI recommendations
- Upload photos of your clothes
- AI-powered item categorization
- Organize by category: Tops, Bottoms, Dresses, Shoes & more
- Tag items with colors, brands, and occasions
- Save your favorite AI-generated outfits
- Filter by occasion: Casual, Work, Date Night
- Quick access to go-to looks
- Rate and favorite outfits
- Powered by Google Gemini AI
- Context-aware recommendations based on:
- Weather & season
- Occasion & setting
- Your personal style preferences
- Items in your closet
| Layer | Technology |
|---|---|
| iOS App | SwiftUI, Swift 5.9, iOS 17+ |
| Backend | Node.js, Express, Prisma ORM |
| Database | PostgreSQL (Supabase) |
| AI | Google Gemini API |
| Payments | Stripe, Apple In-App Purchases |
| Auth | JWT with refresh tokens |
| Deployment | Vercel (Backend) |
- Xcode 15+
- Node.js 18+
- iOS 17+ device or simulator
-
Clone the repository
git clone https://github.com/connorcampagna/fito.git cd fito -
Open in Xcode
open outfitPicker.xcodeproj
-
Build and run on your device/simulator
-
Navigate to backend
cd backend -
Install dependencies
npm install
-
Create environment file
cp .env.example .env
-
Add your API keys to
.env:DATABASE_URL="your_postgres_url" GEMINI_API_KEY="your_gemini_key" JWT_SECRET="your_jwt_secret" JWT_REFRESH_SECRET="your_refresh_secret" STRIPE_SECRET_KEY="your_stripe_key"
-
Run database migrations
npx prisma db push
-
Start the server
npm run dev
fito/
├── outfitPicker/ # iOS App
│ ├── Models/ # Data models
│ ├── Views/ # SwiftUI views
│ │ ├── Home/
│ │ ├── Closet/
│ │ ├── History/
│ │ ├── Profile/
│ │ └── Components/
│ ├── ViewModels/ # View logic
│ ├── Services/ # API & Auth services
│ └── Utilities/ # Extensions & helpers
│
├── backend/ # Node.js API
│ ├── index.js # Express server
│ ├── prisma/
│ │ └── schema.prisma # Database schema
│ └── vercel.json # Deployment config
│
└── screenshots/ # App screenshots
- All API keys and secrets are stored in environment variables
- JWT-based authentication with token refresh
- Passwords hashed with bcrypt (12 rounds)
- Rate limiting on all endpoints
- CORS protection in production
This project is proprietary software. All rights reserved.
Connor Campagna

