ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
El Sistema de Información SIHS es una plataforma web desarrollada con una arquitectura basada en API REST y desacoplada mediante un enfoque de Monorepo. Este repositorio contiene tanto el servidor Backend como el cliente Frontend, garantizando un desarrollo modular, escalable y mantenible. ▶️ Inicio rápido (para ver el proyecto andando) Necesitas dos consolas abiertas al mismo tiempo, una para cada carpeta — el backend y el frontend son dos servidores independientes que corren en paralelo.檢視完整 README ↗
El Sistema de Información SIHS es una plataforma web desarrollada con una arquitectura basada en API REST y desacoplada mediante un enfoque de Monorepo. Este repositorio contiene tanto el servidor Backend como el cliente Frontend, garantizando un desarrollo modular, escalable y mantenible.
Necesitas dos consolas abiertas al mismo tiempo, una para cada carpeta — el backend y el frontend son dos servidores independientes que corren en paralelo.
Antes que nada: consigue el .env de backend/ y frontend/ — ver
database/README.md (son las credenciales de
Supabase, no se suben a GitHub).
Consola 1 — Backend:
cd backend
python3 -m venv .venv && source .venv/bin/activate # Windows: python -m venv .venv && .venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env # y pegar ahí las credenciales reales
uvicorn app.main:app --reload
Déjala corriendo — queda en http://127.0.0.1:8000 (probar en
http://127.0.0.1:8000/docs).
Consola 2 — Frontend:
cd frontend
npm install
cp .env.example .env # y pegar ahí las credenciales reales
npm run dev
Déjala corriendo también — abre la URL que muestre la consola (normalmente
http://localhost:5173).
Con las dos consolas corriendo a la vez, ya se puede entrar al sistema
desde el navegador. Usuarios de prueba en
database/README.md.
Opcional — Consola 3 — App Móvil (Flutter):
La app móvil consume el mismo backend y Supabase que el frontend web.
cd mobile
flutter pub get
cp .env.example .env # y pegar ahí las credenciales reales
flutter run
Para más detalles, ver mobile/README.md.
La versión web de SIHS ya cubre el flujo principal de gestión de horarios y sus módulos relacionados. El sistema trabaja con cuatro perfiles: Administrador, Coordinador, Instructor y Aprendiz, con acceso a rutas según rol.
@supabase/supabase-jsPROYECTO-SIHS/
├── backend/ # Servidor de API REST (FastAPI)
│ ├── app/
│ │ ├── api/ # Endpoints y rutas de la API
│ │ ├── core/ # Configuraciones globales y seguridad JWT
│ │ ├── models/ # Modelos de base de datos (SQLAlchemy)
│ │ ├── schemas/ # Esquemas de validación (Pydantic)
│ │ ├── repositories/ # Acceso a datos
│ │ └── services/ # Lógica de negocio
│ ├── app/main.py # Punto de entrada de la aplicación FastAPI
│ ├── .env.example # Plantilla de variables de entorno
│ ├── requirements.txt # Dependencias de Python
│ ├── ESTRUCTURA.md # 👉 Qué es cada archivo, patrón para agregar módulos
│ └── OBJETIVO_Y_SERVICIOS_FALTANTES.md # 👉 Qué falta para cumplir el objetivo
│
├── frontend/ # Cliente Web (React + Vite + TypeScript + Tailwind)
│ ├── src/
│ │ ├── assets/ # Imágenes (logo SENA, etc.)
│ │ ├── components/ # Componentes de UI reutilizables (AuthLayout, FormField)
│ │ ├── context/ # AuthContext — sesión de Supabase
│ │ ├── hooks/ # useAuth
│ │ ├── pages/ # Login, Registro, RecuperarContrasena, Dashboard
│ │ ├── routes/ # AppRouter, ProtectedRoute
│ │ ├── services/ # supabaseClient.ts (Auth) y api.ts (consume el backend)
│ │ └── types/ # Tipos que reflejan los schemas del backend
│ ├── .env.example # Plantilla de variables de entorno
│ ├── package.json # Dependencias de Node.js
│ ├── ESTRUCTURA.md # 👉 Qué es cada archivo, cómo consumir el backend
│ └── OBJETIVO_Y_SERVICIOS_FALTANTES.md # 👉 Qué pantallas faltan
│
├── mobile/ # Cliente Móvil (Flutter - iOS/Android/Web)
│ ├── lib/
│ │ ├── main.dart # Punto de entrada de la app
│ │ ├── config/ # Configuración (AppConfig)
│ │ ├── models/ # Modelos de datos (Usuario, Horario)
│ │ ├── services/ # Servicios (Auth, API, Horarios)
│ │ ├── providers/ # State management (Provider)
│ │ ├── screens/ # Pantallas (Login, Home)
│ │ └── widgets/ # Widgets reutilizables
│ ├── .env.example # Plantilla de variables de entorno
│ ├── pubspec.yaml # Dependencias de Flutter
│ └── README.md # 👉 Setup, arquitectura, endpoints
│
├── database/ # Esquema y guía de la base de datos (Supabase)
│ ├── README.md # 👉 Cómo configurar y conectarte a la BD
│ ├── 01_creacion.sql # Esquema completo de tablas
│ ├── migrations/ # Migraciones de Alembic
│ └── seeds/ # Datos de prueba
│
├── .gitignore # Archivos e itinerarios excluidos de Git
└── README.md # Documentación principal del proyecto
El proyecto usa Supabase (PostgreSQL en la nube) — nadie necesita instalar
una base de datos local. Para configurarla en tu máquina, sigue la guía paso
a paso en database/README.md.
git clone <URL_DEL_REPOSITORIO>
cd PROYECTO-SIHS
Antes de levantar el backend, sigue database/README.md
para conseguir tus credenciales de Supabase y crear tu .env.
Entrar a la carpeta del backend:
cd backend
Crear el entorno virtual:
# En Windows:
python -m venv venv
.\venv\Scripts\activate
# En Linux/Mac:
python3 -m venv venv
source venv/bin/activate
Instalar las dependencias:
python -m pip install --upgrade pip
pip install -r requirements.txt
Iniciar el servidor de desarrollo:
uvicorn app.main:app --reload
El backend estará corriendo en: http://127.0.0.1:8000
Documentación interactiva Swagger: http://127.0.0.1:8000/docs
Abrir una nueva terminal y entrar a la carpeta del frontend:
cd frontend
Instalar dependencias de Node:
npm install
Iniciar el servidor de desarrollo:
npm run dev
El frontend estará corriendo en: http://localhost:5173
La rama estable es main. Para trabajo colaborativo normal se recomienda
crear una rama corta por tarea y abrir un Pull Request hacia main.
git checkout main
git pull origin main
git checkout -b feature/nombre-tarea
# trabajar y validar
git add .
git commit -m "feat: descripción clara"
git push -u origin feature/nombre-tarea
Cada push y Pull Request ejecuta GitHub Actions:
npm ci, npm run lint, npm run build y npm run test.requirements.txt y pytest -v.Antes de integrar una rama, ambos jobs deben finalizar correctamente. Los
cambios directos sobre main se reservan para mantenimiento coordinado del
repositorio.
Proyecto desarrollado como parte del programa de formación Tecnológica en Análisis y Desarrollo de Software (ADSO) - SENA.