Wi-Lab
A learning and supervision platform: lecturers publish modules, and each student gets a real-time chat with their own supervisor that the lecturer can open and close.
Supervision usually happens across a messaging app, a shared drive and a lecturer's inbox, and none of them know who supervises whom. Wi-Lab brings it into one place: lecturers and students, the materials they share, and the conversations between them.
Every student is linked to a supervising lecturer. Lecturers publish modules with files; students study them and talk to their supervisor in a live chat, on the lecturer's schedule.
What's inside
Students and lecturers
Profiles with student or staff ID numbers, department, bio and avatar, and each student assigned to a lecturer.
Modules
Lecturer-authored modules with drag-and-drop file uploads (images, documents, PDFs) and open or restricted visibility.
Guidance chat
One-to-one conversations with read receipts and edited or deleted messages kept in the record.
Office hours
A lecturer can lock a conversation and set when it next opens, so supervision happens on their time, not at midnight.
Real time on a custom server
Next.js alone doesn't keep sockets open, so the app runs on a small custom Node server that hosts Socket.IO next to Next.js. Each conversation is a room: joining announces the user, and a message is relayed to everyone else in the room while it's saved through the API. Notifications cover the rest, and the interface is fully in Indonesian.
Built with
- Next.js
- TypeScript
- Socket.IO
- Prisma
- Clerk
- Tiptap
- react-dropzone
- TanStack Query
- shadcn/ui
Related Work

