CampusWork utilise SQLite pour le stockage local avec un schéma relationnel normalisé.
Tables Principales :
Table : users
CREATE TABLE users (userId TEXT PRIMARY KEY,
username TEXT UNIQUE NOT NULL,
email TEXT UNIQUE NOT NULL,
password TEXT NOT NULL,
userRole TEXT NOT NULL,
isApproved INTEGER DEFAULT 0,
createdAt TEXT,
updatedAt TEXT
);
Table : projects
CREATE TABLE projects (projectId TEXT PRIMARY KEY,
name TEXT NOT NULL,
description TEXT,
architecture TEXT,
umlUrl TEXT,
prototypeUrl TEXT,
downloadLink TEXT,
status TEXT DEFAULT 'draft',
visibility TEXT DEFAULT 'public',
studentId TEXT,
courseId TEXT,
grade REAL,
createdAt TEXT,
FOREIGN KEY (studentId) REFERENCES students(studentId)
);
commentId TEXT PRIMARY KEY,
content TEXT NOT NULL,
projectId TEXT,
userId TEXT,
createdAt TEXT,
FOREIGN KEY (projectId) REFERENCES projects(projectId),
FOREIGN KEY (userId) REFERENCES users(userId)
;