LearnSpace: full-stack educational whiteboard platform
Node.js/Express backend + vanilla JS frontend. Features: real-time collaborative whiteboard (SSE), multi-page support, LaTeX formulas, shapes/connectors, coordinate systems, number lines, compass, zoom/pan, Catmull-Rom pencil smoothing, ruler/protractor with rotation & resize controls, minimap navigation overlay, auto-measurements, multi-page thumbnails sidebar, PNG export, page templates. Student/teacher workflows: classes, assignments, library, dashboard. Mobile responsive. SQLite (better-sqlite3). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
/* ── LearnSpace shared constants ───────────────────────────────────────── */
|
||||
|
||||
exports.SESSION_MODES = new Set(['exam', 'practice', 'repeat', 'ct', 'topic', 'random']);
|
||||
|
||||
exports.SESSION_STATUS = {
|
||||
IN_PROGRESS: 'in_progress',
|
||||
COMPLETED: 'completed',
|
||||
ABANDONED: 'abandoned',
|
||||
};
|
||||
|
||||
exports.ROLES = {
|
||||
ADMIN: 'admin',
|
||||
TEACHER: 'teacher',
|
||||
STUDENT: 'student',
|
||||
};
|
||||
|
||||
exports.NOTIFICATION_TYPES = {
|
||||
ASSIGNMENT: 'assignment',
|
||||
SESSION: 'session',
|
||||
ACHIEVEMENT: 'achievement',
|
||||
SYSTEM: 'system',
|
||||
JOIN: 'join',
|
||||
SUBMISSION: 'submission',
|
||||
CHALLENGE: 'challenge',
|
||||
DAILY_GOAL: 'daily_goal',
|
||||
};
|
||||
|
||||
exports.SUBJECTS = {
|
||||
BIO: 'bio',
|
||||
CHEM: 'chem',
|
||||
MATH: 'math',
|
||||
PHYS: 'phys',
|
||||
};
|
||||
|
||||
// Combo bonus XP thresholds: [minCombo, bonusXP]
|
||||
exports.COMBO_BONUSES = [
|
||||
[10, 75],
|
||||
[5, 30],
|
||||
[3, 15],
|
||||
];
|
||||
Reference in New Issue
Block a user