From 18ebf6d0a2e8538e9a33a9dc78efae80bc291351 Mon Sep 17 00:00:00 2001 From: Spencer W <4006420+seidior@users.noreply.github.com> Date: Tue, 21 Feb 2023 12:02:21 -0800 Subject: [PATCH 001/539] #504 Add migration file --- db/migration/V021__create_assessments.sql | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 db/migration/V021__create_assessments.sql diff --git a/db/migration/V021__create_assessments.sql b/db/migration/V021__create_assessments.sql new file mode 100644 index 00000000..e69de29b From d76510db4d05cffdf76eb7cc1ecc84bd8b60618f Mon Sep 17 00:00:00 2001 From: Paryssatis Khazaie Date: Tue, 21 Feb 2023 15:50:43 -0800 Subject: [PATCH 002/539] #504 create assessments migration structure --- db/migration/V021__create_assessments.sql | 135 ++++++++++++++++++++++ 1 file changed, 135 insertions(+) diff --git a/db/migration/V021__create_assessments.sql b/db/migration/V021__create_assessments.sql index e69de29b..5d88daa1 100644 --- a/db/migration/V021__create_assessments.sql +++ b/db/migration/V021__create_assessments.sql @@ -0,0 +1,135 @@ +CREATE TABLE curriculum_assessments ( + id BIGINT NOT NULL AUTO_INCREMENT, + title TEXT NOT NULL, + description TEXT, + max_score INT NOT NULL, + max_num_submissions INT NOT NULL, + time_limit INT, + curriculum_id BIGINT NOT NULL, + activity_id BIGINT NOT NULL, + principal_id BIGINT NOT NULL, + created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + INDEX curriculum_assessments_curriculum_id (curriculum_id), + FOREIGN KEY (curriculum_id) REFERENCES curriculums(id), + INDEX curriculum_assessments_activity_id (activity_id), + FOREIGN KEY (activity_id) REFERENCES activities(id), + INDEX curriculum_assessments_principal_id (principal_id), + FOREIGN KEY (principal_id) REFERENCES principals(id), + PRIMARY KEY (id) +); + +CREATE TABLE program_assessments ( + id BIGINT NOT NULL AUTO_INCREMENT, + program_id BIGINT NOT NULL, + assessment_id BIGINT NOT NULL, + available_after TIMESTAMP NOT NULL, + due_date TIMESTAMP NOT NULL, + created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + INDEX program_assessments_program_id (program_id), + FOREIGN KEY (program_id) REFERENCES programs(id), + INDEX program_assessments_assessment_id (assessment_id), + FOREIGN KEY (assessment_id) REFERENCES curriculum_assessments(id), + PRIMARY KEY (id) +); + +CREATE TABLE program_participants ( + id BIGINT NOT NULL AUTO_INCREMENT, + principal_id BIGINT NOT NULL, + program_id BIGINT NOT NULL, + role_id BIGINT NOT NULL, + created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + INDEX program_participants_principal_id (principal_id), + FOREIGN KEY (principal_id) REFERENCES principals(id), + INDEX program_participants_program_id (program_id), + FOREIGN KEY (program_id) REFERENCES programs(id), + PRIMARY KEY (id) +); + +CREATE TABLE assessment_submissions ( + id BIGINT NOT NULL AUTO_INCREMENT, + assessment_id BIGINT NOT NULL, + principal_id BIGINT NOT NULL, + state_id BIGINT NOT NULL, + score INT, + opened_at TIMESTAMP NOT NULL, + submitted_at TIMESTAMP NOT NULL, + created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + INDEX assessment_submissions_assessment_id (assessment_id), + FOREIGN KEY (assessment_id) REFERENCES program_assessments(id), + INDEX assessment_submissions_principal_id (principal_id), + FOREIGN KEY (principal_id) REFERENCES principals(id), + PRIMARY KEY (id) +); + +CREATE TABLE assessment_questions ( + id BIGINT NOT NULL AUTO_INCREMENT, + assessment_id BIGINT NOT NULL, + title TEXT NOT NULL, + description TEXT, + question_type_id BIGINT NOT NULL, + correct_answer_id BIGINT, + max_score INT, + sort_order INT NOT NULL, + created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + INDEX assessment_questions_assessment_id (assessment_id), + FOREIGN KEY (assessment_id) REFERENCES curriculum_assessments(id), + INDEX assessment_questions_question_type_id (question_type_id), + FOREIGN KEY (question_type_id) REFERENCES question_types(id), + PRIMARY KEY (id) +); + +CREATE TABLE assessment_answers ( + id BIGINT NOT NULL AUTO_INCREMENT, + question_id BIGINT NOT NULL, + title TEXT NOT NULL, + description TEXT NOT NULL, + sort_order INT NOT NULL, + created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + INDEX assessment_answers_question_id (question_id), + FOREIGN KEY (question_id) REFERENCES assessment_questions(id), + PRIMARY KEY (id) +); + +CREATE TABLE assessment_responses ( + id BIGINT NOT NULL AUTO_INCREMENT, + assessment_id BIGINT NOT NULL, + submission_id BIGINT NOT NULL, + question_id BIGINT NOT NULL, + answer_id BIGINT, + response TEXT, + score INT, + grader_response TEXT, + created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + INDEX assessment_responses_assessment_id (assessment_id), + FOREIGN KEY (assessment_id) REFERENCES program_assessments(id), + INDEX assessment_responses_submission_id (submission_id), + FOREIGN KEY (submission_id) REFERENCES assessment_submissions(id), + INDEX assessment_responses_question_id (question_id), + FOREIGN KEY (question_id) REFERENCES assessment_questions(id), + INDEX assessment_responses_answer_id (answer_id), + FOREIGN KEY (answer_id) REFERENCES assessment_answers(id), + PRIMARY KEY (id) +); + +CREATE TABLE question_types ( + id BIGINT NOT NULL AUTO_INCREMENT, + title TEXT NOT NULL, + PRIMARY KEY (id) +); + +CREATE TABLE assessment_submission_states ( + id BIGINT NOT NULL AUTO_INCREMENT, + PRIMARY KEY (id) +); + +CREATE TABLE program_participant_roles ( + id BIGINT NOT NULL AUTO_INCREMENT, + PRIMARY KEY (id) +); From 2f417bb0705d8a623cd166cac9a3c40f44fb7641 Mon Sep 17 00:00:00 2001 From: mays4 Date: Tue, 21 Feb 2023 21:14:50 -0500 Subject: [PATCH 003/539] #507 create a route in App and icon in the navbar --- webapp/src/components/App.tsx | 8 ++++++++ webapp/src/components/Navbar.tsx | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/webapp/src/components/App.tsx b/webapp/src/components/App.tsx index a2e90d7e..9867a26f 100644 --- a/webapp/src/components/App.tsx +++ b/webapp/src/components/App.tsx @@ -59,6 +59,14 @@ const App = () => { } /> + + <> + + } + />