ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
The intelligent web application for seamless course registration and scheduling at the University of Sharjah.
During registration periods, getting into the right course sections with preferred timings or instructors can be incredibly difficult. Students often resort to constantly refreshing the registration portal hoping a seat opens up, or they turn to social media groups trying to arrange manual "swaps" with other students. This process is highly uncoordinated, relies heavily on luck, and requires tedious manual communication that often falls through at the last minute.查看完整 README ↗During registration periods, getting into the right course sections with preferred timings or instructors can be incredibly difficult. Students often resort to constantly refreshing the registration portal hoping a seat opens up, or they turn to social media groups trying to arrange manual "swaps" with other students. This process is highly uncoordinated, relies heavily on luck, and requires tedious manual communication that often falls through at the last minute.
CourseMate acts as an intelligent intermediary. Instead of hunting through WhatsApp groups or hoping for a random drop, students can use CourseMate to declare exactly what course section they have, and what section they want. The platform handles the rest securely and intelligently.
CourseMate streamlines the entire process through several key mechanisms:
Every single aspect of the app is engineered to funnel students toward successful, stress-free schedules.
/ (Home Dashboard)The landing hub after sign-in. It surfaces a personalized snapshot rather than the raw feed: your active-post and pending-match counts, the total credits in your latest saved schedule, and the electives offered this semester (department and university baskets) filtered to your major. Targeted announcements surface here on arrival.
/browse (The Feed)The central marketplace. The feed natively applies intelligent filtering to only show posts (swaps, giveaways, and requests) that match your declared major and gender (preventing campus overlap).
/notifications)./post (Creation Hub)The hub where students officially register a "Have" or "Want" section.
/matches (Swap Transactions)When the matching engine finds a reciprocal 1-to-1 swap between two students, a record is created here in a Pending Match state. (Giveaways and requests don't use matches — they're coordinated through the "I'm interested" flow on the feed.)
/schedule (Visual Builder)An advanced graphical permutations tool natively built into the platform.
/instructors (Instructor Schedule)A lookup tool that lets a student search any instructor by name and see the full weekly schedule of class times they teach this term — useful for vetting a section before swapping into a different professor.
/profile (User Settings)The core setup and onboarding view that forcefully captures necessary metadata required to feed the logic loops for the rest of the application.
/notifications (Notification Center)A unified in-app inbox for everything time-sensitive, surfaced via a live unread badge on the bottom navigation bell.
/admin (Admin Console)A gated, admin-only operator console for running the platform.
/auth (Authentication)Dedicated, fully secure authentication proxy built seamlessly onto Supabase's OAuth/OTP ecosystem. It guards all internal APIs to protect student data.
CourseMate handles sensitive data carefully. Here is exactly why we collect what we do, and how it is managed:
| Data Point | Rationale For Collection | Storage & Privacy Guarantees |
|---|---|---|
| Gender | UoS strictly segregates campuses (e.g., Main/Men vs Main/Women). Without knowing a user's gender, a male student could inadvertently accept a swap for a female-designated course section, which is physically impossible to attend. | Held in your profiles row and governed by the same Row-Level Security that guards all profile data — never surfaced in the UI, used only in the background as a campus route-filter. (Supabase encrypts data at rest, which guards against physical media theft; RLS is what controls application-level access.) |
| Major | Prevents the system from showing Engineering swaps to a Med student. It's the central pillar that enables the /schedule route to dynamically look up a user's applicable Department Electives. | Retained in profiles and queried passively via the UI. |
| Phone Number | Crucial for the final step of a swap coordination where users sync up on WhatsApp to click "Drop" in the actual university portal at the exact same millisecond. | Hidden by default. For swaps, a number is locked behind our /matches Row Level Security (RLS) and is unveiled only once both parties hit "Accept" on a pending match. For giveaways/requests, the poster may either opt to publish their number publicly, or keep it private — in which case an interested student's contact is sent to the poster by email via the "I'm interested" flow, so the poster's number is never exposed. |
| Student ID | Defends the platform against spam. Guarantees that active accounts are verifiable, enrolled University of Sharjah students. | Visible internally for trust & accountability metrics. |
| Full Name | Personalizes the interactions, injecting a human element into automated notifications (e.g., "Karam accepted your swap request!"). | Publicly associated strictly with your respective swaps/giveaways. |
/api/expire-posts, /api/expire-matches) gracefully strip away old, stale requests so the active feed remains permanently healthy. Event-driven dispatchers (/api/notify-match, /api/notify-interest, /api/notify-watchers) write in-app notifications and send transactional email via Resend, respecting each user's per-category email preferences.Data Source: Our platform relies on robust real-time course metadata retrieved from the UoS Curriculum Scraper.
This project is open-source and licensed under the GNU Affero General Public License v3.0.