ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
Sistema de gestão escolar desenvolvido para facilitar a administração de instituições de ensino. É uma aplicação Next.js fullstack: o mesmo app serve o frontend (interface moderna com Radix UI e Tailwind CSS) e as rotas de API (app/api/**), que persistem os dados em PostgreSQL (Supabase). 🗺️ Mapa do projeto — onde fica cada coisa Todo o código está em apps/web/. No Next.js, a pasta é o endereço: o caminho da pasta vira a URL. Use este guia para achar o que precisa:檢視完整 README ↗
Sistema de gestão escolar desenvolvido para facilitar a administração de instituições de ensino. É uma aplicação Next.js fullstack: o mesmo app serve o frontend (interface moderna com Radix UI e Tailwind CSS) e as rotas de API (app/api/**), que persistem os dados em PostgreSQL (Supabase).
Todo o código está em apps/web/. No Next.js, a pasta é o endereço: o caminho da pasta vira a URL. Use este guia para achar o que precisa:
| Quero mexer em... | Vá para... |
|---|---|
| Uma tela/página que o usuário vê (crianças, equipe, relatórios…) | apps/web/app/dashboard/<nome-da-página>/page.tsx |
| Uma API / regra de dados (salvar, buscar, editar) | apps/web/app/api/<recurso>/route.ts |
| Login, esqueci senha, redefinir senha | apps/web/app/api/auth/ |
| Um componente visual (botão, tabela, diálogo, card) | apps/web/components/ (genéricos em components/ui/) |
| Regras/lógica compartilhada (permissões, validações, tipos) | apps/web/lib/ |
| Código que só roda no servidor (banco, segredos, e-mail, JWT) | apps/web/lib/server/ — nunca importar em componentes "use client" |
| Scripts do banco de dados (schema, RLS) | db/ |
| Segredos e credenciais (só local, não vai pro Git) | CREDENCIAIS.md |
Regra mental rápida: é uma tela? → app/dashboard/. É dados/back-end? → app/api/. As muitas subpastas dentro dessas duas são apenas os endereços de cada tela e de cada API — cada uma tem um lugar fixo.
alunos: Cadastrar e gerenciar alunos.turmas: Criar e gerenciar turmas.presenca: Registrar chamadas e presenças.plano_aula: Planejar aulas por turma.calendario: Visualizar e gerenciar eventos no calendário.comunicacao: Gerenciar avisos e comunicados.notas: Lançar e gerenciar notas.app/api/** (backend server-side no próprio Next.js)pg — ver lib/pg-collection.tsprojeto-anjos/
├── apps/
│ └── web/ # Aplicação Next.js (frontend + API)
│ ├── app/
│ │ ├── api/ # Rotas de API (auth, alunos, turmas, presença, PDI, etc.)
│ │ └── dashboard/ # Páginas do painel (crianças, equipe, calendário, relatórios…)
│ ├── components/
│ │ ├── ui/ # Componentes de UI genéricos (botões, diálogos, tabela…)
│ │ ├── reports/ # Relatórios (ficha, presença, frequência, institucional)
│ │ └── {auth,comunicacao,criancas,pdi}/ # Componentes por domínio
│ ├── lib/ # Código client/compartilhado
│ │ ├── server/ # Código EXCLUSIVO de servidor (nunca vai ao bundle do cliente):
│ │ │ # acesso ao Postgres (pg-collection, server-db),
│ │ │ # auth (server-auth), e-mail (mailer), reset de senha, PDI
│ │ ├── api.ts # Cliente HTTP das rotas /api
│ │ ├── schemas.ts # Schemas de validação (Zod)
│ │ ├── validators.ts # Validações puras (CPF, e-mail) usadas pelos schemas
│ │ ├── permissions.ts # Cargos e permissões
│ │ └── types.ts # Tipos compartilhados
│ ├── hooks/ # Hooks React reutilizáveis
│ └── styles/ # Estilos globais
├── db/ # Scripts SQL do banco (Supabase)
│ ├── supabase-schema.sql # Schema do banco (rodar 1x no Supabase)
│ └── supabase-rls.sql # Políticas de RLS/segurança (rodar após o schema)
├── iniciar.bat # Atalho para instalar dependências e subir o app (Windows)
├── package.json # Configuração do monorepo
└── README.md
Convenção do
lib/: o que estiver emlib/server/só pode ser importado por rotas de API (app/api/**) ou por outro código de servidor — nunca por componentes com"use client". Isso mantém segredos e o acesso ao banco fora do pacote enviado ao navegador.
Instale as dependências
npm install
Crie o banco e aplique o schema
db/supabase-schema.sql (cria as tabelas e o administrador padrão).db/supabase-rls.sql para habilitar a segurança em nível de linha (RLS).Configuração de Variáveis de Ambiente
apps/web, crie/edite o arquivo .env:
# Connection string (URI) do Postgres: Supabase > Project Settings > Database > Connection string
DATABASE_URL="postgresql://postgres:[email protected]:5432/postgres"
# Segredo aleatório forte (mín. 16 caracteres). Ex.: node -e "console.log(require('crypto').randomBytes(48).toString('base64'))"
JWT_SECRET="defina-um-segredo-aleatorio-forte"
# Opcional - e-mail de recuperação de senha (Gmail com Senha de App):
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USER=
MAIL_PASSWORD=
MAIL_FROM="Projeto Anjos Inocentes <[email protected]>"
FRONTEND_URL=http://localhost:3000
O administrador padrão é criado pelo schema: [email protected] / senha admin123. Troque a senha no primeiro login.
npm run dev # Web + API em http://localhost:3000
npm run build
npm run start
Este projeto está sob a licença MIT.