Skip to content

acm-projects/D.I.Y.A

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

D.I.Y.A demo

D.I.Y.A

Digital Intake, Yielding Answers

Prepared by: Shreya S Ramani

🔍 Summary

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.

🧭 Workflow (from the PDF)

Roles

  • Student
  • Professor / TA (Admin)

Group-based onboarding

  1. Prof/TA creates a group for the class.
  2. Invite is sent to students via email.
  3. 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.

Student view (inside a 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

Prof/TA (Admin) view (inside a group)

  • 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
  • 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

🛠️ MVP Features (10-week, beginner friendly)

  • 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)

🚀 Stretch Goals

  • 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

📅 Timeline (10-Week Plan)

🏁 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

💻 Tech Stack

  • 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

📚 Resources (Beginner-Friendly)

Next.js (App Router)
Supabase (Postgres + Realtime)
Supabase Auth + RLS
Tailwind CSS + shadcn/ui
Deployment (Vercel)

⚔️ Competition

  • 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.

🚧 Roadblocks and Potential Solutions

  1. Realtime correctness and race conditions
    • Add optimistic locking, last-updated checks, or a simple “locked by” field for staff actions.
  2. Security and privacy
    • Keep minimal student data in MVP, then add Supabase Auth + RLS role policies per course/group.
  3. Adoption friction
    • Default presets, very short intake, one-click moderation actions, and fast search-first UX.

The Team

  • Project Manager: Shreya S Ramani
  • Industry Mentor: TBD
  • Participant 1: Kevin Arputharaj
  • Participant 2: Polina Maidanova
  • Participant 3: Madhav Suri
  • Participant 4: Diya Rautela

Setup Instructions

  1. Make sure the following are installed:
  • Node.js

If it is not installed:

  1. 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
    
  2. Install root dependencies:

    npm install
    
  3. 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

  1. To run frontend and backend separately:
    npm --prefix client run dev
    
    node server/server.js
    

About

D.I.Y.A. is a structured office-hours queue and feedback platform designed for high-volume help sessions. The core idea is simple: make requests consistent, reduce duplicates, and help staff prioritize the biggest blockers in real time.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages