ClassForge generates syllabus-based question papers from text and image inputs through an Express service.
Teachers often begin with a syllabus screenshot or unstructured topic list rather than a clean question database. ClassForge accepts that material, builds a question-paper prompt and sends it to Gemini. The generated paper is a draft for subject review, not an independently verified assessment.
Preview · Quick start · Architecture · Development · Contributing
Teacher input accepts a syllabus or uploaded source images. This capture shows the form before any provider request.
ClassForge application landing page
The application entry page introduces the question-generation workflow and teacher/student navigation.
| Workflow | Result |
|---|---|
| Supply a syllabus | Accept text or images through the teacher workflow. |
| Generate a paper | Build a structured prompt and call Gemini through Express. |
| Review the draft | Inspect topic coverage, question wording and the requested marking pattern. |
Install Node.js and npm. Configure Gemini access and the browser Firebase project. The current server uses a hard-coded provider key instead of reading its key from the environment; correct that before exposing the service.
From a fresh checkout:
git clone https://github.com/ryash14/ClassForge.git
cd ClassForge
npm install
npm startThe server listens on port 2000. Configure Gemini access and browser Firebase settings. The current server contains a hard-coded provider key rather than reading it from .env; credential externalization and rotation are required before deployment. Generated questions require subject review. The package test command is a placeholder and does not validate the application.
- Open the teacher workflow and supply syllabus text or images.
- Express receives the multipart request and prepares image parts.
- The generation route supplies the syllabus and paper structure to Gemini.
- The browser displays the generated question paper for inspection.
sequenceDiagram
participant T as Teacher browser
participant E as Express
participant U as Upload storage
participant G as Gemini
T->>E: Syllabus text and images
E->>U: Save multipart uploads
E->>E: Build structured paper prompt
E->>G: Prompt and image parts
G-->>E: Generated question paper
E-->>T: Draft for subject review
One Express process serves the static pages and generation endpoints. Multer writes temporary uploads; the server converts image files into provider inputs. Firebase-related browser pages support the surrounding teacher/student flow.
The prompt specifies question counts and marks, but prompt instructions alone do not guarantee syllabus coverage, difficulty or correctness. Uploaded files and model output require explicit validation in a deployment.
Stack: Node.js · Express · Gemini API · Multer · Firebase browser integration · Tailwind CSS.
There is no complete automated verification command documented for this application. Start the affected component, use a small synthetic input and inspect its output before changing integrations. The contribution guide describes the evidence expected in a pull request.
Report reproducible bugs or propose changes through GitHub Issues. Include the relevant environment and a small example rather than private datasets or credentials. See contributing, security reporting and the code of conduct.
MIT. Existing third-party notices remain applicable.

