Skip to content
Merged

Re 2 #86

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
192 changes: 107 additions & 85 deletions README.md

Large diffs are not rendered by default.

17 changes: 17 additions & 0 deletions docker-compose.override.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Local development only.
#
# Compose loads this file automatically when no -f flags are passed:
# docker-compose up -d -> docker-compose.yml + this file
#
# Production passes explicit -f flags, so this file is never read there:
# docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d
#
# The DEV_* variables let you log in without Shibboleth. They must never
# reach production, where the auth route would fall back to them whenever
# the Shibboleth header is missing.
services:
app:
environment:
- DEV_UTORID=${DEV_UTORID:-}
- DEV_NAME=${DEV_NAME:-}
- DEV_ROLE=${DEV_ROLE:-}
4 changes: 1 addition & 3 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,7 @@ services:
- SESSION_SECRET=${SESSION_SECRET}
- PROFESSOR_WHITELIST=${PROFESSOR_WHITELIST}
- ADMIN_WHITELIST=${ADMIN_WHITELIST}
- DEV_UTORID=${DEV_UTORID}
- DEV_NAME=${DEV_NAME}
- DEV_ROLE=${DEV_ROLE}
# DEV_* live in docker-compose.override.yml so production never sees them.
depends_on:
postgres:
condition: service_healthy
Expand Down
60 changes: 0 additions & 60 deletions prisma/migrations/20260212013152_add_slideset_model/migration.sql

This file was deleted.

This file was deleted.

10 changes: 0 additions & 10 deletions prisma/migrations/20260311223920_remove_slide_table/migration.sql

This file was deleted.

26 changes: 0 additions & 26 deletions prisma/migrations/20260312015943_add_answer_upvotes/migration.sql

This file was deleted.

17 changes: 0 additions & 17 deletions prisma/migrations/20260312021207_add_cascade_deletes/migration.sql

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -53,27 +53,32 @@ CREATE TABLE "Session" (
"isSubmissionsEnabled" BOOLEAN NOT NULL DEFAULT false,
"startTime" TIMESTAMP(3),
"endTime" TIMESTAMP(3),
"lastActivityAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,

CONSTRAINT "Session_pkey" PRIMARY KEY ("id")
);

