From 1981ff70b7a3cdeac1a34e1140bb840cec24cb1b Mon Sep 17 00:00:00 2001 From: Roman Date: Wed, 30 Apr 2025 18:57:25 +0300 Subject: [PATCH 1/5] #68: created and added one single ceate WorkflowEvent entity, also added three tentitles. created and added one single ceate WorkflowEvent entity, also added three tentitles. closes #68 --- docs/software/README.md | 97 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 96 insertions(+), 1 deletion(-) diff --git a/docs/software/README.md b/docs/software/README.md index a4c6b1e9c..215d127ce 100644 --- a/docs/software/README.md +++ b/docs/software/README.md @@ -1,6 +1,101 @@ -# Реалізація інформаційного та програмного забезпечення +### Реалізація інформаційного та програмного забезпечення В рамках проекту розробляється: - SQL-скрипт для створення на початкового наповнення бази даних - RESTfull сервіс для управління даними + +## **SQL скрипти для ініціалізації та наповнення бази даних** + +```sql +CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; + +CREATE TABLE IF NOT EXISTS "User" ( + id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), + first_name VARCHAR(100) NOT NULL, + last_name VARCHAR(100) NOT NULL, + email VARCHAR(255) UNIQUE NOT NULL, + password VARCHAR(255) NOT NULL +); + +CREATE TABLE IF NOT EXISTS "Role" ( + id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), + name VARCHAR(100) NOT NULL, + description TEXT +); + +CREATE TABLE IF NOT EXISTS "Permission" ( + id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), + name VARCHAR(100) NOT NULL, + description TEXT +); + +CREATE TABLE IF NOT EXISTS user_roles ( + user_id UUID REFERENCES "User"(id) ON DELETE CASCADE, + role_id UUID REFERENCES "Role"(id) ON DELETE CASCADE, + PRIMARY KEY (user_id, role_id) +); + +CREATE TABLE IF NOT EXISTS role_permissions ( + role_id UUID REFERENCES "Role"(id) ON DELETE CASCADE, + permission_id UUID REFERENCES "Permission"(id) ON DELETE CASCADE, + PRIMARY KEY (role_id, permission_id) +); + +CREATE TABLE IF NOT EXISTS "WorkflowEvent" ( + id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + description TEXT, + user_id UUID REFERENCES "User"(id) ON DELETE CASCADE, + quiz_id UUID REFERENCES "Quiz"(id) ON DELETE CASCADE +); + +INSERT INTO "Role" (name, description) VALUES +('Admin', 'Full access to the system'), +('Editor', 'Can edit quizzes'), +('Viewer', 'Read-only access'); + +INSERT INTO "Permission" (name, description) VALUES +('Manage Users', 'Permission to manage users'), +('Edit Quizzes', 'Permission to edit quizzes'), +('View Content', 'Permission to view content'); + +INSERT INTO "User" (first_name, last_name, email, password) VALUES +('Olena', 'Kovalenko', 'olena@example.com', 'hashpass1'), +('Ivan', 'Petrenko', 'ivan@example.com', 'hashpass2'), +('Marta', 'Sydorenko', 'marta@example.com', 'hashpass3'); + +INSERT INTO user_roles (user_id, role_id) VALUES +((SELECT id FROM "User" WHERE email = 'olena@example.com'), (SELECT id FROM "Role" WHERE name = 'Admin')), +((SELECT id FROM "User" WHERE email = 'ivan@example.com'), (SELECT id FROM "Role" WHERE name = 'Editor')), +((SELECT id FROM "User" WHERE email = 'marta@example.com'), (SELECT id FROM "Role" WHERE name = 'Viewer')); + +INSERT INTO role_permissions (role_id, permission_id) VALUES +((SELECT id FROM "Role" WHERE name = 'Admin'), (SELECT id FROM "Permission" WHERE name = 'Manage Users')), +((SELECT id FROM "Role" WHERE name = 'Editor'), (SELECT id FROM "Permission" WHERE name = 'Edit Quizzes')), +((SELECT id FROM "Role" WHERE name = 'Viewer'), (SELECT id FROM "Permission" WHERE name = 'View Content')); + +INSERT INTO "WorkflowEvent" (created_at, description, user_id, quiz_id) +VALUES + ( + NOW(), + 'Quiz initialized by the user', + (SELECT id FROM "User" WHERE email = 'olena@example.com'), + (SELECT id FROM "Quiz" WHERE title = 'Java Basics') + ), + ( + NOW(), + 'User is answering the questions', + (SELECT id FROM "User" WHERE email = 'ivan@example.com'), + (SELECT id FROM "Quiz" WHERE title = 'SQL Starter') + ), + ( + NOW(), + 'Quiz completed and submitted', + (SELECT id FROM "User" WHERE email = 'marta@example.com'), + (SELECT id FROM "Quiz" WHERE title = 'Java Basics') + ); + + + + From 98f8c8061b49fede0da3602bf6738c067b0484ca Mon Sep 17 00:00:00 2001 From: Roman Date: Wed, 30 Apr 2025 22:55:50 +0300 Subject: [PATCH 2/5] #68: threw a pool request to the task create Workflow Event entity threw a pool request to the task create Workflow Event entity --- docs/software/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/software/README.md b/docs/software/README.md index 215d127ce..6ef116c0f 100644 --- a/docs/software/README.md +++ b/docs/software/README.md @@ -99,3 +99,4 @@ VALUES + From d70e33d3eb1a55047b9bec8e9885e7508c832c59 Mon Sep 17 00:00:00 2001 From: Roman Date: Wed, 30 Apr 2025 23:03:28 +0300 Subject: [PATCH 3/5] #68: changed the title, or rather added bold style changed the title, or rather added bold style closses #68 --- docs/software/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/software/README.md b/docs/software/README.md index 6ef116c0f..bd6262c2b 100644 --- a/docs/software/README.md +++ b/docs/software/README.md @@ -1,4 +1,4 @@ -### Реалізація інформаційного та програмного забезпечення +# **Реалізація інформаційного та програмного забезпечення** В рамках проекту розробляється: From 599457cecb42e6d97f0196f37d2f937326d7d50a Mon Sep 17 00:00:00 2001 From: Roman Date: Wed, 30 Apr 2025 23:50:03 +0300 Subject: [PATCH 4/5] #68: added pull request added pull request --- docs/software/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/software/README.md b/docs/software/README.md index bd6262c2b..bf5237e54 100644 --- a/docs/software/README.md +++ b/docs/software/README.md @@ -1,4 +1,4 @@ -# **Реалізація інформаційного та програмного забезпечення** +# Реалізація інформаційного та програмного забезпечення В рамках проекту розробляється: From b6b82f2fb9aad28c82f3a125813d8f544b2712a5 Mon Sep 17 00:00:00 2001 From: Roman Date: Wed, 30 Apr 2025 23:52:25 +0300 Subject: [PATCH 5/5] #68: changes text changes text --- edu_db_labs | 1 + 1 file changed, 1 insertion(+) create mode 160000 edu_db_labs diff --git a/edu_db_labs b/edu_db_labs new file mode 160000 index 000000000..d5d2e9393 --- /dev/null +++ b/edu_db_labs @@ -0,0 +1 @@ +Subproject commit d5d2e93934d44aa608e10872eaf94c75002f9d6a