ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
University course section swap platform
Translation pending
EducationJavaScript · CSSGitHub @Karam-KreidliOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
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.Read the full 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.