snowy-complete

byuser

Build a complete, production-ready **AI Exam Generator & Examination Platform** with a premium iOS-inspired **Liquid Glass / Glassmorphism UI**. Make it responsive for desktop, tablet and mobile, with Light/Dark/System themes, smooth animations, modern typography and professional enterprise styling. ## CORE PURPOSE Admin can upload ANY supported document or enter any text/topic. AI analyzes the content and automatically generates a professional exam. The system must support IT training but must also work with general educational/professional content. ## AUTHENTICATION Use simple **User + PIN** login. No email/password for normal users. Roles: * ADMIN * USER User fields: username, secure PIN hash, role, status, created date, last login. Features: * Login * Logout * Protected routes * Session management * Admin-only pages * Active/Inactive users * Reset PIN * Never expose raw PINs Demo accounts may be provided: Admin: admin / 1234 User: demo / 1111 Clearly mark demo credentials as configurable. ## ADMIN NAVIGATION Dashboard AI Generator Question Bank Exams Users Results Analytics Settings ## ADMIN DASHBOARD Show: Total Users Total Exams Total Questions Completed Exams Average Score Pass Rate Recent Exams Recent AI Generations Recent Activity Performance charts ## AI EXAM GENERATOR Create a prominent AI Generator page. Input methods: 1. DOCUMENT UPLOAD Support PDF, DOC, DOCX, TXT, PPT, PPTX, CSV, XLSX and images with OCR where available. Provide drag-and-drop upload. 2. TEXT INPUT Large text/topic editor for manually entering or pasting content. After input, AI should: * Extract text * Analyze content * Identify topics/subtopics * Identify concepts, definitions, procedures and examples * Generate questions * Check accuracy * Detect duplicates * Add explanations * Add source references ## EXAM SETTINGS Allow admin to choose: Questions: 10, 20, 30, 40, 50, 75, 100, Custom Difficulty: Easy / Medium / Hard / Mixed Question Types: MCQ True/False Fill in the Blank Short Answer Scenario Based Troubleshooting Matching Multiple Select Allow difficulty distribution customization. Passing score: configurable percentage. Time: No Limit / 10 / 20 / 30 / 45 / 60 minutes / Custom Options: Randomize questions Randomize answers Prevent duplicates ## AI QUESTION FORMAT Every question should contain: Question Type Difficulty Topic Options when applicable Correct Answer Explanation Source Document Source Page/Section when available Marks Tags Status Example: Question: What is the primary purpose of DHCP? A. Resolve domain names B. Automatically assign IP configuration C. Manage printers D. Encrypt traffic Correct: B Explanation: DHCP automatically provides network configuration. Difficulty: Easy Topic: Networking Marks: 1 ## AI QUALITY CONTROL AI must check: * Incorrect answers * Multiple correct answers * Ambiguous wording * Poor grammar * Duplicate/similar questions * Unsupported information * Question difficulty * Distractor quality Flag questionable questions for review. If source material cannot support the requested number of questions, DO NOT create filler questions. Tell admin how many high-confidence questions were generated and ask whether general domain knowledge may be used. ## QUESTION REVIEW Show question list on left and editor on right. Admin can: Edit Approve Reject Delete Regenerate Approve All Editable fields: Question, type, options, correct answer, explanation, difficulty, topic, marks and tags. ## QUESTION BANK Searchable and filterable by: Topic Difficulty Type Source Status Tags Statuses: Draft Approved Rejected Archived Actions: Edit Duplicate Delete Preview Add to Exam Use semantic duplicate detection and show possible duplicate questions. ## EXAM BUILDER Create Exam with: Title Description Instructions Questions Duration Passing Score Question Selection Availability Attempt Limit Result Visibility Questions can come from: AI-generated questions Question Bank Manual questions Ordering: Random / Manual Exam status: Draft / Published / Closed / Archived ## ASSIGN EXAMS Admin can assign exams to: All users Selected users User groups Show assigned, pending and completed status. ## USER DASHBOARD After User + PIN login show: Welcome message Available Exams Pending Exams Completed Exams Previous Results Exam card: Exam Name Question Count Duration Passing Score Status START EXAM button Users cannot access admin functions. ## EXAM INTERFACE Create a clean distraction-free examination interface. Show: Exam title Question X of Y Progress bar Question Answers Previous Next Mark for Review Review Answers Submit Automatically save answers periodically so temporary connection problems do not lose responses. ## TIMER If enabled, show countdown timer. Warnings at: 10 minutes 5 minutes 1 minute When time reaches zero, automatically submit. ## ANSWER REVIEW Before submission show: Answered Unanswered Marked for Review Question navigation grid with visual status. Require confirmation before final submission. ## AUTOMATIC SCORING After submission calculate: Total Questions Correct Incorrect Unanswered Marks Percentage Pass/Fail Time Used Store every attempt separately. ## RESULT PAGE Display: EXAM COMPLETED Score Percentage Pass/Fail Correct Incorrect Unanswered Time Used Admin controls whether users can see: Correct answers Explanations Detailed results Optional: Retake Exam View Answers Back to Dashboard ## ANALYTICS Admin analytics should show: Average Score Highest Score Lowest Score Pass Rate Failure Rate Average Completion Time Score Distribution Question Performance Topic Performance Exam Performance User Performance Show which questions/topics have high error rates. ## AI PERFORMANCE REPORT Generate an AI-assisted report from actual results: Overall performance Strong topics Topics needing improvement Suggested learning areas Do not invent performance data. ## USER MANAGEMENT Admin can: Create User Edit User Activate/Deactivate Reset PIN Delete Columns: Username Role Status Assigned Exams Completed Exams Average Score Last Login ## EXAM MANAGEMENT Admin can: View Edit Duplicate Publish Close Archive Delete Show: Exam name Question count Assigned users Attempts Average score Status ## DOCUMENT SOURCE TRACEABILITY Every generated question should retain: Document name Page number when available Section Source/reference Provide “View Source” so admin can verify the question against the uploaded material. ## AI ASSISTANT Add a floating round glass AI assistant. It should understand the current admin page and provide actions such as: Create exam Generate more questions Explain question Improve question Make harder Make easier Create scenarios Create troubleshooting questions Find duplicates Analyze results ## EXPORT Admin can export: Exam PDF Question PDF Answer Key Results PDF Results CSV Question Bank CSV Printable exam must NOT reveal answers. Generate separate answer key. ## DATABASE Use PostgreSQL/Supabase or equivalent. Tables: USERS DOCUMENTS QUESTIONS EXAMS ASSIGNMENTS ATTEMPTS RESULTS AUDIT_LOGS Store relationships properly and use secure database rules. ## SECURITY Implement: Secure PIN hashing Role-based access Protected APIs Input validation File validation Upload limits Rate limiting Session expiration Database security Audit logging AI API keys must remain server-side and never be exposed in frontend code. ## UI Premium Liquid Glass / iOS aesthetic: Glass cards Blur/transparency Rounded panels Soft shadows Subtle gradients Smooth transitions Micro-interactions Modern icons Professional charts Accessible contrast Avoid excessive decoration. AI Generator should be the visual centerpiece. ## LANDING PAGE Hero title: **AI EXAM GENERATOR** Subtitle: “Turn Any Document Into a Professional Exam” Buttons: CREATE EXAM LOGIN Feature cards: Any Document AI Question Generation Multiple Question Types Smart Analytics Simple User + PIN Login ## LOADING STATES During AI processing show: Analyzing document... Extracting content... Identifying topics... Generating questions... Checking quality... Removing duplicates... Preparing exam... Then show: ✓ Exam generated successfully. ## ERROR HANDLING Handle: Invalid file Unsupported format Large file Empty content AI failure Network failure Database failure Session expiration Submission failure Never lose saved exam answers. ## IT CONTENT Optimize AI generation for: Windows Windows Server Active Directory Microsoft 365 Networking TCP/IP DNS DHCP VPN Wi-Fi Routers Switches Firewalls Printers Hardware SSD/HDD/RAM/CPU BIOS/UEFI CCTV IP Cameras VoIP Help Desk Troubleshooting Cybersecurity Backup Cloud But do not restrict the platform to IT. ## TECHNOLOGY Preferred: React / Next.js Tailwind CSS Lucide icons PostgreSQL/Supabase Secure backend API LLM API through server-side environment variables Appropriate document parsers/OCR The application must be a REAL interconnected application, not static mockups. All major buttons must work. FINAL FLOW: ADMIN: Login → Dashboard → Upload Document/Enter Text → Configure Exam → AI Generate → Quality Check → Review → Approve → Question Bank → Build Exam → Preview → Publish → Assign Users → Analytics USER: User + PIN → Dashboard → Assigned Exam → Start → Answer → Review → Submit → Auto Score → Result Build the complete system with functional authentication, database persistence, AI generation, document processing, question management, exam creation, exam assignment, exam taking, scoring, results, analytics and exports.

