Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

Sistema completo de gestão familiar desenvolvido em React + TypeScript. Gerencie finanças, agenda, lista de compras e categorias em uma interface moderna. Inclui autenticação segura, PWA e banco de dados Supabase.

Notifications You must be signed in to change notification settings

mthalmeida/family-

Repository files navigation

Gestão Familiar

Demo.gif

📘 Sobre o Projeto

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).


🚀 Funcionalidades

  • 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

⚙️ Tecnologias e Ferramentas

React TypeScript Vite Supabase Zustand Material UI


🏁 Instalação e Execução

🔁 Clonar o Repositório

git clone https://github.com/mthalmeida/gestao-familiar.git
cd gestao-familiar

📦 Instalar dependências

npm install

▶️ Executar localmente

npm run dev

🏗️ Gerar build de produção

npm run build

🔐 Configuração do Supabase

1. Crie uma conta

Acesse https://supabase.com e crie um projeto.

2. Variáveis de ambiente

Crie um arquivo .env na raiz:

VITE_SUPABASE_URL=sua_url_do_supabase
VITE_SUPABASE_ANON_KEY=sua_chave_anonima_do_supabase

3. Estrutura do Banco de Dados

Copie e cole os scripts no SQL Editor do Supabase:

users

CREATE TABLE users (
  id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
  email TEXT UNIQUE NOT NULL,
  created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);

categories

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()
);

transactions

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()
);

shopping_list

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()
);

agenda

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()
);

🧠 Estrutura do Projeto

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 (recomendado para produção)

// 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,
    },
  },
});

🤝 Contribuindo

  1. Faça um fork do projeto
  2. Crie uma branch: git checkout -b feature/minha-feature
  3. Commit suas mudanças: git commit -m 'feat: minha feature'
  4. Envie para o GitHub: git push origin feature/minha-feature
  5. Abra um Pull Request

📄 Licença

Este projeto está licenciado sob os termos da licença MIT. Veja mais detalhes no arquivo LICENSE.


Desenvolvido com 💙 por Matheus Almeida

About

Sistema completo de gestão familiar desenvolvido em React + TypeScript. Gerencie finanças, agenda, lista de compras e categorias em uma interface moderna. Inclui autenticação segura, PWA e banco de dados Supabase.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published