Skip to content

maxjuniorbr/trofinho

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

606 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Trofinho

App mobile de tarefas e recompensas para famílias. React Native + Expo + Supabase.

Stack

  • React Native 0.83 / Expo SDK 55 / Expo Router
  • TypeScript strict
  • Supabase (auth, Postgres, storage, edge functions, realtime)
  • Resend (e-mails transacionais via SMTP)
  • React Query v5
  • Sentry (error tracking)
  • SonarCloud (code quality)

Setup

npm install
cp .env.example .env.local   # preencha com suas credenciais
npm run db:push               # aplica migrations no Supabase
npm run db:types              # regenera tipos do banco

Dev

npm start          # dev server (Metro)
npm run android    # primeira build nativa + Metro
npm run tunnel     # tunnel para dispositivo físico

Qualidade

npm run lint          # ESLint
npm run typecheck     # TypeScript
npm test              # Vitest (unit + route tests)
npm run test:coverage # Vitest com relatório de cobertura

Build

npm run build    # EAS Build (preview, Android)

Banco de dados

npm run db:push    # aplica migrations pendentes no Supabase remoto
npm run db:types   # regenera src/types/database.types.ts
npm run db:diff    # mostra diff entre local e remoto
npm run db:seed    # executa seed de dados de teste

E2E (Emulador)

Requer emulador Android com o app no modo dev-client e Metro rodando. Credenciais de teste em .env.local (veja .env.example).

export $(grep -v '^#' .env.local | xargs)

npm run test:e2e                     # login + logout + validações
npm run test:e2e:login               # só login
npm run test:e2e:logout              # logout (com login automático)
npm run test:e2e:create-account      # cadastro + criação de família
npm run test:e2e:login-wrong-password
npm run test:e2e:login-empty-fields

Veja .maestro/README.md para documentação completa dos flows.

Arquitetura

app/           → Expo Router screens/layouts (sem lógica de negócio)
lib/           → Lógica de negócio, acesso a dados, SDKs (sem React hooks)
src/components → UI reutilizável
src/constants  → Design tokens (cores, espaçamento, tipografia)
src/hooks      → React Query hooks (queries/mutations)
src/context    → Providers (tema, impersonação, query client)
src/types      → Tipos TypeScript (database.types.ts gerado, env.d.ts)
supabase/      → Migrations, edge functions, seed
test/          → Helpers e route tests

Notas

  • Testes rodam com timezone America/Sao_Paulo (ver vitest.config.ts).
  • SonarCloud config consolidada em .sonarcloud.properties.
  • Resend configurado como SMTP do Supabase Auth (confirmação de e-mail, recuperação de senha, notificações de senha alterada). Domínio customizado pendente — atualmente envia via onboarding@resend.dev.
  • React Compiler habilitado experimentalmente em app.json.

About

Aplicativo mobile de educacao financeira familiar com tarefas, cofrinho e recompensas para criancas, construido com Expo e Supabase.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors