// the find
PrinceRaut01/TU_Offline_CSIT_StudentPortal.ino-esp32c3-
ESP32-based offline Tribhuvan University BSc.CSIT registration portal with captive Wi-Fi AP, web form submission, EEPROM data storage, admin dashboard with search, CSV export, per-student PDF generation, and real-time OLED status display for registrations and system events.
An ESP32-C3 firmware project that turns a $3 microcontroller into a standalone offline student registration kiosk — no internet required. Students connect to its Wi-Fi AP, fill out a form, and the device stores records in LittleFS JSON, serves an admin panel, generates PDFs, and displays live stats on a tiny OLED. Built for Tribhuvan University's CSIT program but the pattern is reusable for any offline event registration.
The component decomposition is genuinely good for embedded C — separate modules for csv_manager, pdf_manager, oled_manager, dns_server, etc. make the codebase navigable and testable in isolation. Writing a valid PDF-1.4 generator from scratch in C on a microcontroller is non-trivial and actually works (the spec says 'valid PDF-1.4, opens in any viewer'). The OLED dashboard cycling 8 screens of live metrics (heap, uptime, LittleFS usage, activity log) is a nice operational touch — you can tell at a glance if the device is healthy without a serial monitor. The partition layout (2MB app + 2MB LittleFS) and the use of LittleFS over SPIFFS is the right call for wear leveling and power-loss safety.
The admin panel has no authentication — `GET /clear` deletes all records, `GET /admin` exposes everything, and the Wi-Fi AP is open with no password. On a campus deployment this is a real problem, not a theoretical one. Student data (name, DOB, contact, email, address) is stored in a flat JSON file with no encryption; anyone who connects to the AP and knows the routes gets everything. The PDF generation comment says 'valid PDF-1.4' but there's no mention of Unicode/UTF-8 handling for names in Nepali script — likely broken for non-ASCII input. Zero stars and no CI means this has never been tested by anyone except the author, and there's a `build_log.txt` committed to the repo which is build artifact noise.