Casa em Dia: Aplicativo Mobile para Gestão Doméstica Completa
Conheça o Casa em Dia, um aplicativo React Native que simplifica a organização de tarefas, finanças e atividades familiares com interface intuitiva e colaborativa.
Casa em Dia: Aplicativo Mobile para Gestão Doméstica Completa
Gerenciar uma casa envolve múltiplas responsabilidades: tarefas domésticas, controle financeiro, lista de compras, estoque e coordenação entre membros da família. Pensando nisso, desenvolvi o Casa em Dia, um aplicativo mobile completo que centraliza todas essas necessidades em uma única plataforma intuitiva e colaborativa.
O Conceito
Casa em Dia é um aplicativo React Native projetado para simplificar a organização doméstica através de uma abordagem colaborativa. Cada membro da família pode participar ativamente da gestão da casa, desde o cumprimento de tarefas até o controle orçamentário e manutenção do estoque.
Stack Tecnológico
O projeto foi desenvolvido com tecnologias modernas e robustas:
Frontend
- React Native 0.79.5 com Expo ~53.0.20 - Framework multiplataforma
- TypeScript ~5.8.3 - Tipagem estática para maior confiabilidade
- Expo Router ~5.1.4 - Sistema de roteamento tipado
- React Navigation ~7.1.6 - Navegação fluida entre telas
- React Native Reanimated ~3.17.4 - Animações suaves e performáticas
Backend
- Supabase - Plataforma completa com:
- Autenticação segura
- Banco de dados PostgreSQL
- APIs REST automáticas
- Row Level Security (RLS) para proteção de dados
Armazenamento e UI
- AsyncStorage - Preferências locais (tema, configurações)
- Expo Vector Icons - Biblioteca completa de ícones
- React Native Modal - Modais nativos
- Expo Linear Gradient - Gradientes visuais elegantes
Funcionalidades Principais
🔐 Autenticação Completa
Sistema robusto integrado com Supabase Auth oferecendo:
- Login e registro seguros
- Recuperação de senha
- Logout com limpeza de sessão
- Proteção de rotas privadas
✅ Gerenciamento de Tarefas
Sistema gamificado de tarefas domésticas:
- Criação e atribuição de tarefas para membros específicos
- Sistema de pontos para incentivar participação
- Definição de prazos e prioridades
- Marcação de conclusão com feedback visual
- Acompanhamento de progresso individual
📅 Agenda Integrada
Calendário interativo que centraliza todos os eventos:
- Visualização mensal de atividades
- Tipos de eventos: tarefas, despesas, compras e reuniões
- Notificações de eventos próximos
- Interface intuitiva com códigos de cores
💬 Chat Familiar
Comunicação interna para coordenação:
- Mensagens entre membros da família
- Sistema de mensagens temporárias (24 horas)
- Reduz poluição de conversas antigas
- Ideal para lembretes e coordenação rápida
💰 Controle Financeiro
Gestão completa do orçamento doméstico:
- Registro detalhado de despesas
- Definição de orçamento mensal
- Acompanhamento de saldo disponível
- Identificação de quem está gastando
- Calculadora integrada para cálculos rápidos
📦 Gestão de Estoque
Sistema inteligente de controle de itens:
- Cadastro por categorias (alimentos, limpeza, higiene, outros)
- Alertas automáticos de reposição
- Controle de quantidades mínimas
- Monitoramento de datas de validade
- Organização por localização na casa
- Campo de observações para detalhes
🛒 Lista de Compras
Organização prática para idas ao mercado:
- Criação e edição de itens
- Marcação de itens comprados
- Sincronização em tempo real
- Integração com o estoque
👥 Membros da Família
Gestão colaborativa:
- Adicionar e remover membros
- Atribuição de responsabilidades
- Acompanhamento de performance
- Sistema de pontos por membro
⚙️ Configurações Personalizadas
Controle completo do aplicativo:
- Ajuste de orçamento mensal
- Gerenciamento de membros
- Alternância entre tema claro e escuro
- Preferências salvas localmente
Arquitetura do Banco de Dados
O aplicativo utiliza 8 tabelas principais no Supabase, cada uma com propósito específico:
1. Balances (Saldos)
Armazena saldo e orçamento de cada usuário:
- user_id: Referência ao usuário
- total_balance: Saldo total disponível
- monthly_budget: Orçamento mensal definido
2. Expenses (Despesas)
Registra todas as despesas:
- amount: Valor da despesa
- description: Descrição detalhada
- payer: Responsável pelo pagamento
- created_at: Data da transação
3. Family Members (Membros)
Gerencia os membros da família:
- name: Nome do membro
- user_id: Proprietário da família
- created_at: Data de adição
4. Messages (Mensagens)
Sistema de chat interno:
- content: Conteúdo da mensagem
- family_member_id: Membro que enviou
- created_at: Timestamp do envio
5. Tasks (Tarefas)
Controla tarefas domésticas:
- title: Descrição da tarefa
- done: Status de conclusão
- assignee: Responsável
- points: Pontos ganhos
- due_date: Prazo de conclusão
6. Events (Eventos)
Centraliza eventos do calendário:
- title: Nome do evento
- event_time: Data/hora
- type: task | expense | shopping | meeting
- description: Detalhes adicionais
7. Shopping List (Lista de Compras)
Organiza itens para compras:
- title: Nome do item
- done: Status de compra
- user_id: Criador do item
8. Inventory (Estoque)
Monitora itens domésticos:
- name: Nome do item
- category: alimentos | limpeza | higiene | outros
- current_quantity: Quantidade atual
- minimum_quantity: Alerta de reposição
- expiration_date: Data de validade
- location: Local de armazenamento
- needs_restock: Calculado automaticamente
Segurança: Row Level Security (RLS)
Implementei políticas de segurança em todas as tabelas para garantir que:
- Cada usuário acesse apenas seus próprios dados
- Não haja vazamento de informações entre famílias
- Autenticação seja respeitada em todas as operações
ALTER TABLE public.nome_da_tabela ENABLE ROW LEVEL SECURITY;
Como Instalar e Usar
Pré-requisitos
- Node.js versão 18 ou superior
- Expo CLI instalado globalmente
- Projeto configurado no Supabase
- Yarn ou npm
Instalação
# Clone o repositório
git clone https://github.com/joaomjbraga/casaemdia.git
# Entre no diretório
cd casaemdia
# Instale as dependências
npm install
# ou
yarn install
Configuração
Crie um arquivo .env na raiz:
EXPO_PUBLIC_SUPABASE_URL=https://seu-projeto.supabase.co
EXPO_PUBLIC_SUPABASE_ANON_KEY=sua-chave-anonima-aqui
Importante: Nunca commite o arquivo .env no controle de versão!
Executar
npm start
# ou
expo start
Use o Expo Go no celular ou um emulador para visualizar.
Fluxo de Uso Recomendado
-
Primeiro Acesso:
- Registre-se ou faça login
- Configure seu orçamento mensal
- Adicione membros da família
-
Gestão de Tarefas:
- Crie tarefas na tela principal
- Atribua responsáveis
- Defina pontos e prazos
- Acompanhe o progresso
-
Controle Financeiro:
- Registre despesas conforme acontecem
- Monitore saldo vs orçamento
- Use a calculadora para cálculos rápidos
- Veja quem está gastando mais
-
Gestão de Estoque:
- Cadastre itens por categoria
- Configure alertas de reposição
- Monitore validades
- Organize por localização
-
Comunicação:
- Use o chat para coordenar
- Envie lembretes rápidos
- Comunique mudanças de planos
Contribuindo
Contribuições são muito bem-vindas! Para contribuir:
- Fork o repositório
- Crie uma branch:
git checkout -b feature/nova-funcionalidade - Commit:
git commit -m "feat: adiciona funcionalidade X" - Push:
git push origin feature/nova-funcionalidade - Abra um Pull Request
Convenção de Commits
feat:nova funcionalidadefix:correção de bugdocs:alteração na documentaçãostyle:formatação de códigorefactor:refatoraçãotest:adição de testes
Roadmap Futuro
Estou trabalhando em melhorias como:
- 📊 Dashboard com estatísticas e gráficos
- 🔔 Sistema de notificações push
- 📸 Upload de fotos de notas fiscais
- 📈 Relatórios financeiros mensais
- 🏆 Sistema de conquistas e gamificação
- 🌐 Sincronização com calendários externos
- 🎨 Temas personalizados
- 🗣️ Suporte a múltiplos idiomas
Tecnologias e Decisões de Design
Por que React Native?
Escolhi React Native para ter uma única base de código para iOS e Android, reduzindo tempo de desenvolvimento e facilitando manutenção.
Por que Supabase?
O Supabase oferece uma solução completa com autenticação, banco de dados e APIs REST automatizadas, permitindo foco no desenvolvimento do aplicativo.
Por que TypeScript?
A tipagem estática previne bugs em tempo de desenvolvimento e melhora significativamente a experiência de desenvolvimento com autocomplete e refatoração segura.
Conclusão
O Casa em Dia nasceu da necessidade real de organizar melhor a vida doméstica de forma colaborativa. O aplicativo centraliza todas as responsabilidades da casa em uma plataforma intuitiva, tornando a gestão familiar mais eficiente e menos estressante.
Com arquitetura moderna, foco em segurança e interface pensada para toda a família, o Casa em Dia é uma solução completa para quem busca mais organização no dia a dia.
Links
- 🔗 Repositório no GitHub
- 📱 Documentação completa
- ⭐ Dê uma estrela se o projeto foi útil!
Nota: Este projeto foi idealizado e inteiramente desenvolvido por João M J Braga, desde a concepção da ideia até a implementação completa de todas as funcionalidades. Licenciado sob MIT License.