Database Schema
GCMS uses PostgreSQL as its primary data store, hosted on Supabase. This section documents the data model that underpins every feature in the application.
Overview
The schema is centred around three core entities:
users — individual people who can sign in to GCMS
projects — group coursework projects that users belong to
tasks — units of work within a project, assigned to users
These are connected by a many-to-many relationship table (user_projects)
and supported by feature-specific tables for messages, meetings,
notifications, the interactive project board (widgets), shared
project files (files), and AI assistant chat history
(ai_chat_messages).
All tables use UUID primary keys generated by gen_random_uuid(),
which makes IDs unguessable and avoids the need for sequence
synchronisation across environments.