Skip to main content

Overview

The Studio is the administrative heart of PyqDeck. It allows editors and admins to manage the academic hierarchy, process papers, and monitor system health.
  • URL: /studio
  • Access Control: Restricted to editor and admin roles via Next.js middleware and backend authorize middleware.

Core Management Modules

1. Universities

  • Page: /studio/universities
  • Actions: List, Create, Edit, Delete (soft), and Search universities.
  • Bulk Import: Support for importing university lists from JSON/CSV.

2. Branches

  • Page: /studio/branches
  • Actions: Manage academic branches/departments. Must be linked to a University.

3. Semesters

  • Page: /studio/semesters
  • Actions: Define the number of semesters for each branch.

4. Subjects & Offerings

  • Pages: /studio/subjects, /studio/offerings
  • Logic: Subjects are defined globally, while “Offerings” link them to specific university/branch/semester combinations with specific regulations (e.g., C-Scheme).

5. Syllabus Management

  • Page: /studio/syllabus
  • Actions: Build the syllabus structure (Modules and Topics) for each subject offering. This is critical for mapping questions to specific parts of the curriculum.

6. User Management

  • Page: /studio/users
  • Actions: View all synced users and manage their internal roles (normal, editor, admin).

Operational Modules

Analytics

  • Page: /studio/analytics
  • Metrics: Track paper views, question search popularity, and user growth.

AI Configuration

  • Page: /studio/settings
  • Actions: Configure AI providers (Gemini, OpenAI) for automated question parsing and solution generation.

Technical Implementation

  • Data Tables: Built using shadcn/ui Table component with support for pagination and filtering.
  • Forms: Managed with react-hook-form and validated via Zod schemas.
  • State: Mix of server-side data fetching (for lists) and client-side state for modals and forms.
  • Layout: Uses a specialized MainLayoutWrapper to hide the global header and show the Studio sidebar.