No preview

Comments (0)

No comments yet. Be the first!

System Requirements

System Requirement Document
Page 1 of 5

System Requirements Document for snowy-complete

1. Introduction

snowy-complete is a production-ready AI Exam Generator & Examination Platform. It exists so that an administrator can turn any supported document, text, or topic into a professional, quality-checked, assignable exam — and so that learners can sit that exam in a clean, distraction-free interface and receive an automatically scored result.

The product serves two audiences and two jobs:

  • Training and certification authors (Admin) who need to convert existing material — PDF, DOC, DOCX, TXT, PPT, PPTX, CSV, XLSX, and images via OCR where available — or a plainly typed topic, into exam-ready questions with explanations, difficulty, marks, tags, and verifiable source references.
  • Learners and staff being assessed (User) who authenticate with a username and PIN, see only the exams assigned to them, take an exam with automatic answer saving, and receive a stored, per-attempt result.

The platform is explicitly optimized for IT training content (Windows, Windows Server, Active Directory, Microsoft 365, networking, hardware, cybersecurity, help desk and similar domains) but is not restricted to IT — general educational and professional content must generate equally well.

The delivery target is a real, interconnected application, not static mockups: authentication, database persistence, AI generation, document processing, question management, exam creation, exam assignment, exam taking, scoring, results, analytics and exports must all function end to end, with all major buttons working.

