ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
Collect student and instructor preferences for an explainable IITM slotbook.
EducationJava · JavaScriptGitHub @lazarsalt1441OnlineOwner 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
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗A Java application that assigns IITM Electrical Engineering courses to institutional slots and produces evidence-backed explanations for every assignment. Version 2 hands the optimisation to UniTime's course timetabling engine, cpsolver, and keeps the v1 CP-SAT model as an exact reference solver.
Documentation: docs_v2 describes this version; docs_v1 keeps the original CP-SAT version.
| v1 | v2 | |
|---|---|---|
| Default solver | OR-Tools CP-SAT | UniTime cpsolver (--solver cpsat still available) |
| Time model | Slot labels, never overlapping | Real IITM meeting times from the official grid; overlaps computed to 5 minutes |
Labs (additional_slot) | Displayed only | Fixed lab meetings that block instructors, conflicts and students |
| Rooms | Displayed only | Hard rule: one course per room at a time |
| Validation | 9 checks | 18 checks, including duplicate or negative preferences and lab clashes |
| Tests | 41 | 52, comparing both solvers on every scenario |
Every generated test scenario is solved by both UniTime and the exact CP-SAT solver:
The full table is in the test plan.
The demonstrator uses an anonymized/mock subset inspired by the January–May 2025 EE slotbook. Course metadata resembles the supplied administrative sheet; student selections, instructor preferences, conflict weights and availability restrictions are synthetic test fixtures. Slot times follow the official grid at https://www.iitm.ac.in/timetable.
The system supports:
See MANUAL.md for usage and ARCHITECTURE.md for the module flow.
The portal/ directory contains a Vercel-ready web application that collects student course rankings and instructor slot penalties in Google Sheets, exports the exact CSV contracts used by this application, optionally invokes a deployed solver API, and publishes the generated slotbook with explanations.
cd portal
npm test
npm run check
The demonstration portal intentionally has no student or instructor authentication. Its admin operations use server-side secrets, and its documentation explains the Google Apps Script and Vercel setup.
Requirements: JDK 17+ and Maven 3.9+.
mvn clean test
mvn exec:java -Dexec.args="--input data/feasible --output output/demo"
mvn exec:java -Dexec.args="--input data/feasible --output output/demo --solver cpsat"
mvn javafx:run
For the mid-evaluation showcase, use the deliberately compact scenario in data/demo-showcase:
mvn exec:java -Dexec.args="--input data/demo-showcase --output output/demo-showcase --time-limit 10"
It contains 11 courses, 36 anonymous students and 144 ranked preferences. UniTime reaches objective 9, matching the CP-SAT proven optimum. The checked-in generated result shows one unavoidable low-weight elective overlap while satisfying the fixed-slot, laboratory, protected-pair and room constraints.
GitHub Actions runs the complete Maven test suite on every push and pull request.
cpsolver is distributed under the GNU Lesser General Public License v3. This project uses it unmodified as a Maven library dependency.