Sistema de gerenciamento escolar desenvolvido com React, TypeScript e Supabase.
- React
- TypeScript
- Tailwind CSS
- Supabase
- Vite
- React Router DOM
- Zustand
- React Hook Form
- Zod
- Node.js 20.x ou superior
- npm 10.x ou superior
- Clone o repositório:
git clone https://github.com/seu-usuario/diario-escolar-digital.git
cd diario-escolar-digital
- Instale as dependências:
npm install
- Configure as variáveis de ambiente:
cp .env.example .env
Edite o arquivo .env
com suas credenciais do Supabase.
- Inicie o servidor de desenvolvimento:
npm run dev
- Crie uma conta no Supabase
- Crie um novo projeto
- Vá para Project Settings > API
- Copie a URL do projeto e a anon key
- Configure as variáveis de ambiente:
VITE_SUPABASE_URL
VITE_SUPABASE_ANON_KEY
- Conecte seu repositório ao Netlify
- Configure as variáveis de ambiente no Netlify:
- Vá para Site Settings > Environment Variables
- Adicione
VITE_SUPABASE_URL
eVITE_SUPABASE_ANON_KEY
- Configure as políticas de segurança no Supabase:
- Habilite Row Level Security (RLS)
- Configure as políticas de acesso apropriadas
- Verifique as configurações de CORS
-
Row Level Security (RLS)
- Todas as tabelas devem ter RLS habilitado
- Configure políticas específicas para cada tabela
- Teste as políticas em ambiente de desenvolvimento
-
CORS Settings no Supabase
- Adicione o domínio do Netlify aos allowed origins
- Use
*
apenas em desenvolvimento - Em produção, especifique os domínios exatos
-
Variáveis de Ambiente
- Nunca comite o arquivo
.env
- Use diferentes variáveis para desenvolvimento e produção
- Mantenha as chaves de API seguras
- Nunca comite o arquivo
-
Headers de Segurança
- Configurados no
netlify.toml
- Incluem proteções contra XSS, clickjacking, etc.
- Content Security Policy (CSP) configurada
- Configurados no
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.