API Reference — Overview¶
This section documents the public modules, utilities, hooks, and API routes available in Grade Tracker.
Module Index¶
| Module | Location | Description |
|---|---|---|
| Core Types | types/grades.ts |
TypeScript interfaces for Grade, Subject, etc. |
| Storage Utils | utils/storageUtils.ts |
LocalStorage CRUD + cloud sync helpers |
| Encryption | utils/encryption.ts |
AES-256-CBC encrypt / decrypt |
| Export Utils | utils/exportUtils.ts |
CSV and PDF export functions |
| Appwrite Client | lib/appwrite.ts |
Appwrite CRUD wrappers |
| Hooks | hooks/ |
Custom React hooks |
| API Routes | app/api/ |
Next.js server-side API endpoints |
Quick Reference¶
Core Types¶
// A single grade entry
interface Grade {
id: string;
value: number; // 1–6 (Swiss/German scale)
type: GradeType; // "Test" | "Oral Exam" | "Homework" | "Project"
date: string; // ISO 8601
weight: number; // 1.0 or 2.0
}
// An academic subject
interface Subject {
id: string;
name: string;
grades: Grade[];
averageGrade: number;
}
Most-used Utilities¶
// Save subjects to storage (local + optional cloud)
await saveSubjectsToStorage(subjects: Subject[]): Promise<void>
// Load subjects from storage
await getSubjectsFromStorage(): Promise<Subject[]>
// Encrypt any value
encrypt(data: any): string
// Decrypt a previously encrypted string
decrypt(encryptedData: string): any
// Export subjects as CSV
exportToCSV(data, headers, filename): void