TutorLoom
The learning platform for companies, colleges and training institutes. Free and open source, with an Enterprise edition.
ErHub is the engineering department’s home for student projects: submit, review, approve and discover innovative work.
EducationTypeScript · CSSGitHub @AcodehackedOnlineOwner 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
Submit your project, get feedback from representatives and faculty, and publish it to a repository that future batches can search, learn from and build upon.
Taken from the repository README
Loading the full README.
Read the full README ↗ErHub is the engineering department's home for student projects. Students submit projects with their team, files and links; a student representative screens each submission, faculty (or the team's chosen guide) make the final decision, and approved projects are published in a searchable public repository.
| Area | What it does |
|---|---|
| Public site | Landing page, project repository with search and filters, project pages, technologies, student profiles (/2026/abinantony) and faculty profiles (/faculty/meeranair) |
| Students | Step-by-step project editor with autosave, team and roles, faculty guide, images and documents, submit for review, revisions after approval |
| Representatives | Everything students can do, plus screening of their department's submissions |
| Faculty | Final review (guided projects first), a list of teams they guide |
| Admin | Users and roles, departments, academic years, technologies (with merging), every project, analytics, audit log |
Next.js 16 (App Router) · React 19.2 · TypeScript · Tailwind CSS v4 · shadcn/ui · GSAP · MySQL 8.4 · Drizzle ORM · Auth.js v5 · Zod 4 · React Hook Form · Cloudflare R2.
docs/ARCHITECTURE.md explains why each one was chosen.
You need Node.js 22 or newer, npm and Docker Desktop.
npm install # 1. install dependencies
cp .env.example .env # 2. create your env file (it already points at the Docker database)
npm run db:up # 3. start MySQL 8.4 in Docker
npm run db:migrate # 4. create the tables
npm run db:seed # 5. load demo data
npm run dev # 6. open http://localhost:3000
Set AUTH_SECRET in .env to a random string of 32 or more characters. Generate one with npx auth secret.
Every demo account uses the password Erhub@2026.
| Role | |
|---|---|
| Admin | [email protected] |
| Faculty (CSE) | [email protected] |
| Faculty (CSE, guides a project under review) | [email protected] |
| Student representative (CSE) | [email protected] |
| Student (CSE) | [email protected] |
| Student (ECE, has a rejected project) | [email protected] |
Uploads go to Cloudflare R2. Without R2 keys the app still runs, and the upload screens show an "Uploads unavailable" notice. docs/R2_SETUP.md explains how to turn uploads on.
| Command | Purpose |
|---|---|
npm run dev | Start the development server |
npm run build / npm start | Production build and start |
npm run typecheck | Check TypeScript types |
npm run db:up / db:down | Start or stop the dev MySQL container |
npm run db:generate | Create a migration after changing src/db/schema |
npm run db:migrate | Apply migrations |
npm run db:seed | Replace all data with demo data (dev only) |
npm run db:reset | Drop all tables, then migrate and seed |
npm run db:studio | Browse the database in Drizzle Studio |