Jigao is a collaborative, AI enhanced examination platform designed for modern educators and learners who demand both flexibility and integrity. Unlike traditional rigid quiz tools, Jigao bridges the gap between honest, peer-to-peer learning and secure, proctored assessments.
Built for adaptability, Jigao allows educators to create dynamic question sets, collaborate with co-teachers, manage access permissions, and conduct exams in three distinct modes : Friendly, Protected, and Public each tailored for different trust levels and monitoring requirements.
Backend : Golang, Chi Router, pgx (PostgreSQL), Gorilla WS, Zerolog
Frontend : React 19, Vite, React Router v7, React Query, Tailwind, Shadcn
Landing Page : Nextjs
- Creating Empty Question Set
- Deleting Question Set
- Updating Question Set Properties
- Filtering sets
- Created By
- Visibility
- Searching Sets
- use @ to get sets created by persons
- search title text
- Sorting Sets
- Last Modified
- Visibility
-
Share Access of a Question Set with other User
- it gives Access to managing exams under this question set also.
- Send Invite by User’s email
Use Case : Two or more teacher can collaboratively build a question set, be controller of exams, monitor students exam etc.
- Add new question to a set . Currently 4 types that covers most.
- Multiple Choice Questions ( Single Correct Answer) Auto Gradable
- Fill In the Blanks ( Multiple Correct answer acceptance) Auto Gradable
- True False Auto Gradable
- Short Question Answer Not Auto Gradable
- Remove a question
- Edit Question Properties (Question Text, Difficulty, Choices, Answer Explanation, Reordering)
group of honest learners (ideally 2-5 people) who all have access to a particular question set. Now they want to conduct an exam among themselves. As they all have question set access they can view the questions if they want (that’s not fair though) but it creates a same page understanding between them.
- Only Users having set access can attend
- No monitoring system, so everyone is participant
- Two types of user role :
- Controller : Monitors Exam (Users who have set access)
- Participant : Attend Exam ( Users invited or join request accepted by any controller to attend exam)
- Participants are invited by monitors via mentioning user(email)
- Participants can send Exam Join Request from exam page and Request can be accepted by any controller.
(almost same as Protected Exams, Roles are same)
- any one can join (no request system or invite system)
- Participant leaving Exam Tab Count
- Participant Using operating system (get the idea of participant using desktop or not)
- participant’s window size
- participant’s screen share view (no persistent recording)
- participant’s web cam view (no persistent recording)
- Practice Test for individuals who has access to a set or created one
- not shared between multiple users
- Question set generation from pdf or prompts
- In a question set AI assistant can add or edit questions by following prompt instructions (no access to remove)
- Grading Non deterministic questions like short question based on estimated answer or general knowledge
-
Google Login Flow (OAuth Flow)
(currently connected with clerk auth
Migration files are inside migrations/ in root. Using Goose for migration. Need to set environment variables before running Goose.
# Envs for migrations
GOOSE_DRIVER=postgres
GOOSE_DBSTRING=<DBSTRING>
GOOSE_MIGRATION_DIR=./migrations
# Create a new migration
goose create migration_name sql
# Run migrations up
goose up
# Rollback migrations
goose down