Mantenha o controle total sobre seus gastos recorrentes e nunca mais seja pego de surpresa por renovações automáticas.
O Sentinel é um aplicativo móvel moderno projetado para simplificar e centralizar o gerenciamento de assinaturas, serviços de streaming, licenças de software e despesas recorrentes.
Com uma interface intuitiva e design refinado, o Sentinel calcula seus custos mensais consolidados, prevê datas de cobrança e fornece relatórios detalhados para ajudar você a economizar e tomar decisões financeiras mais inteligentes.
- 📊 Dashboard Financeiro Consolidado: Visão geral de gastos acumulados no mês, saldo e resumo de assinaturas ativas.
- 🔔 Próximas Renovações: Carrossel visual com as próximas cobranças para evitar cobranças indesejadas.
- ➕ Cadastro Ágil de Assinaturas:
- Detecção automática de logotipos oficiais via CDN (Simple Icons).
- Ícones inteligentes de fallback por categoria (Lucide Icons).
- Ciclos de cobrança flexíveis (mensal, semanal, anual) com conversão automática de custo mensal.
- Validação robusta de formulários com Zod.
- 🔍 Busca e Filtros Avançados: Localize rapidamente assinaturas por nome, categoria ou status.
- ⚙️ Gestão de Ciclo de Vida: Pause, reative ou cancele assinaturas diretamente pelo app.
- 📈 Insights e Análises: Distribuição percentual de despesas por categoria e tendências de gastos.
- 🔐 Autenticação Segura com Clerk:
- Login social (OAuth) e login tradicional por e-mail/senha.
- Armazenamento seguro de tokens no dispositivo via
expo-secure-store.
- 🎨 Design System & Tipografia Personalizada: Interface com a fonte Plus Jakarta Sans, suporte a NativeWind v5 e experiência otimizada para iOS e Android (New Architecture e Edge-to-Edge).
| Tecnologia | Finalidade |
|---|---|
| Expo (SDK 54) | Framework e ecossistema universal para React Native |
| React Native (0.81.5) | Base do aplicativo móvel com New Architecture habilitada |
| Expo Router (v6) | Navegação e roteamento file-based com rotas tipadas |
| NativeWind (v5) / Tailwind CSS (v4) | Estilização utilitária e design system declarativo |
Clerk (@clerk/expo) |
Autenticação completa de usuários, sessões e OAuth |
| TypeScript (v5.9) | Tipagem estática e segurança em tempo de desenvolvimento |
| Zod | Validação de esquemas de dados e formulários |
| Dayjs | Manipulação, formatação e cálculos de datas e renovações |
| React Native Reanimated (v4) | Animações fluidas a 60/120 FPS |
| Husky & Commitlint | Padronização de commits (Conventional Commits) e hooks git |
sentinel/
├── app/ # Rotas e páginas (Expo Router)
│ ├── (auth)/ # Fluxos de autenticação (sign-in, sign-up)
│ ├── (tabs)/ # Navegação principal por abas (Home, Subscriptions, Insights, Settings)
│ ├── subscriptions/ # Rotas dinâmicas de assinaturas ([id].tsx)
│ ├── onboarding.tsx # Tela de apresentação inicial
│ └── _layout.tsx # Layout raiz, providers (Clerk, Subscription, Fontes)
├── assets/ # Imagens, ícones de marcas e fontes (Plus Jakarta Sans)
├── components/ # Componentes reutilizáveis de UI e modais
├── constants/ # Cores do tema, dados estáticos e mapeamentos de ícones
├── context/ # Contextos React (ex: SubscriptionContext)
├── hooks/ # Hooks customizados (ex: useAuthFlow)
├── lib/ # Utilitários de formatação e helpers
├── schemas/ # Schemas de validação Zod
├── types/ # Definições de tipos TypeScript
└── package.json # Dependências e scripts do projeto
- Node.js (versão 18 ou superior)
- pnpm (recomendado) ou npm / yarn
- Aplicativo Expo Go em seu celular físico ou emulador configurado (Android Studio / Xcode)
git clone https://github.com/joaooncode/Sentinel.git
cd Sentinelpnpm install
# ou
npm installCrie um arquivo .env na raiz do projeto com sua chave pública do Clerk:
EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_seu_token_aqui💡 Nota: Obtenha sua chave publicável criando uma conta gratuita no painel do Clerk Dashboard.
# Iniciar o servidor de desenvolvimento Expo
pnpm start
# Ou rodar diretamente em uma plataforma específica:
pnpm android # Abrir no Android Emulator / dispositivo conectado
pnpm ios # Abrir no iOS Simulator (macOS)
pnpm web # Abrir versão Web| Comando | Descrição |
|---|---|
pnpm start |
Inicia o servidor Metro Bundler do Expo |
pnpm android |
Executa o aplicativo no Android |
pnpm ios |
Executa o aplicativo no iOS Simulator |
pnpm web |
Inicia a versão web no navegador |
pnpm lint |
Executa o linter para verificar problemas de código |
pnpm lint:fix |
Corrige problemas automáticos de formatação e lint |
O projeto segue as convenções de commits semânticos (Conventional Commits):
feat:Nova funcionalidadefix:Correção de bugrefactor:Refatoração de código sem alterar o comportamentoperf:Melhorias de performancedocs:Alterações na documentaçãostyle:Ajustes visuais ou de formataçãotest:Inclusão ou ajuste de testeschore:Atualizações de build, dependências ou configurações
Os commits são validados automaticamente no pré-commit via Husky e Commitlint.
Este projeto é desenvolvido para fins educacionais e de gestão pessoal. Consulte o repositório para detalhes sobre direitos e licenciamento.