ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻译准备中
A comprehensive education platform focusing on course applications, event registrations, learning communities, and more.
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
An education platform for course applications, event registrations, learning
communities, student projects, and certificates — the software behind
edu.opencampus.sh.
EduHub centralizes educational offerings: learners discover courses and events,
apply or register, work on projects, and receive certificates. Organizations
manage programs, courses, sessions, experts, and enrollments from a single admin
area.查看完整 README ↗An education platform for course applications, event registrations, learning communities, student projects, and certificates — the software behind edu.opencampus.sh.
EduHub centralizes educational offerings: learners discover courses and events, apply or register, work on projects, and receive certificates. Organizations manage programs, courses, sessions, experts, and enrollments from a single admin area.
cp .env.example .env
# fill in only the integrations you need — see comments in .env.example
docker compose up (first start builds images and applies migrations
and seeds; give it a few minutes).http://localhost:5000 and log in as [email protected] /
dev.Local services:
| Service | URL | Notes |
|---|---|---|
| EduHub frontend | http://localhost:5000 | Next.js dev server, hot reload |
| StuJo frontend | http://localhost:5001 | job board portal, same backend |
| Hasura | http://localhost:8080 | GraphQL endpoint at /v1/graphql, admin secret myadminsecretkey |
| Keycloak | http://localhost:28080 | admin console, admin / admin |
| File storage emulator | http://localhost:4001 | serves /emulated-bucket |
| Serverless functions | ports 42000–42026 | Node 42000–42024, Python 42025–42026 |
The local login and registration screens show SSO button previews (DLC, Google,
LinkedIn, GitHub) when the realm has no configured identity providers. They use
the shared production layout but do not authenticate; a note identifies the
preview. Set KEYCLOAK_SSO_PREVIEW=false in .env and run
docker compose up -d keycloak to hide them. Real configured providers always
replace the previews. Production defaults to previews off. For Tailscale
previews, use scripts/start-network-preview.sh to retain the network bindings.
Note: See the Development Guide for environment variables, seeds, ports, and naming conventions.
| Path | Contents |
|---|---|
frontend-nx/ | Yarn-workspace monorepo of Next.js apps: apps/edu-hub (main app), apps/stujo (job board) |
backend/ | Hasura metadata, SQL migrations, and seeds |
functions/ | Node and Python serverless functions (guide) |
keycloak/ | Keycloak realm imports, themes, and custom listeners |
infrastructure/ | Terraform for the Google Cloud staging/production environments |
docs/ | Feature documentation, user manuals, and ADRs (docs/adr/) |
.github/workflows/ | CI: code checks, image builds, releases, infrastructure deploys |
admin, instructor,
user, anonymousWe welcome contributions from everyone. Please read the Contributing Guide for:
develop → staging → production) and release flowFrontend commands (from frontend-nx/, Node 22 and Yarn 3.4.1):
yarn install
yarn lint # ESLint, matches CI
yarn test # Jest + React Testing Library
yarn type-check # tsc --noEmit
yarn apollo # regenerate GraphQL types after query/schema changes
Schema changes must be applied as Hasura migrations in backend/migrations/
with matching metadata — see the Development Guide.
This project is licensed under the AGPLv3 License.