ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
공·사립 학교용 관리 시스템으로 성적·학생·보고서·행정 절차를 하나의 플랫폼에서 자동화합니다
Sistema de gestión escolar para colegios públicos y privados. Automatiza notas, alumnos, reportes y procesos administrativos en una sola plataforma.
교육TypeScript · PLpgSQLGitHub @xpestana온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Sistema de gestión escolar para colegios de Venezuela. Cubre el ciclo completo de un colegio en una sola plataforma: familias y estudiantes, inscripciones, docentes y asignaciones académicas, notas y boletas, asistencias por QR, aula virtual, cobranza y nómina. La aplicación es multi-colegio (multi-tenant): cada colegio opera sobre sus propios datos, con años escolares, formularios, formatos de impresión y perfiles de permisos independientes.README 전문 보기 ↗
Sistema de gestión escolar para colegios de Venezuela. Cubre el ciclo completo de un colegio en una sola plataforma: familias y estudiantes, inscripciones, docentes y asignaciones académicas, notas y boletas, asistencias por QR, aula virtual, cobranza y nómina.
La aplicación es multi-colegio (multi-tenant): cada colegio opera sobre sus propios datos, con años escolares, formularios, formatos de impresión y perfiles de permisos independientes.
En producción. El frontend se despliega en Cloudflare Pages con cada push a main;
la base de datos y la lógica privilegiada corren sobre Supabase. También existe un
stack completo autoalojado con Docker Compose para desarrollo y respaldos.
| Capa | Tecnología |
|---|---|
| Frontend | React 18, TypeScript, Vite (SWC), React Router 6 |
| UI | Tailwind CSS, shadcn/ui (Radix), lucide-react |
| Datos | TanStack Query, Supabase JS |
| Backend | Supabase (PostgreSQL + RLS, Auth, Storage) y Edge Functions en Deno |
| Documentos | jsPDF, docx, xlsx-js-style, html2canvas, qrcode |
| Pruebas | Vitest, Testing Library |
| Infra | Docker + Nginx, GitHub Actions, Cloudflare Pages, AWS S3 |
| Rol | Alcance |
|---|---|
admin | Administración de la plataforma: alta de colegios, usuarios globales, importaciones. |
school | Personal del colegio. Puede ser propietario (acceso total) o sub-usuario con perfiles de permisos granulares. |
teacher | Docente: sus materias asignadas, carga de notas, asistencias y aula virtual. |
representative | Representante: su familia, sus estudiantes, estado de cuenta y pagos. |
git clone [email protected]:xpestana/satescolar.git
cd satescolar
npm install
cp .env.example .env
npm run dev
La aplicación queda en http://localhost:8080.
Para apuntar a Supabase basta con tres variables en .env:
VITE_SUPABASE_URL=
VITE_SUPABASE_PUBLISHABLE_KEY=
VITE_SUPABASE_PROJECT_ID=
El resto de variables de .env.example (PostgreSQL, JWT, SMTP, S3, Firecrawl) solo
hacen falta para el stack autoalojado.
docker-compose.yml levanta PostgreSQL, PostgREST, Auth, Storage, Edge Functions,
el gateway, Studio y el frontend compilado. Las migraciones se aplican solas al
arrancar mediante un runner que lleva registro en public._docker_migrations.
node scripts/generate-keys.js # genera JWT_SECRET, ANON_KEY y SERVICE_ROLE_KEY
docker compose up -d --build
http://localhost:3000http://localhost:8000http://localhost:54321 (protegido con Basic Auth)| Comando | Descripción |
|---|---|
npm run dev | Servidor de desarrollo con HMR |
npm run build | Compilación de producción |
npm run preview | Sirve el build local |
npm run lint | ESLint sobre todo el repositorio |
npm test | Pruebas con Vitest |
npm run test:watch | Pruebas en modo watch |
En scripts/ hay utilidades operativas: exportación de esquema y datos, importación
al entorno local, siembra desde producción, migraciones y configuración de CORS en S3.
src/
pages/ Vistas enrutadas, agrupadas por rol (admin, school, teacher, representative)
components/ Componentes de UI por dominio
hooks/ Estado y acceso a datos (React Query, sesión, permisos)
lib/ Lógica pura y generación de documentos (sin React, con pruebas)
integrations/ Cliente y tipos generados de Supabase
supabase/
functions/ Edge Functions en Deno (operaciones privilegiadas)
migrations/ Esquema versionado
docs/desc/ Documentación funcional por tema
scripts/ Utilidades de operación y datos
docker/ Configuración del stack autoalojado
docs/desc/ contiene un archivo por dominio funcional con casos de uso, rutas,
permisos, tablas y reglas de negocio. Es el punto de partida antes de tocar código.
Antes de implementar cualquier cosa, lee
docs/desc/CONVENTIONS.md. En resumen: identificadores en
inglés e interfaz en español, una responsabilidad por archivo, tipado estricto sin
any, lógica de negocio en src/lib/** siempre con pruebas, consultas acotadas por
school_id confiando en RLS, y toda operación privilegiada en una Edge Function —
la service_role nunca viaja al cliente.
.github/workflows/deploy.yml compila con Bun y publica en
Cloudflare Pages en cada push a main..github/workflows/backup.yml vuelca a diario el esquema public y
los usuarios de auth de la base de producción.Dockerfile genera la imagen del frontend (build con Bun, servido
por Nginx) que usa docker-compose.yml.Proyecto privado. Todos los derechos reservados.