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.