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.