Prepared by: Shreya S Ramani
D.I.Y.A. is a web app for structured office hours that improves the student help experience and generates course analytics for professors and TAs. It combines a standardized intake workflow with a live help flow, plus a course forum that reduces duplicate questions using search and upvotes, and adds AI-assisted answers that staff can verify or correct.
- Student
- Professor / TA (Admin)
- Prof/TA creates a group for the class.
- Invite is sent to students via email.
- Student clicks invite:
- If no account: sign up first, then join the group (using student email).
- If account exists: log in and join the group.
- The student dashboard shows all groups.
- If they arrived via invite link, a pop-up asks to join:
- Accept: group is added to the dashboard
- Reject: pop-up closes, and nothing changes
- Inside a group, the Forum Page is the opening page (reddit-style).
- Post questions (text and optionally an image)
- Duplicate detection while typing:
- Suggest similar existing posts
- Ask student to upvote existing or post anyway
- Keyword search existing posts
- After posting, AI attaches a potential answer to the post
- Self-Grade Page (side nav option)
- Upload assignment rubric + current work
- AI returns an estimated grade report:
- potential grade received
- what to improve and why
- History stores past self-checks
- Office Hour Request Page (side nav option)
- Request a meetup outside normal times
- Fields include: requesting Prof/TA, what the request is for, proposed dates/times, etc.
- Student receives email confirmation after successful submission
- Admin dashboard shows all groups and includes an Add Group option to create new groups
- Forum Page (opening page)
- Admin can see AI answers on posts
- Admin actions:
- add a verified tag if they agree with the AI answer
- add additional comments to the thread
- strike out the AI answer if wrong and provide the correct answer
- Analytics Page (side nav option)
- AI keyword analysis over posts:
- most common types of questions
- topics that need to be revisited or explained
- AI keyword analysis over posts:
- Office-Hour Requests Page (side nav option)
- Accept a request and set up an online or in-person meeting (invite sent to student via UTD email)
- Deny a request and propose alternative dates/times
- Group creation + invite-based joining (student + admin)
- Student dashboard (groups) + join popup flow
- Course forum:
- create post (text + optional image)
- search before posting + duplicate suggestions
- upvotes
- AI-suggested answer on post creation
- Self-grade page (rubric upload + AI feedback + history)
- Office-hour request submission + email confirmation
- Admin moderation of AI answers (verify, comment, correct)
- Admin analytics page (AI keyword trends)
- Admin request management (accept/deny with alternatives)
- Stronger duplicate merging (combine threads + unify upvotes)
- Real-time live help queue with wait-time estimates and state transitions
- Notifications (“you’re next”) via email/push
- Searchable knowledge base generated from verified resolutions
- Multi-staff assignment + throughput metrics
- LMS linking + calendar-driven sessions
| 🏁 Week | 📌 Task |
|---|---|
| 1 | Define scope, roles, data model, and wireframes for student flow and staff triage |
| 2 | Set up Next.js app and Supabase project, tables for groups, invites, posts, requests, basic UI skeleton |
| 3 | Build auth (optional), dashboards, and group join flow |
| 4 | Build forum posting + search + duplicate suggestion UI |
| 5 | Add upvotes + AI answer attachment pipeline |
| 6 | Build self-grade page + history |
| 7 | Build office-hour request submission + confirmations |
| 8 | Build admin forum tools (verify/correct AI answers) |
| 9 | Build analytics page (keyword trends) + requests management (accept/deny) |
| 10 | Testing, edge cases, polish, documentation, deploy on Vercel |
- Frontend + API routes: Next.js (App Router)
- Database + Realtime: Supabase Postgres + realtime subscriptions
- Auth: Supabase Auth (optional in MVP, add later)
- UI: Tailwind CSS + shadcn/ui
- Deployment: Vercel + Supabase
Next.js (App Router)
Supabase (Postgres + Realtime)
Supabase Auth + RLS
Tailwind CSS + shadcn/ui
Deployment (Vercel)
- Forms/spreadsheets: fast but not built for duplicate reduction, moderation, or analytics
- Async forums: great for discussion, but not optimized for structured intake and triage
- Appointment schedulers: good for 1:1 but weak for high-volume bursts
- Chat-based queues: quick but hard to standardize and analyze
D.I.Y.A. differentiates by combining structured intake, duplicate consolidation (search + upvotes), AI-assisted answers with staff verification, and course analytics.
- Realtime correctness and race conditions
- Add optimistic locking, last-updated checks, or a simple “locked by” field for staff actions.
- Security and privacy
- Keep minimal student data in MVP, then add Supabase Auth + RLS role policies per course/group.
- Adoption friction
- Default presets, very short intake, one-click moderation actions, and fast search-first UX.
- Project Manager: Shreya S Ramani
- Industry Mentor: TBD
- Participant 1: Kevin Arputharaj
- Participant 2: Polina Maidanova
- Participant 3: Madhav Suri
- Participant 4: Diya Rautela
- Make sure the following are installed:
- Node.js
If it is not installed:
- Navigate to https://nodejs.org/en/download
- Download the package and follow the prompts to finalize installation
-
Clone the repository and navigate to the folder:
git clone https://github.com/acm-projects/D.I.Y.A.git cd D.I.Y.A -
Install root dependencies:
npm install -
From the project root run frontend and backend together:
npm run dev
Frontend (client/) runs on http://localhost:5173
Backend (server/) runs on http://localhost:3000
- To run frontend and backend separately:
npm --prefix client run devnode server/server.js
