ββββββββββββββββββββ ββββββ βββββββββββ βββ ββββββ βββ ββββββ βββββββββ
βββββββββββββββββββββ βββββββ βββββββββββ ββββββββββββββ ββββββ βββββββββ
ββββββββ βββ βββββββ βββ ββββββ βββ ββββββββββββββ ββββββ βββ
ββββββββ βββ βββββ βββ ββββββ ββββ βββββββββββββββ ββββββ βββ
ββββββββ βββ βββ ββββββββββββββββ βββββββ βββ βββββββββββββββββββββββ
ββββββββ βββ βββ ββββββββββββββββ βββββ βββ βββ βββββββ βββββββββββ
Ever stood in front of your wardrobe thinking "I have nothing to wear" β with a closet full of clothes?
StyleVault solves that. It's a full-stack wardrobe management app that lets you digitize every clothing item you own, create outfit combinations, and finally take control of your personal style.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β π· Upload β π Organize β β¨ Style β
β β
β Snap your Tag by type, Mix & match β
β clothes color & season saved outfits β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Feature | Description |
|---|---|
| π· Photo Upload | Upload images of every clothing item in your wardrobe |
| ποΈ Smart Organization | Categorize by type, color, season, and occasion |
| π Outfit Builder | Mix and match items to create and save complete outfits |
| π Secure Auth | JWT-powered authentication via Supabase |
| βοΈ Cloud Storage | All images and data stored securely in the cloud |
| π± Responsive Design | Looks stunning on desktop, tablet, and mobile |
| β‘ Blazing Fast | Built with Vite for lightning-quick load times |
ββββββββββββββββββββ¦ββββββββββββββββββββββββββββββββββββββββ
β LAYER β TECHNOLOGY β
β βββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββββ£
β π¨ Frontend β React 18 + Vite β
β βοΈ Backend β Node.js + Express β
β ποΈ Database β Supabase (PostgreSQL) β
β π Auth β Supabase Auth + JWT Middleware β
β πΌοΈ File Upload β Multer + Supabase Storage β
β π§Ή Linting β ESLint β
ββββββββββββββββββββ©ββββββββββββββββββββββββββββββββββββββββ
π stylevault/
β
βββ π₯οΈ backend/
β βββ src/
β βββ π middleware/
β β βββ auth.js β JWT token verification
β βββ π£οΈ routes/
β β βββ auth.js β Register, login, session
β β βββ outfits.js β Create & manage outfits
β β βββ upload.js β Image upload handler
β β βββ wardrobe.js β Clothing item CRUD
β βββ index.js β Express entry point
β βββ supabase.js β Supabase client setup
β βββ .env.example β Environment variable template
β βββ schema.sql β Full database schema
β βββ package.json
β
βββ π¨ frontend/
β βββ src/ β React components & pages
β βββ public/
β β βββ favicon.svg
β β βββ icons.svg
β βββ index.html
β βββ vite.config.js
β βββ package.json
β
βββ π DEPLOY.md β Deployment guide
βββ π README.md β You are here!
βββ π§ eslint.config.js
Before you begin, make sure you have:
installed
- A Supabase account (free tier works great!)
or Yarn
git clone https://github.com/your-username/stylevault.git
cd stylevault- Open your Supabase Dashboard
- Go to SQL Editor
- Paste and run the contents of
backend/schema.sql
π‘ This creates all required tables:
wardrobe_items,outfits, and more.
cd backend
cp .env.example .envFill in your .env:
# Server
PORT=5000
# Supabase
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_ANON_KEY=your-anon-key-here
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key-here
# Auth
JWT_SECRET=your-super-secret-jwt-key
β οΈ Never push your.envto GitHub. It's already in.gitignore.
cd backend
npm install
npm run dev
# π’ Running on http://localhost:5000cd frontend
npm install
npm run dev
# π¨ Running on http://localhost:5173That's it! Open http://localhost:5173 and start styling. π
POST /api/auth/register β Create a new account
POST /api/auth/login β Login & get JWT token
GET /api/auth/me β Get current user profile
GET /api/wardrobe β Fetch all clothing items
POST /api/wardrobe β Add a new item
PUT /api/wardrobe/:id β Update an item
DELETE /api/wardrobe/:id β Remove an item
GET /api/outfits β Fetch all saved outfits
POST /api/outfits β Create a new outfit
PUT /api/outfits/:id β Update an outfit
DELETE /api/outfits/:id β Delete an outfit
POST /api/upload β Upload a clothing image
π All routes except
/auth/registerand/auth/loginrequire:Authorization: Bearer <your_jwt_token>
npm run dev # π Start with hot-reload (nodemon)
npm start # π Start in production modenpm run dev # β‘ Start Vite dev server
npm run build # π¦ Build for production
npm run preview # π Preview production build
npm run lint # π§Ή Run ESLint checksFull deployment instructions are in DEPLOY.md, including:
- π Backend β Railway / Render / Fly.io
- β² Frontend β Vercel / Netlify
- π§ Environment β Production env variables setup
- πͺ£ Storage β Supabase Storage bucket configuration
Contributions are what make the open source community amazing. Any contributions you make are greatly appreciated!
1. π΄ Fork the project
2. πΏ Create your branch β git checkout -b feature/AmazingFeature
3. πΎ Commit your changes β git commit -m 'Add: some AmazingFeature'
4. π€ Push to the branch β git push origin feature/AmazingFeature
5. π Open a Pull Request
Distributed under the MIT License.
See LICENSE for more information.