# Academic setup

Create the academic structure that attendance, admissions, examinations and timetables share.

Category: Academics
Guide: https://avkul.in/docs/guides/module-academic/
Guided sample demo: https://avkul.in/docs/demo/module-academic/
Snapshot: 11 October 2026

## Features

- Academic sessions
- Classes and sections
- Subject catalogue
- Current session
- Year-end close and reopen

## Access and setup

Intended access: Assigned account with the required permissions
- An assigned school account with the required permissions.
- The academic, student or staff setup used by this workflow.

Permission keys: settings:view, settings:create, settings:update, settings:delete, student:view, settings:manage

## Workflow

1. Create an academic session with dates.
2. Add classes and their sections.
3. Create subjects and select the current session.
4. Close the books only after the year-end review.

## Fields and controls

- name (string, declared required)
- startDate (string, declared required)
- endDate (string, declared required)
- isCurrent (boolean, optional)
- sessionId (string, declared required)
- numericLevel (number, optional)
- streamId (string, optional)
- sortOrder (number, optional)
- classId (string, declared required)
- capacity (number, optional)
- classTeacherId (string, optional)
- roomNo (string, optional)
- code (string, optional)
- type (string, optional)
- isElective (boolean, optional)
- credits (number, optional)
- locked (boolean, declared required)
- reason (string, optional)

## Current limits

- Session ownership and closed-year checks apply to connected workflows.

## Actual application access

- https://avkul.in/en/school/academics

## API reference

- GET /api/v1/academic/sessions — List Sessions; settings:view
- POST /api/v1/academic/sessions — Create Session; settings:create
- PATCH /api/v1/academic/sessions/:id — Update Session; settings:update
- POST /api/v1/academic/sessions/:id/set-current — Set Current; settings:update
- DELETE /api/v1/academic/sessions/:id — Remove Session; settings:delete
- GET /api/v1/academic/classes — List Classes; student:view
- POST /api/v1/academic/classes — Create Class; settings:create
- PATCH /api/v1/academic/classes/:id — Update Class; settings:update
- DELETE /api/v1/academic/classes/:id — Remove Class; settings:delete
- GET /api/v1/academic/sections — List Sections; student:view
- POST /api/v1/academic/sections — Create Section; settings:create
- PATCH /api/v1/academic/sections/:id — Update Section; settings:update
- DELETE /api/v1/academic/sections/:id — Remove Section; settings:delete
- GET /api/v1/academic/subjects — List Subjects; student:view
- POST /api/v1/academic/subjects — Create Subject; settings:create
- PATCH /api/v1/academic/subjects/:id — Update Subject; settings:update
- DELETE /api/v1/academic/subjects/:id — Remove Subject; settings:delete
- GET /api/v1/academic/sessions/locks — Every academic year and whether its books are closed; settings:view
- PATCH /api/v1/academic/sessions/:id/lock — Close or re-open an academic year's books; settings:manage

## Demo access

No login is required for the guided sample demo. Its fictional records and actions stay in this browser tab; they do not modify ERP records or send messages/payments. An assigned account is required for the actual ERP links.

Source inventory checked on 11 October 2026. This source inventory is not a certification of every external provider or device flow.
