ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
Elective registration for SRMIST: live seat counts, locked-in choices and an instant receipt.
EducationTypeScript · HTMLGitHub @matheshwaran-ioOnlineOwner 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
High-concurrency institutional elective registration system with real-time seat allocation, atomic transactions, and multi-role faculty dashboards. Powered by Next.js 16, TypeScript, Drizzle ORM, and Supabase.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Electify is a reliable, high-performance, and secure full-stack elective registration portal designed specifically for batch-based course selection in academic environments (e.g., SRM University cohorts). It guarantees a fair, first-come, first-served seat selection process with robust concurrency safeguards to prevent overbooking, even under heavy load.Read the full README ↗Electify is a high-performance, secure full-stack university elective registration and cohort management system. It guarantees a 100% fair, zero-waitlist, first-come, first-served course selection process powered by atomic PostgreSQL transaction row-locking safeguards, optional real-time seat updates via Supabase Realtime, and an Academic Year Server isolation workflow.
/faculty/session-select), organizing operations by academic timelines (e.g. 2025, 2026, 2027) with complete workspace isolation.[email protected]) cannot be deleted, deactivated, or demoted.ELC-<year>-<ODD|EVEN>-<seq>) and PDF are issued only when the student finalizes their registration (or when the window closes), plus an audit log, a registration replay, and PDF exports.src/proxy.ts), and Bcryptjs password hashing (cost factor 12)electify/
├── .github/ # CI/CD Workflows (GitHub Actions)
├── docs/ # System Architecture, Database & Deployment Guides
│ ├── architecture/ # System design & folder structure documentation
│ ├── development/ # Code standards & testing workflows
│ ├── decisions/ # Architecture Decision Records (ADRs)
│ └── qa/ # QA regression and test reports
├── drizzle/ # Database migrations generated by Drizzle Kit
├── public/ # Static branding, presentation, and public assets
├── scripts/ # Database maintenance & mock data cleanup scripts
├── src/
│ ├── app/ # Next.js App Router Pages and Server Actions
│ │ ├── actions/ # Mutating server actions (admin, auth, tutor, register)
│ │ ├── api/ # API Route Handlers (health, switch-section)
│ │ ├── countdown/ # Pre-registration countdown waiting hall
│ │ ├── dashboard/ # Student registration portal & elective picker
│ │ ├── faculty/ # Staff & Administrative Control Panel
│ │ ├── login/ # Unified staff and student login portal
│ │ ├── maintenance/ # Global emergency maintenance redirect
│ │ ├── globals.css # Design tokens and Tailwind CSS rules
│ │ └── layout.tsx # Root application layout
│ ├── components/ # Reusable UI elements, modals, badges, data tables
│ ├── hooks/ # Custom reusable React hooks (e.g. useServerClock)
│ ├── lib/ # Shared utilities, database client, and security
│ │ ├── db/ # Drizzle client, unified schema, and seed scripts
│ │ ├── auth.ts # JWT signing, validation, and session guard rules
│ │ ├── cache.ts # Typed Next.js cache and route revalidation helpers
│ │ ├── password-policy.ts # Centralized password validation rules
│ │ ├── seat-ops.ts # ACID row-locking seat operations
│ │ ├── seats.ts # Pure seat display logic and thresholds
│ │ └── workspace.ts # Academic workspace resolution and security
│ ├── types/ # Centralized domain and API TypeScript contracts
│ │ ├── academic.ts # Hierarchy entities (faculties, depts, programmes)
│ │ ├── api.ts # API response and health check contracts
│ │ ├── registration.ts # Registration and seat availability types
│ │ └── session.ts # Authentication session and login types
│ └── proxy.ts # Next.js 16 proxy: route protection & session validation
├── tests/ # Automated test suites (unit, integration, and e2e)
├── drizzle.config.ts # Drizzle Kit configuration file
├── next.config.ts # Next.js configuration
└── package.json # Dependencies and npm scripts
The relational schema is defined in src/lib/db/schema.ts:
| Entity | Description |
|---|---|
faculties | SRM Master Faculties (Engineering, Management, Science & Humanities, etc.) |
departments | Academic departments tied to parent faculties (e.g., Computing Technologies) |
programmes | Degree programs (MCA, B.Tech CSE, M.Tech, etc.) with level (UG/PG) and semesters |
academic_batches | Cohort batches tied to programmes and graduation years |
sections | Cohort subdivisions (Section A, B, C, etc.) |
users | Unified user store for Students, Tutors, Coordinators, and System Admins |
tutor_sections | Multi-class mapping table assigning tutors to specific cohort sections |
registration_events | Registration windows and timelines (DRAFT, PUBLISHED, OPEN, CLOSED) |
elective_groups | Elective buckets (e.g., Professional Elective I) with selection constraints |
electives | Courses offering seat quotas (maxSeats, availableSeats, isFull) |
registrations | Official student registration master receipts |
student_registrations | Atomic elective course allocations mapped to confirmed registrations |
replay_events | Real-time audit log of student course choices and seat modifications |
| Feature / Action | Student | Class Tutor | Course Coordinator | System Admin |
|---|---|---|---|---|
| Access Countdown Waiting Room | ✅ | ❌ | ❌ | ❌ |
| Select & Confirm Electives | ✅ | ❌ | ❌ | ❌ |
| Browse Subject Explorer Preview | ✅ | ❌ | ❌ | ❌ |
| Switch Academic Year Server | ❌ | ✅ | ✅ | ✅ |
| Manage Assigned Class Rosters | ❌ | ✅ | ❌ | ❌ |
| Unlock / Reset Student Submissions | ❌ | ✅ | ✅ | ❌ |
| Create & Schedule Registration Events | ❌ | ❌ | ✅ | ✅ |
| Configure Electives & Quotas | ❌ | ❌ | ✅ | ✅ |
| Import Students via CSV | ❌ | ✅ (Class) | ✅ (Batch) | ✅ |
| Export Enrollment Records (PDF) | ❌ | ✅ (Class) | ✅ (Batch) | ✅ |
| Manage Role-Based Staff Invites |
[email protected]INITIAL_ADMIN_PASSWORD (or bootstrap setup)SYSTEM_ADMINRA2532241010001); e-mail addresses are not accepted on the student formOn Windows? Follow WINDOWS_SETUP.md, a complete step-by-step guide for Windows 10/11 with PowerShell commands and troubleshooting.
.nvmrc). npm test needs v22+.git clone https://github.com/matheshwaran-io/Electify.git
cd Electify
npm ci
Copy .env.example to both .env.local (read by Next.js and npm test) and .env (read by drizzle-kit, db:seed and db:reset):
cp .env.example .env.local && cp .env.example .env
Windows PowerShell: Copy-Item .env.example .env.local; Copy-Item .env.example .env
Fill in your database URL and a 32+ character JWT secret:
DATABASE_URL="postgresql://postgres:password@localhost:5432/electify"
DIRECT_URL="postgresql://postgres:password@localhost:5432/electify"
JWT_SECRET="your-secure-random-secret-at-least-32-chars-long"
⚠️
db:push,db:seedanddb:resetact on the database in.envwithout asking which host it is. Use them on a local, new database only.npm run db:migrateis not a supported path (its journal covers only migrations 0000–0002). See the maintenance manual §7.4 and §14.
# Create the tables from the schema (new, empty database only)
npm run db:push
# Seed university hierarchy and Root Administrator
npm run db:seed
# Run unit tests (fast, no database required)
npm run test:unit
# Run full integration test suite (requires PostgreSQL; WRITES fixture rows).
# `npm test` loads .env.local — point it at a LOCAL test database explicitly:
DATABASE_URL=postgresql://localhost:5432/electify_test DIRECT_URL=postgresql://localhost:5432/electify_test npm test
# End-to-end tests (local PostgreSQL + Chrome; recreates the throwaway electify_e2e DB)
npm run test:e2e
# Type-check TypeScript codebase
npm run typecheck
# Run ESLint on source code
npm run lint
# Run ESLint on scripts and tests
npx eslint scripts tests --format compact
npm run dev
Open http://localhost:3000 to view the application.
npm run build
npm start
ENOTFOUND or connection refused)Failed query: SELECT 1 or getaddrinfo ENOTFOUND.FATAL: JWT_SECRET must be configured with a secure random key in production.JWT_SECRET in .env.local to a random string of at least 32 characters: node -e "console.log(require('crypto').randomBytes(32).toString('base64'))".SETUP_SECRET in your environment variables, then invoke /api/health?setup=true passing x-setup-secret: <YOUR_SETUP_SECRET> in the header.Start here (current, source-verified):
Older design notes (some sections superseded — see the banner in each file):
Copyright © 2026 SRM Institute of Science and Technology. All rights reserved.
Developed for academic elective registration and cohort administration.
invite_codes | Single-use, role-based onboarding tokens for staff |
system_settings | Global flags such as system maintenance mode |
| ❌ |
| ❌ |
| ❌ |
| ✅ |
| Manage Academic Timelines / Years | ❌ | ❌ | ❌ | ✅ |
| Toggle System Maintenance Mode | ❌ | ❌ | ❌ | ✅ |