primakov 25511f37d1 fix typo
polling interval from config

qrcode as link

courses list page

journal.pl as name

fix package-lock

lesson missed students

merge students list

reset version

1.0.0

styled page of visits

rename students

fake students, delete comments

Обновил Readme

Squashed commit of the following:

commit ebc511e36b84c077f7bc029540ead1e3c58c49ab
Author: Alexei <adu864222@gmail.com>
Date:   Tue Mar 19 00:23:30 2024 +1000

    fake students, delete comments

commit 018582d16c581663103e5fded99cc10fca400532
Author: Alexei <adu864222@gmail.com>
Date:   Mon Mar 18 23:13:01 2024 +1000

    rename students

commit e53922d7fd89cf371c90e167c6486b36b0789036
Author: Alexei <adu864222@gmail.com>
Date:   Sun Mar 17 00:45:11 2024 +1000

    styled page of visits

Обновил Readme

Squashed commit of the following:

commit ebc511e36b84c077f7bc029540ead1e3c58c49ab
Author: Alexei <adu864222@gmail.com>
Date:   Tue Mar 19 00:23:30 2024 +1000

    fake students, delete comments

commit 018582d16c581663103e5fded99cc10fca400532
Author: Alexei <adu864222@gmail.com>
Date:   Mon Mar 18 23:13:01 2024 +1000

    rename students

commit e53922d7fd89cf371c90e167c6486b36b0789036
Author: Alexei <adu864222@gmail.com>
Date:   Sun Mar 17 00:45:11 2024 +1000

    styled page of visits

JRL-51 breadcrumbs + fonts

1.1.0

1.2.0

correct width h1 on page of visits students

styled card of course
2024-03-24 11:32:17 +03:00

88 lines
1.5 KiB
TypeScript

interface TokenData {
exp: number;
iat: number;
auth_time: number;
jti: string;
iss: string;
aud: string[];
sub: string;
typ: string;
azp: string;
nonce: string;
session_state: string;
acr: string;
"allowed-origins": string[];
realm_access: Realmaccess;
resource_access: Resourceaccess;
scope: string;
sid: string;
email_verified: boolean;
name: string;
preferred_username: string;
given_name: string;
family_name: string;
email: string;
}
interface Resourceaccess {
journal: Realmaccess;
}
interface Realmaccess {
roles: (string | "teacher")[];
}
export interface UserData extends TokenData {
sub: string;
gravatar: string;
email_verified: boolean;
attributes: Record<string, string[]>;
name: string;
preferred_username: string;
given_name: string;
family_name: string;
email: string;
}
export type BaseResponse<Data> = {
success: boolean;
body: Data;
};
export interface Lesson {
_id: string;
name: string;
students: User[];
date: string;
created: string;
}
export interface AccessCode {
expires: string;
lesson: Lesson;
_id: string;
created: string;
}
export interface User {
sub: string;
email_verified: boolean;
gravatar: string;
name: string;
groups: string[];
preferred_username: string;
given_name: string;
family_name: string;
email: string;
}
export interface Course {
_id: string;
name: string;
teachers: User[];
lessons: Lesson[];
creator: User;
startDt: string;
created: string;
}