Home | Escopo | Processo | Design/Mockups | Configuração | Arquitetura | Gerência | BD | Qualidade | Frontend | Backend |
---|
Arquitetura
Esta página centraliza informações sobre o arquitetura do projeto e a infraestrutura da AWS utilizada para execução do projeto.
Sumário
Diagrama de deploy
Ambientes utilizados
TODO
Arquitetura geral da aplicação
Backend
Visão Geral
Backend desenvolvido em Java Spring Boot para gerenciamento de End-points. Segue uma arquitetura limpa com separação clara de camadas.
Arquitetura
Estrutura de Pastas
Como Executar
Pré-requisitos
- Java 17+
- Maven
- Docker (opcional)
Comandos Úteis
Executar localmente:
cd pointtils
./mvnw spring-boot:run
Buildar e executar com Docker:
docker-compose up --build
Executar testes:
./mvnw test
Gerar documentação Swagger: Documentação disponível no seguinte endereço:
https://backend-v5gs.onrender.com/swagger-ui/index.html
Frontend
Aplicativo móvel em React Native + Expo com theming (light/dark), roteamento por arquivos (expo-router) e estilização com NativeWind/Tailwind.
- Plataforma: Android
- Linguagem: TypeScript
- Navegação: React Navigation + Expo Router
- UI: NativeWind + Gluestack UI overlay/toast + Lucid icons
Requisitos
- Node.js LTS ≥ 22.17.0
- npm ≥ 10
- dispositivo Android/iOS
- Conta no Expo: https://expo.dev
Observação: A CI usa Node 20, mas o desenvolvimento local recomenda Node 22 LTS.
Primeiros passos
- Instalar dependencias
npm install
- Instalar EAS CLI
npm install --global eas-cli
- Autenticar no Expo/EAS
eas login
eas whoami
- Iniciar o app (modo desenvolvimento)
npm run start
- Pressione “a” para Android (emulador) ou escanei o QR Code no Expo Go.
Scripts úteis
- Lint:
npm run lint
- Formatação (checar):
npm run format:check
- Formatação (corrigir):
npm run format:write
- Verificação de dependencias:
depcheck
- Diagnóstico:
npx expo-doctor
- Type-check:
npx tsc --noEmit
Estrutura de Pastas
UI e Theming
- Tema global via contexts/ThemeProvider.tsx que integra:
- React Navigation ThemeProvider
- GluestackUIProvider (NativeWind vars)
- Cores centralizadas em constants/Colors.ts
- Tailwind estendido com variáveis (CSS vars) em
Navegação
O roteamento é baseado em arquivos (expo-router), mais informações sobre o funcionamento em https://docs.expo.dev/router/basics/core-concepts/#4-root-_layouttsx-replaces-appjsxtsx
Padrões de código
- TypeScript strict (tsconfig.json)
- ESLint + Prettier (eslint.config.js, .prettierrc)
- Strings com aspas simples
- Componentes funcionais e hooks idiomáticos
- Evitar estilos inline (usar Tailwind/NativeWind)
CI/CD
- PR Checks: lint, type-check, prebuild Android/iOS, depcheck, audit, expo-doctor
- Workflow: .github/workflows/pr_checks.yml
- Nightly Build Android com EAS:
- Workflow: .github/workflows/nightly_build.yml
- Publica release no GitHub e anexa APK quando disponível