Skip to content

Moblie application for managing wardrobe and outfits.

Notifications You must be signed in to change notification settings

ironnicko/outfits.ai

Repository files navigation

πŸ‘— outfits.ai

Overview

outfits.ai is a sophisticated mobile application designed to revolutionize wardrobe management. Easily catalog, organize, and style your clothing collection with advanced digital tools.

Check out the video demonstration below:

Video Title

🌟 Features

  • Wardrobe Digitization: Catalog entire clothing collection
  • Outfit Composition: Create and save outfit combinations
  • Smart Recommendations: AI-powered outfit suggestions
  • Cross-Device Sync: Seamless experience across platforms
  • Inventory Tracking: Monitor clothing items and usage
  • [TO DO] Auto-Cart Addition: Add your shopping cart items into the app without having to upload

πŸš€ Technologies

Frontend: React Native Typescript Zustand Vite

Backend Go Fiber PostgreSQL FastAPI Python

Infrastructure AWS Docker Terraform Ansible

πŸ”§ Installation

Prerequisites

  • Node.js (v16+)
  • Go (v1.18+)
  • Docker
  • AWS CLI
  • Python 3.9.21
  • Pipenv
  • Yarn
  • Terraform
  • Ansible

Make sure to configure ".env" and "variables.tf"

Clone repository

git clone https://github.com/ironnicko/outfits.ai

Install App dependencies

cd ./App
yarn install

Install backend dependencies

cd ./Go-Backend
go mod download

cd ../Segment
pipenv --python 3.9.21
pipenv shell
pipenv sync

Start AWS

Make sure to set up your ~/.aws/credentials file with your AWS SECRET KEY and AWS ACCESS KEY ID.

cd ./Terraform
terraform init
terraform apply --auto-approve

Build and run entire stack

docker-compose up --build

To run locally:

  • Backend:

    cd ./Go-Backend
    go run .
    

    Make sure to set VITE_PUBLIC_IP=http://localhost in .env

  • Segment:

    cd ./Segment
    python3 main.py
    
  • App:

    cd ./App
    yarn install
    yarn run start
    

🌐 Architecture

outfits.ai/
β”‚
β”œβ”€β”€ App/ # React-Native TypeScript Application
β”‚
β”œβ”€β”€ Go-Backend/ # Golang Fiber Backend
β”‚
β”œβ”€β”€ Terraform/ # Terraform & Ansible Configs
β”‚ β”œβ”€β”€ terraform/
β”‚ └── ansible/
β”‚
β”œβ”€β”€ Segment/ # Python FastAPI Service
 β”œβ”€β”€ Model/U2Net
 β”œβ”€β”€ Model/SAM(Segment Anything Model)
 β”œβ”€β”€ Model/MiniLM-L6-v2(Embedding Model)
 β”œβ”€β”€ Model/GPT-4o-mini(Recommendation)
 └── s3_upload

πŸ”’ Environment Variables

.env:

DB_USERNAME=
DB_PORT=
DB_NAME=
DB_PASSWORD=
DB_HOST=
PORT=8000
JWT_SECRET=<JWT secret>
TIMEZONE=UTC
BUCKET_PREFIX=<S3 bucket prefix>
VITE_PORT=3000
BUCKET_NAME=<bucket name>
MODEL=sam
SEGMENT_URL=http://segment
REM_HOST=rembg
URL=<supabase project URL>
ANON=<supabase API KEY>

VITE_PUBLIC_IP will be necessary when running locally

variables.tf:

variable "ssh_user" {
  type        = string
  description = "SSH user"
  default     = "ec2-user"
}

variable "private_key_path" {
  type        = string
  description = "Private Key Path"
  default     = "<Path to AWS Key Pair>"
}

variable "bucket_name"{
  type = string
  description = "S3 Bucket Name"
  default = "<Your AWS S3 Bucket's Name>"
}

About

Moblie application for managing wardrobe and outfits.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •