ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗CI/CD (CCA 2): this repo is built and deployed by Jenkins on AWS → Docker Hub → Kubernetes (Minikube). See DEPLOYMENT.md for the pipeline report, and
Jenkinsfile,Dockerfile,k8s/,infra/for the files.
A college-only platform where seniors and alumni write up their interview, internship, exam and certification experiences, and juniors read, search, comment and connect. Built for the PBL III project from the Version 1.0 PRD.
The placeholder name is SeniorCircle. Change it in one place: lib/constants/site.ts.
npm install
npm run dev
Open http://localhost:3000. With no Supabase keys the app runs on sample data held in memory, and the sign-in page offers one-click demo accounts for every role (junior, senior, verified alumna, pending alumnus, admin). Demo data resets when the server restarts.
This folder is inside OneDrive.
node_modulesand.nextcontain tens of thousands of small files, so either pause OneDrive sync while you work or move the project to a folder outside OneDrive (for exampleC:\dev\SEMproj).
supabase/migrations/0001_schema.sql. The student email domain is already set to mitwpu.edu.in in college_email_domain() near the top.supabase/migrations/0002_search_insights_votes.sql. The second one adds pgvector, the insight columns and voting; run them in order..env.example to .env.local and fill in:
NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY (Project Settings → API)GEMINI_API_KEY for semantic search and insights (see Assistant chatbot below)COLLEGE_EMAIL_DOMAIN (optional; defaults to mitwpu.edu.in)NEXT_PUBLIC_SITE_URL (http://localhost:3000 locally, your Vercel URL in production)<site url>/auth/callback to the redirect URLs.npm run dev. The demo banner disappears.Sign up through the site, then run this in the SQL editor:
update public.profiles set role = 'admin', verification_status = 'not_required'
where email = 'you@your-college-domain';
Admins are only ever created this way. Nothing in the app can grant the role.
After the first admin or senior account exists, run supabase/seed.sql to load ten sample experiences owned by that account.
The seed carries no votes, because every sample post belongs to one account and nobody may vote on their own experience. Trending ranks them by recency until members start voting. The samples also arrive without embeddings or insights: open the admin dashboard and use Search & Insights to process them.
| Read | Comment, connect, report | Post | Admin dashboard | |
|---|---|---|---|---|
| Junior | yes | yes | no | no |
| Senior | yes | yes | yes | no |
| Alumni, pending or rejected | yes | no | no | no |
| Alumni, verified | yes | yes | yes | no |
| Admin | yes | yes | yes | yes |
@mitwpu.edu.in email (for example [email protected]). Alumni sign up with a personal email and start as pending.lib/actions/.profiles table. get_contact_email() returns one only to its owner, an admin, or someone with an accepted connection.lib/data/repo.ts defines one interface with two implementations, supabase.ts and mock.ts. Pages never know which is live.app/ routes (home, feed, experiences, auth, profile, connections, notifications, admin, about)
components/ layout, home, experiences, filters, notifications, connections, profile, admin, auth, ui
lib/actions/ server actions (auth, posts, comments, connect, notifications, reports, admin, profile)
lib/auth/ session lookup and permission rules
lib/data/ repository interface, Supabase and mock implementations, feed filters
lib/constants/ site name, branches, categories, batch-year rules
lib/chat/ assistant chatbot: models, memory, retrieval, prompt
lib/ai/ model keys, embeddings, structured extraction, enrichment
lib/validation/ zod schemas
lib/mock/seed.ts demo data
supabase/ migrations (schema, triggers, RLS, grants, vectors, votes) and seed
middleware.ts session refresh and sign-in redirect for protected routes
Signed-in members get an Ask button on every page. It answers questions such as "What should I prepare for Barclays?" from the experiences in the database and links to the ones it used. It also answers general career questions and questions about how the site works.
GEMINI_API_KEY the vector half is skipped and retrieval falls back to keywords alone.GROQ_MODEL in .env.local to a current one from console.groq.com/docs/models. Add GROQ_API_KEY, and optionally GEMINI_API_KEY, to .env.local and restart the server. Without a key the assistant lists the matching experiences instead of writing an answer.lib/hooks/useSpeech.ts.lib/chat/ (models, memory, retrieval, prompt), app/api/chat/route.ts (streaming endpoint) and components/chat/ (the widget).The design is adapted from the Reflex Loop voice agent (github.com/Aditya-Patil27/chat-bot): the same Groq and Gemini pairing, streaming replies that can be stopped mid-answer, and a conversation memory that keeps recent turns and summarises older ones. Its speech input and output are done here with the browser’s own speech services instead of Deepgram.
lib/ai/extract.ts). These show as At a glance above the write-up and as chips on the cards. It runs after the response, so posting stays fast, and it never blocks a save: an experience with no insights simply displays as it always did. Older posts are caught up from the admin dashboard, five at a time.sign(score), which collapses every unvoted post to exactly zero, so new experiences sort arbitrarily. Here the age always counts and the score shifts it. Twelve and a half hours of age is worth one factor of ten in score. The value is stored on the row and recomputed by a trigger when a vote changes, so reads are a plain indexed sort.admin_vote_breakdown(), and it is on the dashboard so a post being quietly buried is visible to somebody. Nobody may vote on their own experience; the policy in migration 0002 enforces that, not just the interface.post_previews view.Not built, by design (PRD V1 exclusions): chat, push or email notifications, mobile app, multi-college support.
npm run typecheck
npm run lint
npm run build
Push to GitHub, import the repository in Vercel, add the four environment variables from .env.example, and deploy. Then update the Site URL and redirect URL in Supabase to the Vercel domain.