Page 2 of 5

2. System Overview

snowy-complete is a single first-party web application with a secure backend, a PostgreSQL/Supabase-compatible database, and a server-side LLM integration. The presentation layer is a premium Liquid Glass / iOS-inspired glassmorphism interface, responsive across desktop, tablet and mobile, with Light/Dark/System themes, smooth animations, modern typography and professional enterprise styling.

Current delivery. All accepted behavior is current. The application owns identity (username + PIN), persistence, generation orchestration, exam lifecycle, scoring, analytics and export generation.

Actors.

  • Admin — explicit source-named ADMIN role. Owns the authoring pipeline end to end.
  • User — explicit source-named USER role. Owns exam-taking only, and cannot access admin functions.

Non-persona participants. The LLM provider (server-side only), the document parsers and OCR engine, the PostgreSQL/Supabase database, and the PDF/CSV export renderer are typed non-persona actors: they perform work on behalf of an accepted human actor but are never a destination and never a persona.

Ownership. The Landing and Login surfaces are anonymously reachable. Every other destination is role-restricted: Dashboard, AI Generator, Question Review, Question Bank, Exam Builder, Exams, Assign Exams, Users, Results, Analytics, Exports and Settings are Admin-only; My Dashboard, Exam Interface and Result are User-only. The floating AI assistant is a cross-page Admin component, not a destination.

Navigation. The Admin sidebar presents the eight explicit navigation destinations — Dashboard, AI Generator, Question Bank, Exams, Users, Results, Analytics, Settings. Question Review, Exam Builder, Assign Exams and Exports are task-focused Admin workspaces entered from the destination that owns the work in progress (generation, exam authoring, exam management, and record collections respectively).

Narrow exclusions. No email/password login for normal users; only username + PIN. No filler questions when source material is insufficient. No answer exposure in printable exam output. No invented performance data in the AI performance report. No client-side AI API keys. No user access to admin functions.

Page 3 of 5

2a. Product Interpretation and Delivery Boundary

Everything described in this document is current delivery. There is no deferred release, no provider-owned surface, and no headless-only path: the product is a first-party application with first-party pages and a first-party backend.

Access boundary. The Landing page and the Login surface are reachable without identity. Login is the single access boundary for both roles — it owns first-use enrollment (establishing a username and PIN) and returning verification, and it is the only surface that may establish access to the protected parts of the application. No protected destination owns the interaction that grants access to itself. After verification, the application routes by role: an Admin lands in the admin-only area, a User lands on their own dashboard.

Identity rationale. Application-owned identity is a confirmed delivery fact, and it is independently indispensable: a learner's attempts, answers, scores and results must remain bound to the correct person across sessions and devices, and an Admin's generated questions, exams and assignments must remain privately owned and resumable. Session continuity is therefore required, and sessions expire.

