Gestão Familiar é um sistema moderno de gerenciamento pessoal e familiar, com foco em tarefas do dia a dia, controle financeiro e listas organizadas. A aplicação é desenvolvida com React + TypeScript + Vite, usando Supabase como backend (auth + banco de dados PostgreSQL).
- ✅ Autenticação com Supabase
- 📊 Dashboard unificada
- 🗓️ Agenda de tarefas e compromissos
- 📁 Categorias personalizadas
- 🛒 Lista de compras
- 💸 Gestão de despesas e receitas
- 🤖 Assistente Butler AI
git clone https://github.com/mthalmeida/gestao-familiar.git
cd gestao-familiarnpm installnpm run devnpm run buildAcesse https://supabase.com e crie um projeto.
Crie um arquivo .env na raiz:
VITE_SUPABASE_URL=sua_url_do_supabase
VITE_SUPABASE_ANON_KEY=sua_chave_anonima_do_supabaseCopie e cole os scripts no SQL Editor do Supabase:
CREATE TABLE users (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
email TEXT UNIQUE NOT NULL,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);CREATE TABLE categories (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
name TEXT NOT NULL,
color TEXT,
user_id UUID REFERENCES users(id),
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);CREATE TABLE transactions (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
description TEXT NOT NULL,
amount DECIMAL(10,2) NOT NULL,
type TEXT NOT NULL,
category_id UUID REFERENCES categories(id),
user_id UUID REFERENCES users(id),
date DATE NOT NULL,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);CREATE TABLE shopping_list (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
name TEXT NOT NULL,
quantity INTEGER DEFAULT 1,
price DECIMAL(10,2),
is_purchased BOOLEAN DEFAULT FALSE,
user_id UUID REFERENCES users(id),
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);CREATE TABLE agenda (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
title TEXT NOT NULL,
description TEXT,
date DATE NOT NULL,
time TIME,
is_completed BOOLEAN DEFAULT FALSE,
user_id UUID REFERENCES users(id),
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);src/
├── components/ # Componentes reutilizáveis
├── contexts/ # Contextos globais (Auth, Loading)
├── database/ # Supabase config
├── hooks/ # Custom hooks
├── pages/ # Páginas principais
├── services/ # Chamadas à API e lógica de negócio
├── stores/ # Zustand stores
├── styles/ # Estilo global
├── types/ # Tipos e interfaces TS
└── utils/ # Funções utilitárias
// eslint.config.ts
export default tseslint.config({
extends: [
...tseslint.configs.recommendedTypeChecked,
...tseslint.configs.strictTypeChecked,
...tseslint.configs.stylisticTypeChecked,
],
languageOptions: {
parserOptions: {
project: ['./tsconfig.node.json', './tsconfig.app.json'],
tsconfigRootDir: import.meta.dirname,
},
},
});- Faça um fork do projeto
- Crie uma branch:
git checkout -b feature/minha-feature - Commit suas mudanças:
git commit -m 'feat: minha feature' - Envie para o GitHub:
git push origin feature/minha-feature - Abra um Pull Request
Este projeto está licenciado sob os termos da licença MIT. Veja mais detalhes no arquivo LICENSE.
Desenvolvido com 💙 por Matheus Almeida