| .. | ||
| .nojekyll | ||
| index.html | ||
| README.md | ||
ClassCharts API JS
A typescript wrapper for getting information from the Classcharts API
Source • Issues • NPM • Discord • TypeDoc • API Docs
Introduction
The ClassCharts API is a typescript wrapper around the ClassCharts API. It allows you to easily make requests to the ClassCharts API without having to worry about the underlying implementation of making requests.
Help
For any help with the library, please join the discord where you can ask questions and get help from the community.
Installation
Requirements
- Node.js 16 or newer
NPM
npm install classcharts-api # npm
yarn add classcharts-api # yarn
pnpm add classcharts-api # pnpm
Logging In
Before making any requests, you must login to the client. This will get you a session ID which will be used for all requests.
Student Client
import { StudentClient } from "classcharts-api";
// Date of birth MUST in the format DD/MM/YYYY
const client = new StudentClient("classchartsCode", "01/1/2000");
await client.login();
Parent Client
import { ParentClient } from "classcharts-api";
const client = new ParentClient("username", "password");
await client.login();
Universal Methods
All the following methods can be used on both the student and parent client. Each example expects the client to be already logged in.
.getStudentInfo
const studentInfo = await client.getStudentInfo();
console.log(studentInfo);
/**
{
success: 1,
data: {
user: {
id: 2339528,
...
}
},
meta: {
session_id: '5vf2v7n5uk9jftrxaarrik39vk6yjm48',
...
}
}
*/
.getActivity
// Dates must be in format YYYY-MM-DD
const activity = await client.getActivity({
from: "2023-04-01",
to: "2023-05-10",
last_id: "12",
});
console.log(activity);
.getFullActivity
// Dates must be in format YYYY-MM-DD
const activity = await client.getFullActivity({
from: "2023-04-01",
to: "2023-05-10",
});
console.log(activity);
.getBehaviour
Gets behaviour for a given date range.
// Dates must be in format YYYY-MM-DD
const behaviour = await client.getBehaviour({
from: "2023-04-01",
to: "2023-05-10",
});
console.log(behaviour);
/**
{
"success": 1,
"data": {
"timeline": [
{
"positive": 426,
...
},
],
...
"meta": {
"start_date": "2023-04-01T00:00:00+00:00",
...
}
}
*/
.getHomeworks
Gets homeworks for a given date range.
// Dates must be in format YYYY-MM-DD
const homeworks = await client.getHomeworks({
from: "2023-04-01",
to: "2023-05-10",
displayDate: 'issue_date' // Can be 'due_date' or 'issue_date'
});
console.log(homeworks);
/**
{
success: 1,
data: [
{
lesson: '7A/Pe1',
...
},
],
meta: {
start_date: '2023-04-01T00:00:00+00:00',
...
}
}
.getLessons
Gets lessons for a specific date.
// Dates must be in format YYYY-MM-DD
const lessons = await client.getLessons({
date: "2023-04-01",
});
console.log(lessons);
/**
{
"success": 1,
"data": [
{
"teacher_name": "Mr J Doe",
...
}
...
],
"meta": {
"dates": [
"2023-05-04"
],
...
}
}
*/
.getBadges
Gets all earned badges.
const badges = await client.getBadges();
console.log(badges);
/**
{
success: 1,
data: [
{
id: 123,
name: 'Big Badge',
...
},
...
],
meta: []
}
*/
.getAnnouncements
Gets all announcements.
const announcements = await client.getAnnouncements();
console.log(announcements);
.getDetentions
Gets all detentions.
const detentions = await client.getDetentions();
console.log(detentions);
.getAttendance
Gets attendance.
const attendance = await client.getAttendance();
console.log(attendance);
Parent Specific Methods
.getPupils
Gets a list of all pupils the parent has access to.
const pupils = await client.getPupils();
console.log(pupils);
/**
[
{
id: 123,
name: 'John Doe',
...
},
...
]
*/
.selectPupil
Selects a pupil to make subsequent requests for.
await client.selectPupil(123);