Permission boundary. Role separation is explicit in the source (Admin-only pages; users cannot access admin functions). Beyond the ADMIN/USER role gate, no differentiated visibility or permission model is specified, and none is introduced.

Demo configuration. Demo accounts (admin / 1234, demo / 1111) may be provided and must be clearly marked in the interface and in Settings as configurable, not fixed product constants.

Boundary of behavior not added. Nothing here introduces adjacent account management (no self-service password reset by email, no social login, no billing, no user-created courses), no notification system, and no exam-authoring capability beyond what the source states.

Page 4 of 5

2c. Page Content and Component Coverage

Landing

  • Information and state — Anonymous public entry. Hero title AI EXAM GENERATOR; subtitle "Turn Any Document Into a Professional Exam"; primary action CREATE EXAM; secondary action LOGIN. Feature cards: Any Document, AI Question Generation, Multiple Question Types, Smart Analytics, Simple User + PIN Login. No session state required; when an authenticated session already exists, the entry actions route to the role's home instead of re-authenticating.
  • Primary actions — CREATE EXAM (begins the Admin generation journey through the Login gate when unauthenticated); LOGIN (opens the Login surface).
  • Supporting actions — Theme toggle (Light / Dark / System); feature cards are descriptive only and do not create destinations; responsive reflow from multi-column desktop to stacked mobile.
  • Domain entities — None owned; presents product capability statements only.
  • Component responsibilitiesHeroGlassPanel (title, subtitle, glass surface, gradient wash), EntryActionPair (CREATE EXAM, LOGIN), FeatureCardGrid (five named cards), ThemeToggle, GlassBackdrop (blur/transparency layer).
  • StatesLoading: static content, no async fetch; hero renders immediately. Empty: not applicable. Success: navigation to Login or the role home. Error: none owned. Recovery: none required.

Login

  • Information and state — The single User + PIN access boundary. Fields: username and PIN. Two intents share this surface: first-use enrollment (establish username + PIN) and returning verification. Role is resolved server-side from the stored user record; the surface never asks the user to choose a role. Demo credentials, when enabled, are displayed with an explicit configurable marker.
  • Primary actions — Verify credentials and establish a session; enroll a first-use identity; route by role to the Admin area or My Dashboard.
  • Supporting actions — Reveal/hide PIN entry (never logging or echoing the raw PIN); switch between enrollment and verification; return to Landing; display demo credential hint when enabled.
  • Domain entities — USERS (username, secure PIN hash, role, status, created date, last login). AUDIT_LOGS receives the authentication outcome.
  • Component responsibilitiesGlassAuthCard, UsernameField, PinField (masked, autocomplete-safe), IntentSwitch (first-use / returning), SubmitAction, InlineErrorRegion, DemoCredentialNotice.
  • StatesLoading: submit button enters a pending state and duplicate submits are suppressed. Empty: empty-field validation on submit. Success: session established, last login updated, role-based redirect. Error: invalid username or PIN (generic message that does not disclose which field failed); inactive user blocked with a distinct, non-credential-revealing message. Recovery: retry after correction, subject to rate limiting; no raw PIN is ever written to logs, responses or storage.

Dashboard

  • Information and state — Admin home. Statistic tiles: Total Users, Total Exams, Total Questions, Completed Exams, Average Score, Pass Rate. Panels: Recent Exams, Recent AI Generations, Recent Activity. Performance charts rendered from stored data.
  • Primary actions — Open a recent exam; open a recent AI generation; navigate into AI Generator, Question Bank, Exams, Users, Results, Analytics or Settings.
  • Supporting actions — Chart range/hover inspection; refresh; empty-state navigation prompts.
  • Domain entities — USERS, EXAMS, QUESTIONS, ATTEMPTS, RESULTS, DOCUMENTS, AUDIT_LOGS (activity feed).
  • Component responsibilitiesStatTileRow (six tiles), PerformanceChartSet, RecentExamsList, RecentGenerationsList, RecentActivityFeed, AdminSidebar (eight navigation destinations), AiAssistantOrb.
  • StatesLoading: skeleton tiles and chart placeholders. Empty: zero-state copy with a direct link to AI Generator when no exams exist. Success: tiles and charts reflect persisted aggregates. Error: a failed aggregate shows a retry affordance rather than fabricated numbers. Recovery: retry after database or network failure.
Page 5 of 5

