ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
PROMPT 2.0: A Modular and Scalable Management Platform for Project-Based Teaching
PROMPT (Project-Oriented Modular Platform for Teaching) is a course management tool built to simplify the administration of project-based university courses.
Originally developed for the iPraktikum at the Technical University of Munich, PROMPT is now a modular and extensible platform that adapts to the needs of instructors and scales across different teaching formats.README 전문 보기 ↗PROMPT (Project-Oriented Modular Platform for Teaching) is a course management tool built to simplify the administration of project-based university courses.
Originally developed for the iPraktikum at the Technical University of Munich, PROMPT is now a modular and extensible platform that adapts to the needs of instructors and scales across different teaching formats.
PROMPT supports custom course phases as independently deployable modules:
Explore the live system here 👉 https://prompt.aet.cit.tum.de/
PROMPT is built for teaching teams who run complex project-based university courses. This guide gives you a first impression of the product, its modules, and typical workflows.
PROMPT lets you define courses by combining reusable “phases”:
PROMPT provides powerful tools for handling student participation throughout your course:
Each course phase can be developed and plugged in independently—ideal for institutions with evolving or specialized workflows.
This section is for developers and contributors looking to run PROMPT locally or contribute to its development.
shadcn/ui| Tool | Version | Installation |
|---|---|---|
| Go | 1.26+ | go.dev/doc/install |
| Node.js | 22.10.0 - 22.x | nodejs.org |
| Docker | Latest | docker.com |
| golang-migrate | Latest | github.com/golang-migrate/migrate |
| sqlc | Latest | docs.sqlc.dev |
# macOS with Homebrew (Homebrew strips corepack from Node)
brew install corepack
# Other platforms (included with Node 16.9+)
npm install -g corepack
# Enable corepack
corepack enable
git clone https://github.com/prompt-edu/prompt.git
cd prompt
# Create environment files from templates
cp .env.template .env
cp .env.dev.template .env.dev # Local development overrides
The .env file contains Docker/production configuration. The .env.dev file contains local development overrides (localhost instead of Docker hostnames) and is loaded by make server.
# every service database and Keycloak (make db-down stops them again)
make db
# object storage
docker compose up -d seaweedfs-volume seaweedfs-s3
Navigate to http://localhost:8081
Login with username admin and password admin
In the top-left dropdown, select Create Realm and upload keycloakConfig.json
In the new Prompt realm, create a user:
PROMPT-Adminsuniversity_login → ab12cdematriculation_number → 01234567Configure client mappers (to include user attributes in tokens):
Go to Clients → prompt-server → Client scopes tab
Click prompt-server-dedicated
Click Add mapper → By configuration → User Attribute
Create mappers for each attribute:
| Name | User Attribute | Token Claim Name | Claim JSON Type |
|---|---|---|---|
| university_login | university_login | university_login | String |
| matriculation_number | matriculation_number | matriculation_number | String |
Ensure Add to ID token and Add to access token are enabled
Generate a client secret:
prompt-server → CredentialsThe .env file is not automatically loaded by Go. Use one of these methods:
Use Make (recommended, works in any shell):
make server
Manual export (bash/zsh only):
set -a && source .env.dev && set +a
cd servers/core && go run main.go
make clients
# or manually:
cd clients && yarn install && yarn run dev
This launches all micro-frontends simultaneously using Lerna. The app runs at http://localhost:3000.
To start a specific micro-frontend only, navigate to its subdirectory and run yarn run dev there.
make seed
This loads one fully populated demo course - every phase type, with participants, applications, interviews, teams, assessments and certificates - into all eight service databases. Run it after the servers have started at least once, since they create the schemas. See the seeding guide.
Log in as a user with credentials username: student-passkey | password: student-passkey. You will be asked to register your passkey. With next login you can use your registered passkey instead of password-based authentication.
To test the flow, you must force a specific user to register their biometric data:
Access Keycloak Admin: Go to http://localhost:8081 (Login: admin / admin).
Select Realm: Ensure the Prompt realm is selected in the top-left corner.
Navigate to "Users" → Click on the user (e.g., student).
In the "Details" tab, find "Required user actions" field.
Select "Webauthn Register Passwordless".
Click "Save".
Open http://localhost:3000 and click "Login".
Sign in using standard credentials (e.g., student / student).
Keycloak will prompt you to register a passkey.
Your browser/OS will prompt for user verification, such as Touch ID, Face ID, Windows Hello, a PIN, or a security key. Follow the prompts to complete registration.
Log out or open a new Incognito/Private window.
Go to http://localhost:3000 → Login.
Click "Try another way".
Select "Passkey" → Sign in with Passkey.
Use your new user verification method. You should be logged in instantly without entering a password.
# Generate sqlc code (after changing SQL queries)
cd servers/<service> && sqlc generate
# Run Go tests
cd servers/<service> && go test ./...
# Lint clients
cd clients && yarn biome check "core"
Shared UI components are not kept in this repository. They live in
prompt-edu/prompt-lib and are consumed here as
@tumaet/prompt-ui-components, so new shadcn/ui primitives are added there and released as a new
package version.
We use the cross-platform pre-commit framework for git
hooks. Install pre-commit itself once (pipx install pre-commit,
pip install --user pre-commit, or brew install pre-commit), then set up the
hooks:
make install-hooks # or: pre-commit install
On every commit the hooks run against the staged files:
PATH);make lint);swag on PATH
(go install github.com/swaggo/swag/cmd/swag@latest). Because this hook
regenerates files, a commit with stale docs is aborted once with the docs
updated and staged — re-run git commit to include them.Check the whole repo at any time with pre-commit run --all-files. To bypass the
hooks for a single commit, use git commit --no-verify.
If you previously installed the old bash hook via
core.hooksPath, clear the override once withgit config --local --unset core.hooksPath.
| Service | Port |
|---|---|
| Core Client | 3000 |
| Infrastructure Setup Client | 3012 |
| Keycloak | 8081 |
| Core Server | 8080 |
| Interview Server | 8087 |
| Team Allocation Server | 8083 |
| Self Team Allocation Server | 8084 |
| Assessment Server | 8085 |
| Example Server | 8086 |
| Certificate Server | 8088 |
| Presentation Server | 8089 |
| Infrastructure Setup Server | 8091 |
| PostgreSQL (core) | 5432 |
| PostgreSQL (infrastructure setup) | 5441 |
| SeaweedFS Master | 9333 |
| SeaweedFS Volume | 8888 |
| SeaweedFS S3 Gateway | 8333 |
We are building a community around PROMPT! Whether you are an instructor using the platform or a developer looking to contribute, we'd love to have you.
We welcome contributions of all kinds! Please see our Contributing Guidelines to get started.
PROMPT can be customized for your course by composing it from different modular phases. These configurations are handled at the course level and dynamically loaded on demand.
.env.dev.envKEYCLOAK_CLIENT_SECRET