ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
Bunkr – 대학생을 위한 출석 관리, 75% 결석 예산 계산, 실시간 시간표 제공 웹·안드로이드 앱
⚡ Bunkr — Universal attendance tracker, 75% bunk budget calculator & real-time timetable for college and university students. Web + Capacitor Android.
교육HTML · CSSGitHub @DkshByte온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Universal attendance tracker, 75% bunk budget engine, and real-time corridor timetable.
A modern, fast, offline-first attendance companion built for college and university students.
Every student faces two recurring questions throughout the academic semester:README 전문 보기 ↗Universal attendance tracker, 75% bunk budget engine, and real-time corridor timetable. A modern, fast, offline-first attendance companion built for college and university students.
🚀 Launch Web App • ✨ Features • 🏗️ Architecture • 📂 Structure • 🗄️ Database Setup • 🛠️ Development
Every student faces two recurring questions throughout the academic semester:
Bunkr answers both questions instantly with zero friction. It turns static timetable schedules into an intelligent, interactive command center that computes exact attendance margins, tracks term progress, and works completely offline.
| Feature | Description |
|---|---|
| 🎯 Live Class Radar | Real-time ticker reporting the active subject, session type (Lecture vs. Lab), time remaining in the period, upcoming lecture, and scheduled break periods. |
| 🧮 75% Bunk Budget Engine | Exact term-wide attendance calculations. Projects your Bunk Budget (safe absences remaining while staying $\ge 75%$), mandatory lectures, attendance ceiling, and leave impact simulator. |
| 🔀 Multi-Batch Scheduling | Instant toggle between practical lab batches with persistent preferences saved directly to localStorage. |
| 🌴 Academic Calendar & Closures | Complete holiday and academic calendar distinguishing Official Closures from optional institutional leaves. |
| 🏆 Roster & Section Leaderboard | Claim your student account on the class roster, track section attendance rankings, and view classmate profiles. |
| 🔒 Single-Device Session Lock | Automatic multi-device detection. If an account signs in from another device, previous sessions are evicted securely via Supabase RPC. |
| 📶 Offline-First & Zero-Build | 100% functional without internet connectivity. Records persist locally first, syncing to cloud storage in the background when online. |
| 📱 Hybrid Android APK (Capacitor) | Native Android container with an intelligent dynamic bootloader: boots the latest remote web build, with instant fallback to a bundled offline copy. |
| 🖤 Pitch Black OLED UI | Pure #000000 AMOLED styling with frosted glassmorphism, fluid micro-interactions, and soft native haptics. |
Bunkr adopts a zero-build, single-file core paired with an offline-first hybrid shell:
flowchart TD
subgraph Client["📱 Student Client (Mobile / Desktop)"]
UI["Master Single-File App (timetable.html)"]
LS[("Local Storage\nSource of Truth")]
Calc["75% Bunk Budget Engine"]
UI <--> LS
UI --> Calc
end
subgraph Hybrid["📦 Capacitor Android Shell"]
Loader["boot/index.html (Smart Bootloader)"]
Fallback["boot/app.html (Bundled Offline Copy)"]
Haptics["Capacitor Native Haptics & Notifications"]
Loader -->|Check Live Version| Edge
Loader -->|Offline Fallback| Fallback
end
subgraph Edge["⚡ Vercel Edge CDN"]
Landing["deploy/index.html (Marketing Landing Page)"]
Deploy["deploy/app.html (Live Deployed Build)"]
Landing -->|Open Web App| Deploy
end
subgraph Cloud["☁️ Supabase Cloud (PostgreSQL 15)"]
Auth["Supabase Auth (Student Accounts)"]
RLS["Row-Level Security Policies"]
Tables[("students · attendance · devices · leaderboard")]
Auth --> RLS --> Tables
end
Edge -->|Serves Web App| UI
UI <-->|Sync Marks & Device Eviction| Cloud
timetable.html — markup, styling, schedules, and logic in a single, highly-optimized file.node_modules to render.file://), sent to classmates, or served on any static host.├── android/ # Capacitor Android Studio native project
│ ├── app/ # Native Android source, manifests & gradle
│ └── build.gradle # Native build configuration
├── assets/ # Brand assets and visual media
│ ├── bunkr-banner.png # Repository showcase banner
│ ├── bunkr-icon.svg # High-resolution vector emblem
│ ├── bunkr-logo.png # Vector brand wordmark (retina PNG)
│ ├── bunkr-logo.svg # Vector brand wordmark (SVG)
│ └── favicon.svg # Adaptive squircle favicon
├── boot/ # Capacitor web directory & dynamic bootloader
│ ├── index.html # Dynamic OTA remote loader & fallback router
│ ├── app.html # Pre-packaged offline fallback app
│ └── favicon.svg # Bootloader assets
├── deploy/ # Static Vercel deployment directory
│ ├── index.html # Marketing landing page (what people hit first)
│ ├── app.html # Live web app, linked from the landing page
│ ├── vercel.json # Cache-control & CORS headers
│ └── _headers # HTTP header rules
├── docs/ # Project specifications & design system
│ ├── DESIGN.md # Color tokens, typography, and UX guidelines
│ ├── PRODUCT.md # Product specs & timetable architecture
│ └── preview-brand.html # Interactive brand showcase and test tool
├── supabase/ # Supabase PostgreSQL migrations & schemas
│ ├── 01-students-setup.sql # Roster schema & account claiming policies
│ ├── 02-attendance-setup.sql # Cloud attendance sync & RLS rules
│ ├── 03-devices-setup.sql # Single-device session tracking & eviction RPC
│ ├── 04-leaderboard-setup.sql# Section ranking views & leaderboard logic
│ ├── 05-features-setup.sql # Role privilege checks & cancellations
│ ├── production-reset.sql # Clean reset script for new semesters
│ └── README.md # Step-by-step database setup guide
├── capacitor.config.json # Capacitor configuration
├── package.json # Project scripts & Capacitor dependencies
├── timetable.html # Master application file (Single-file source of truth)
└── README.md # Repository documentation
To provision a fresh database instance, run the migration scripts in the Supabase SQL Editor in numerical order:
01-students-setup.sql: Provisions public.students table with class roster accounts and concurrency-safe account claiming.02-attendance-setup.sql: Provisions public.attendance cloud sync storage with row-level security.03-devices-setup.sql: Adds active_device_id columns and the claim_device() function for single-session enforcement.04-leaderboard-setup.sql: Provisions the leaderboard view and section statistics.05-features-setup.sql: Adds role privilege checks and class cancellation boards.For in-depth explanations of the database architecture, refer to supabase/README.md.
Because Bunkr is a zero-build application, you can test it directly:
timetable.html directly via file://.npx serve .
# or
python3 -m http.server 8080
Whenever edits are made to timetable.html, synchronize them across the deployment targets:
npm run prep
This copies timetable.html to both deploy/app.html (Vercel) and boot/app.html (Android offline bundle). deploy/index.html is the hand-authored landing page and is never overwritten by this script.
To build and run the Android app:
# Install dependencies
npm install
# Sync web assets with Capacitor Android
npm run sync
# Open project in Android Studio
npm run open
# Build debug APK via Gradle
npm run build
Bunkr is built upon an intentional design system tailored for low-light classrooms and outdoors:
#000000 (zero battery draw on OLED/AMOLED screens).backdrop-filter: blur(16px) with subtle rgba(255, 255, 255, 0.08) borders.docs/preview-brand.html.This project is licensed under the MIT License.
Built with ❤️ by Daksh Sharma.