> ## Documentation Index
> Fetch the complete documentation index at: https://developer.vclasses.net/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# VClasses: Online Education Platform with PDF Assignments

> VClasses is an online education platform for managing PDF-based homework and quizzes, collecting student submissions, and recording grades through a REST API.

VClasses is an online education platform that gives administrators and instructors full control over PDF-based homework and quiz workflows — from distributing assignments to collecting student submissions and issuing grades. This documentation covers everything you need to integrate with the VClasses REST API: authentication, managing homework and quizzes, grading submissions, and handling the full student lifecycle through a consistent set of JSON endpoints.

## Who Is This For?

VClasses serves two primary audiences, each with a distinct role in the platform:

**Administrators and Instructors** use the API to create and publish PDF assignments, monitor student submissions, review answers, and record grades with written feedback. If you are building a back-office dashboard, an LMS integration, or an automated grading pipeline, the admin endpoints are your primary surface.

**Students** interact with the platform to download assignment PDFs, upload their completed work, and check the status of grades and feedback. Student-facing endpoints are designed to be lightweight and focused on the submission lifecycle.

Throughout this documentation, examples and endpoint descriptions will indicate which role each operation targets so you can quickly find what applies to your use case.

## What VClasses Offers

<CardGroup cols={2}>
  <Card title="PDF Homework" icon="file-pdf">
    Create, publish, and manage homework assignments delivered as PDF files. Students download the PDF, complete their work, and submit responses — all tracked through the API.
  </Card>

  <Card title="PDF Quizzes" icon="clipboard-question">
    Run timed or untimed PDF-based quizzes with a dedicated submission pipeline. Quiz results feed directly into the grading workflow so instructors can review and score answers in one place.
  </Card>

  <Card title="Grading & Feedback" icon="star">
    Assign numerical ratings and written comments to individual submissions. The grading API supports partial updates, so you can score and annotate submissions incrementally as you review them.
  </Card>

  <Card title="Submissions Management" icon="inbox">
    Track every student submission across homework and quizzes — filter by class, student, status, or date. Paginated list endpoints make it easy to build review queues and reporting dashboards.
  </Card>
</CardGroup>

## How It Works

The VClasses workflow follows a straightforward three-step cycle for every assignment, whether it is a homework task or a quiz.

<Steps>
  <Step title="Create a class with a PDF assignment">
    An admin or instructor creates a class and attaches a PDF file as the assignment. The API returns a unique assignment ID that students and downstream systems use to reference that piece of work. You can set metadata such as due dates, maximum scores, and visibility flags at creation time.
  </Step>

  <Step title="Students submit their answers">
    Students retrieve the assignment PDF, complete their responses, and POST their submission back to the API. The platform records the submission timestamp, links it to the student's account, and marks the assignment as pending review. Students can check their submission status at any time through the student-facing endpoints.
  </Step>

  <Step title="Admin reviews and grades">
    An administrator or instructor retrieves the list of pending submissions, reviews each one, and calls the grading endpoint to record a numerical rating and optional written feedback. The student's record is updated immediately, and the grade becomes visible to the student through their status endpoint.
  </Step>
</Steps>

## API Basics

All VClasses API endpoints share a common set of conventions that apply to every request you make.

**Base path** — Every endpoint lives under `/api/v3/`. For example, the homework list endpoint is available at `https://app.example.com/api/v3/admin/homeworks`. There are no versioned sub-paths beyond `v3`; the version is embedded in the base path itself.

**Authentication** — All endpoints require a valid Bearer token passed in the `Authorization` header. You obtain your token through the authentication flow described in the [Authentication](/docs/authentication) guide. Tokens are scoped to a role (admin or student), so make sure you are using the correct token for the endpoints you are calling.

**Content negotiation** — You must include the header `Accept: application/json` on every request. The platform serves both an HTML web application and a JSON API from the same domain. Without this header, certain error conditions and redirects will return an HTML page instead of a machine-readable JSON error body, which will break any parsing logic in your integration.

**Pagination** — List endpoints return a standard pagination envelope with `data`, `current_page`, `last_page`, `per_page`, and `total` fields. Pass the `page` query parameter to navigate through result sets.

**HTTP methods** — The API follows REST conventions: `GET` for reads, `POST` for creates and actions (including grading), `PUT`/`PATCH` for updates, and `DELETE` for removal.

<Note>
  All endpoints require a valid Bearer token. Include `Authorization: Bearer <your-token>` on every request. You must also set `Accept: application/json` on every request — without it, the platform may return an HTML redirect instead of a JSON error response, making it difficult to diagnose problems in your integration.
</Note>