AI Generator

  • Information and state — The visual centerpiece. Two intake methods: document upload (drag-and-drop; PDF, DOC, DOCX, TXT, PPT, PPTX, CSV, XLSX and images with OCR where available) and a large text/topic editor for manual entry or pasting. Below intake, the exam settings panel (question count, difficulty, difficulty distribution, question types, passing score, time limit, randomization and duplicate options). During generation, a staged progress region shows the seven processing messages in order, ending in ✓ Exam generated successfully.
  • Primary actions — Drop or select a document; type/paste content or a topic; configure exam settings; run AI generation; disclose and resolve a high-confidence shortfall.
  • Supporting actions — Remove/replace an uploaded file; clear the editor; set custom question count, custom duration, custom difficulty distribution; toggle Randomize questions, Randomize answers, Prevent duplicates; view the source document after ingestion.
  • Domain entities — DOCUMENTS (name, type, extracted text, page/section index), generated QUESTION drafts, EXAMS settings payload, AUDIT_LOGS.
  • Component responsibilitiesDropZoneUploader (format validation, size feedback, OCR indication), TextTopicEditor, ExamSettingsPanel, DifficultyDistributionControl, QuestionTypeMultiSelect (eight types), GenerationProgressStepper (seven labeled stages), HighConfidenceShortfallDialog (reports the exact high-confidence count and asks whether general domain knowledge may be used), AiAssistantOrb.
  • StatesLoading: the seven-stage sequence — Analyzing document…, Extracting content…, Identifying topics…, Generating questions…, Checking quality…, Removing duplicates…, Preparing exam… — followed by ✓ Exam generated successfully. Empty: no file and no text → generation disabled with guidance. Success: generation completes and the

No completed page designs yet.

Completed design pages will appear here when they are ready to preview.

Landing: Review features
Landing: Choose CREATE EXAM
Login: Enter credentials
Login: Enroll first-use identity
Login: Retry after invalid PIN
Login: 1. Sign in
Dashboard: 2. Review stats and recents
AI Generator: Upload source document
AI Generator: Enter topic text
AI Generator: Configure exam settings
AI Generator: 1. Run AI generation
AI Generator: 2. Resolve shortfall with domain knowledge
AI Generator: Confirm generated exam
Question Review: 1. Review generated questions
Question Review: Approve question
Question Review: Reject question
Question Review: 2. Regenerate question
Question Bank: 1. Search questions
Question Bank: Filter by status
Question Bank: 2. Edit question
Question Bank: 3. Duplicate question
Question Bank: Add question to exam
Exam Builder: Define exam details
Exam Builder: Select questions
Exam Builder: Set passing rules
Exams: View exam list
Exams: Publish exam
Exams: Duplicate exam
Exams: Close exam
Exams: Archive exam
Assign Exams: Select users and groups
Assign Exams: Assign exam
Users: Create user
Users: Edit user
Users: Reset user PIN
Users: Deactivate user
Results: View stored attempts
Analytics: Inspect performance charts
Analytics: Generate AI report
Exports: Export results CSV
Exports: Export exam PDF
Settings: Configure result visibility
Settings: Set demo credentials

No completed page designs yet.

Completed design pages will appear here when they are ready to preview.

Landing: Review features
Landing: Choose CREATE EXAM
Login: Enter credentials
Login: Enroll first-use identity
Login: Retry after invalid PIN
Login: 1. Sign in
Dashboard: 2. Review stats and recents
AI Generator: Upload source document
AI Generator: Enter topic text
AI Generator: Configure exam settings
AI Generator: 1. Run AI generation
AI Generator: 2. Resolve shortfall with domain knowledge
AI Generator: Confirm generated exam
Question Review: 1. Review generated questions
Question Review: Approve question
Question Review: Reject question
Question Review: 2. Regenerate question
Question Bank: 1. Search questions
Question Bank: Filter by status
Question Bank: 2. Edit question
Question Bank: 3. Duplicate question
Question Bank: Add question to exam
Exam Builder: Define exam details
Exam Builder: Select questions
Exam Builder: Set passing rules
Exams: View exam list
Exams: Publish exam
Exams: Duplicate exam
Exams: Close exam
Exams: Archive exam
Assign Exams: Select users and groups
Assign Exams: Assign exam
Users: Create user
Users: Edit user
Users: Reset user PIN
Users: Deactivate user
Results: View stored attempts
Analytics: Inspect performance charts
Analytics: Generate AI report
Exports: Export results CSV
Exports: Export exam PDF
Settings: Configure result visibility
Settings: Set demo credentials