-- CreateTable
CREATE TABLE "Slide" (
CREATE TABLE "SlideSet" (
"id" TEXT NOT NULL,
"sessionId" TEXT NOT NULL,
"slideNumber" INTEGER NOT NULL,
"contentUrl" TEXT NOT NULL,
"filename" TEXT NOT NULL,
"storageKey" TEXT NOT NULL,
"pageCount" INTEGER NOT NULL,
"fileSize" INTEGER NOT NULL,
"uploadedBy" TEXT NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,

CONSTRAINT "Slide_pkey" PRIMARY KEY ("id")
CONSTRAINT "SlideSet_pkey" PRIMARY KEY ("id")
);

-- CreateTable
CREATE TABLE "Question" (
"id" TEXT NOT NULL,
"sessionId" TEXT NOT NULL,
"slideId" TEXT,
"authorId" TEXT,
"content" TEXT NOT NULL,
"isAnonymous" BOOLEAN NOT NULL DEFAULT false,
Expand All @@ -91,12 +96,23 @@ CREATE TABLE "Answer" (
"questionId" TEXT NOT NULL,
"authorId" TEXT NOT NULL,
"content" TEXT NOT NULL,
"isAnonymous" BOOLEAN NOT NULL DEFAULT false,
"isAccepted" BOOLEAN NOT NULL DEFAULT false,
"upvoteCount" INTEGER NOT NULL DEFAULT 0,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,

CONSTRAINT "Answer_pkey" PRIMARY KEY ("id")
);

-- CreateTable
CREATE TABLE "AnswerUpvote" (
"id" TEXT NOT NULL,
"answerId" TEXT NOT NULL,
"userId" TEXT NOT NULL,

CONSTRAINT "AnswerUpvote_pkey" PRIMARY KEY ("id")
);

-- CreateTable
CREATE TABLE "QuestionUpvote" (
"id" TEXT NOT NULL,
Expand Down Expand Up @@ -143,13 +159,13 @@ CREATE INDEX "Session_createdById_idx" ON "Session"("createdById");
CREATE INDEX "Session_status_idx" ON "Session"("status");

-- CreateIndex
CREATE INDEX "Slide_sessionId_idx" ON "Slide"("sessionId");
CREATE INDEX "SlideSet_sessionId_idx" ON "SlideSet"("sessionId");

-- CreateIndex
CREATE INDEX "Question_sessionId_idx" ON "Question"("sessionId");
CREATE INDEX "SlideSet_uploadedBy_idx" ON "SlideSet"("uploadedBy");

-- CreateIndex
CREATE INDEX "Question_slideId_idx" ON "Question"("slideId");
CREATE INDEX "Question_sessionId_idx" ON "Question"("sessionId");

-- CreateIndex
CREATE INDEX "Question_authorId_idx" ON "Question"("authorId");
Expand All @@ -169,6 +185,15 @@ CREATE INDEX "Answer_questionId_idx" ON "Answer"("questionId");
-- CreateIndex
CREATE INDEX "Answer_authorId_idx" ON "Answer"("authorId");

-- CreateIndex
CREATE INDEX "AnswerUpvote_answerId_idx" ON "AnswerUpvote"("answerId");

-- CreateIndex
CREATE INDEX "AnswerUpvote_userId_idx" ON "AnswerUpvote"("userId");

-- CreateIndex
CREATE UNIQUE INDEX "AnswerUpvote_answerId_userId_key" ON "AnswerUpvote"("answerId", "userId");

-- CreateIndex
CREATE INDEX "QuestionUpvote_questionId_idx" ON "QuestionUpvote"("questionId");

Expand All @@ -194,25 +219,32 @@ ALTER TABLE "Session" ADD CONSTRAINT "Session_courseId_fkey" FOREIGN KEY ("cours
ALTER TABLE "Session" ADD CONSTRAINT "Session_createdById_fkey" FOREIGN KEY ("createdById") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;

-- AddForeignKey
ALTER TABLE "Slide" ADD CONSTRAINT "Slide_sessionId_fkey" FOREIGN KEY ("sessionId") REFERENCES "Session"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE "SlideSet" ADD CONSTRAINT "SlideSet_sessionId_fkey" FOREIGN KEY ("sessionId") REFERENCES "Session"("id") ON DELETE RESTRICT ON UPDATE CASCADE;

-- AddForeignKey
ALTER TABLE "Question" ADD CONSTRAINT "Question_sessionId_fkey" FOREIGN KEY ("sessionId") REFERENCES "Session"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE "SlideSet" ADD CONSTRAINT "SlideSet_uploadedBy_fkey" FOREIGN KEY ("uploadedBy") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;

-- AddForeignKey
ALTER TABLE "Question" ADD CONSTRAINT "Question_slideId_fkey" FOREIGN KEY ("slideId") REFERENCES "Slide"("id") ON DELETE SET NULL ON UPDATE CASCADE;
ALTER TABLE "Question" ADD CONSTRAINT "Question_sessionId_fkey" FOREIGN KEY ("sessionId") REFERENCES "Session"("id") ON DELETE RESTRICT ON UPDATE CASCADE;

-- AddForeignKey
ALTER TABLE "Question" ADD CONSTRAINT "Question_authorId_fkey" FOREIGN KEY ("authorId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;

-- AddForeignKey
ALTER TABLE "Answer" ADD CONSTRAINT "Answer_questionId_fkey" FOREIGN KEY ("questionId") REFERENCES "Question"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE "Answer" ADD CONSTRAINT "Answer_questionId_fkey" FOREIGN KEY ("questionId") REFERENCES "Question"("id") ON DELETE CASCADE ON UPDATE CASCADE;

-- AddForeignKey
ALTER TABLE "Answer" ADD CONSTRAINT "Answer_authorId_fkey" FOREIGN KEY ("authorId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;

-- AddForeignKey
ALTER TABLE "QuestionUpvote" ADD CONSTRAINT "QuestionUpvote_questionId_fkey" FOREIGN KEY ("questionId") REFERENCES "Question"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE "AnswerUpvote" ADD CONSTRAINT "AnswerUpvote_answerId_fkey" FOREIGN KEY ("answerId") REFERENCES "Answer"("id") ON DELETE CASCADE ON UPDATE CASCADE;

-- AddForeignKey
ALTER TABLE "AnswerUpvote" ADD CONSTRAINT "AnswerUpvote_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;

-- AddForeignKey
ALTER TABLE "QuestionUpvote" ADD CONSTRAINT "QuestionUpvote_questionId_fkey" FOREIGN KEY ("questionId") REFERENCES "Question"("id") ON DELETE CASCADE ON UPDATE CASCADE;

-- AddForeignKey
ALTER TABLE "QuestionUpvote" ADD CONSTRAINT "QuestionUpvote_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;

Loading
Loading