Skip to content

Repository files navigation

Outfit Vision

Outfit Vision é uma app de guarda-roupa digital com frontend em Expo/React Native e backend em FastAPI.

Como abrir o projeto no VS Code

  1. Abre a pasta raiz OutfitVision no VS Code.
  2. Trabalha com dois terminais separados: um para backend e outro para frontend.
  3. Antes de arrancar a app, confirma que tens o MongoDB a correr localmente. Se não estiver disponível, o backend sobe com armazenamento temporário em memória para desenvolvimento.

Requisitos

  • Node.js 20 ou superior
  • Python 3.12+ ou compatível
  • MongoDB local a correr em mongodb://localhost:27017

Backend

O backend fica na pasta backend/.

Ligar ao MongoDB

O backend lê a ligação à base de dados a partir de backend/.env:

MONGO_URL=mongodb://localhost:27017
DB_NAME=outfit_vision

Se estiveres a usar MongoDB local, confirma que o serviço está a correr antes de arrancar a API. Se quiseres usar MongoDB Atlas ou outro servidor remoto, troca MONGO_URL para a tua string de ligação.

Se o MongoDB Compass mostrar Failed to connect to localhost:27017, normalmente quer dizer que o servidor MongoDB não está instalado ou não está a correr. No Windows, confirma se existe o serviço MongoDB e se está Running. Se preferires não usar MongoDB local, podes criar uma base de dados no MongoDB Atlas e colar a string de ligação no MONGO_URL.

As imagens não são guardadas como ficheiros no disco. Cada peça fica com o campo image_base64 dentro do documento da coleção items na base de dados.

Criar a base de dados

O projeto usa a base de dados outfit_vision e cria as coleções users e items automaticamente quando guardas o primeiro utilizador ou a primeira peça. Se quiseres criar tudo manualmente, faz assim:

  1. Abre o MongoDB Compass ou o mongosh.
  2. Liga-te ao servidor mongodb://localhost:27017.
  3. Cria a base de dados outfit_vision.
  4. Cria as coleções users e items dentro dessa base de dados.

No mongosh, os comandos são estes:

use outfit_vision
db.createCollection("users")
db.createCollection("items")

Se preferires, também podes simplesmente arrancar o backend e fazer o primeiro registo na app; a base de dados e as coleções aparecem automaticamente com a primeira gravação.

  1. Cria e ativa um ambiente virtual, se ainda não existir.

    Set-Location backend
    python -m venv .venv
    Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned
    .\.venv\Scripts\Activate.ps1
  2. Instala as dependências.

    pip install -r requirements.txt
  3. Confirma que o ficheiro backend/.env existe e tem, no mínimo, estas variáveis:

    MONGO_URL=mongodb://localhost:27017
    DB_NAME=outfit_vision
    JWT_SECRET=dev-secret-key-change-in-production
    JWT_ALGORITHM=HS256
    API_HOST=0.0.0.0
    API_PORT=8000
    GEMINI_API_KEY=
    GEMINI_MODEL=gemini-2.5-flash
  4. Arranca a API.

    uvicorn server:app --reload --host 0.0.0.0 --port 8000
  5. Abre http://localhost:8000/api/ para confirmar que a API responde com status: ok.

Frontend

O frontend fica na pasta frontend/.

  1. Instala as dependências.

    Set-Location frontend
    npm install

    Podes usar yarn install se preferires seguir o packageManager definido no projeto.

  2. Arranca a app.

    npm start
  3. Se precisares de abrir em alvos específicos, usa:

    npm run android
    npm run ios
    npm run web

Testes e validação

  • O frontend está a arrancar com npm start e o lint passa com um aviso apenas em frontend/app/(tabs)/home.tsx.
  • O backend tenta usar MongoDB local primeiro; se não estiver disponível, entra em modo temporário em memória para desenvolvimento e grava os dados em backend/.devdata/fallback_db.json.
  • A IA usa diretamente a API do Gemini quando GEMINI_API_KEY está configurada; sem chave, o backend volta para uma análise heurística.
  • O teste em backend/tests/test_outfit_vision.py aponta para um endpoint remoto; se esse ambiente não estiver disponível, o teste devolve 404.

Estrutura

  • backend/ - API FastAPI, autenticação, CRUD de peças e sugestões de outfits.
  • frontend/ - App Expo com navegação por tabs.
  • design_guidelines.json - guia visual e de comportamento da interface.

Notas úteis

  • Se o backend falhar logo ao arrancar, confirma primeiro MONGO_URL e DB_NAME.
  • Se a app mobile não encontrar a API, verifica o endereço configurado em frontend/src/lib/api.ts.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages