ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
One AI companion, every university's own knowledge.
Student Companion AI is a multi-tenant Progressive Web App that gives each
university its own AI assistant — grounded in that university's handbook,
policies, and records, not a generic answer from the open web. A student's
university is resolved automatically from their verified email domain; no
manual "pick your school" step, no cross-tenant data leakage, one login for
every campus on the platform.檢視完整 README ↗One AI companion, every university's own knowledge.
Student Companion AI is a multi-tenant Progressive Web App that gives each university its own AI assistant — grounded in that university's handbook, policies, and records, not a generic answer from the open web. A student's university is resolved automatically from their verified email domain; no manual "pick your school" step, no cross-tenant data leakage, one login for every campus on the platform.
Every university has the same problem: policies, deadlines, and department contacts live scattered across PDFs, portals, and word-of-mouth. Students either dig for answers or wait for office hours. Student Companion AI closes that gap — instant, sourced answers from the institution's own materials, available at 2pm or 2am.
What makes it a platform rather than a single chatbot:
@youruni.edu → the right tenant, automatically).| Area | What it does |
|---|---|
| Grounded AI chat | Retrieval-augmented answers, cited from the student's own university's knowledge base — streamed, with automatic non-streaming fallback. |
| Multi-tenant identity | Firebase authentication with server-verified email-domain routing; each organization's data is isolated at the retrieval and database layer. |
| Admin dashboard | Organization admins manage their own staff, curators, and office-hours listings; platform admins manage the roster of onboarded universities and plan tiers. |
| Office hours | Real, bookable curator office-hours listings per organization — replacing what used to be a hidden, hardcoded widget. |
| Opportunities & News | Scholarships, internships, programs, and campus updates surfaced per organization. |
| Document tools | Upload and manage source documents that feed each organization's knowledge base. |
| Analytics & feedback | Admin-facing dashboards for usage, student feedback, and suggestions. |
| Installable PWA | Works like a native app on a phone — offline-friendly shell, home-screen install, push-ready. |
Student asks a question
│
▼
Frontend (this repo) — resolves the student's organization from their
│ verified email domain, sends the question with auth
▼
Backend (FastAPI, Hugging Face Space) — embeds the question and runs a
│ vector search against that organization's own
│ ChromaDB collection (never another tenant's)
▼
Relevant, sourced context is retrieved and stitched into a grounded prompt
│
▼
The model answers from that context — and says "I don't know, here's
│ where to look" rather than inventing an answer
▼
Answer streams back to the student, cited
| Layer | Technology |
|---|---|
| Framework | React 18 + TypeScript |
| Build tool | Vite 5 |
| UI | Tailwind CSS + shadcn/ui (Radix primitives) |
| Auth | Firebase Authentication (client) + Firebase Admin (server-verified) |
| Backend | FastAPI on a Hugging Face Space (separate repository) |
| Retrieval | ChromaDB — one isolated collection per organization |
| Relational data | Aurora PostgreSQL (AWS RDS Serverless v2) |
| Hosting | Vercel |
npm install
cp .env.example .env
| Variable | Description |
|---|---|
VITE_API_URL | Backend base URL (Hugging Face Space or localhost) |
VITE_FIREBASE_API_KEY | Firebase web API key (restrict by HTTP referrer) |
VITE_FIREBASE_AUTH_DOMAIN | Firebase auth domain |
VITE_FIREBASE_PROJECT_ID | Firebase project ID |
VITE_FIREBASE_STORAGE_BUCKET | Firebase storage bucket |
VITE_FIREBASE_MESSAGING_SENDER_ID | Firebase messaging sender ID |
VITE_FIREBASE_APP_ID | Firebase app ID |
Note:
.envis gitignored and must never be committed. Admin identity is decided server-side by the backend, never in the client bundle — there is intentionally no admin email list here.
npm run dev # start the dev server on http://localhost:3000
npm run build # production build to dist/
npm run preview # preview the production build
npm run lint # lint the codebase
src/
├── components/ UI components (chat, admin, layout, shadcn/ui primitives)
├── config/ API base URL, auth headers, fetch helpers
├── contexts/ React context providers (auth, etc.)
├── hooks/ Custom React hooks
├── lib/ Firebase init and shared utilities
├── pages/ Route pages — landing, auth, chat, admin, office hours, …
├── services/ Backend API clients (aiService, opportunitiesService, …)
├── types/ Shared TypeScript types
└── utils/ Helpers
mobile/ React Native (Expo) companion app
The app is deployed on Vercel from this repository's main branch.
mainnpm run builddistSet VITE_API_URL and the VITE_FIREBASE_* variables in the Vercel
project's Environment Variables (Production scope). A push to main
triggers a production build automatically.
Proprietary. All rights reserved unless stated otherwise.