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
Utilizaremos o Visual Studio Code tanto no Backend quanto no Frontend
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
npx expo login
Use as mesmas credenciais da conta criada no site do Expo Go
- Iniciar o app (modo desenvolvimento)
npm run start
Pressione “s” para Expo Go emulador e escanei o QR Code.
- Android: escanei usando o app do Expo Go
- iPhone: escanei usando a câmera do celular
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 Expo Router docs
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