| ATTRIBUTE | DATA TYPE | DEFINITION |
|---|---|---|
| program_id | SMALLINT | PK |
| program_name | STRING | A program_name is the name of the program created by the PROGRAM SUPERVISOR.A program_name is useful for recognizing the program from user-ends and advertising.A program_name is CHANGING, REQUIRED, NOT UNIQUE. |
| public_program_id | UUID | A public_program_id is the unique identifier for the PROGRAM in the website..A public_program_id is UNIQUE, NOT NULL NEVER CHANGING. |
| difficulty_level | STRING | A difficulty_level is the level of difficulty of a program.A difficulty_level is useful for telling the user the level of difficulty of the program.A difficulty_level is NOT UNIQUE, CHANGING, REQUIRED. |
| price | NUMERIC | A price is the cost of applying for the program.A price is CHANGING , REQUIRED, NOT UNIQUE. |
| program_picture | STRING | A program_picture is the picture used for displaying to the end-users.A program_picture is CHANGING, REQUIRED, UNIQUE. |
| is_open_to_public | BOOLEAN | It indicates whether the PROGRAM is open to the public at the current time or not, enabling STUD ENTs to see it. |
| program_cover | STRING | A program_cover is a picture attached to a program horizontally to be displayed to the users.A program_cover is CHANING, REQUIRED, UNIQUE. |
| program_description | STRING | A program_description is a text clarifying why you should enroll in this program and what you will learn briefly.A program_description is CHANGING, REQUIRED, NOT UNIQUE. |
| is_available | BOOLEAN | It clarifies whether the program is available or not.It is useful for enabling or disabling the program for enrollment.It is managed through the PROGRAM SUPERVISOR's panel.It has a default value of True.It is CHANGING , REQUIRED, NOT UNIQUE. |
| start_date | DATE | A start_date when the program starts.A start_date is useful for indicating the start of time interval of applying the schedule on the PROGRAM.A start_date is NOT UNIQUE, REQUIRED, NOT-NULL |
| end_date | DATE | An end_date when the program ends.An end_date is useful for indicating the end of time interval of applying the schedule on the PROGRAM.An end_date is NOT UNIQUE, REQUIRED, NOT-NULL |
| requirement_id | SMALLINT | FK |
| ATTRIBUTE | DATA TYPE | DEFINITION |
|---|---|---|
| lecture_id | SMALLINT | PK |
| public_lecture_id | UUID | A public_lecture_id is the unique identifier for the LECTURE in the website. |
| lecture_name | STRING | A lecture_name is the name of the lecture created by the PROGRAM SUPERVISOR.A lecture_name is CHANGING, REQUIRED, NOT UNIQUE. |
| porgram_id | SMALLINT | FK |
| lecture_description | STRING | A lecture_description is a text containing the name of the lecturer and sub points of subjects he will talk about.A lecture_description is CHANGING, REQUIRED, NOT UNIQUE. |
| is_unlocked | BOOLEAN | Is_unlocked is False by default, it only turns into True due to SCHEDULE.PROGRAM SUPERVISOR could assign it to True. |
| ATTRIBUTE | DATA TYPE | DEFINITION |
|---|---|---|
| course_id | SMALLINT | PK |
| public_course_id | UUID | A public_course_id is the unique identifier for the course in the website.A public_course_id is UNIQUE, NOT NULL NEVER CHANGING. |
| program_id | SMALLINT | FK |
| course_name | STRING | A course_name is the name of the course created by the PROGRAM SUPERVISOR.A course_name is CHANGING, REQUIRED, NOT UNIQUE. |
| course_description | STRING | A course_description describes the content of the course and the advantages of the course along with what the student is going to learn from it.A course_decription CHANGING, NULLABLE, NOT UNIQUE. |
| course_order | SMALLINT | A course_order is the order of the course within the program.A course_order is CHANGING,NOT-NULL,NOT-UNIQUE. |
| ATTRIBUTE | DATA TYPE | DEFINITION |
|---|---|---|
| lesson_id | SMALLINT | PK |
| public_lesson_id | UUID | A public_lesson_id is the unique identifier for the lesson in the website.A public_lesson_id is UNIQUE, NOT NULL NEVER CHANGING. |
| course_id | SMALLINT | FK |
| lesson_name | STRING | A lesson_name is the name of the lesson created by the PROGRAM SUPERVISOR.A lesson_name is CHANGING, REQUIRED, NOT UNIQUE. |
| lesson_description | STRING | TEXT, NON-NULL, VARCHAR |
| content | JSON | NOT NULL, NOT UNIQUE, CHANGING / |
| #####content |
{
"video": "Lorem ipsum dolor sit amet",
"article": "Lorem ipsum dolor sit amet",
"references":[{"title":"Lorem ipsum dolor sit amet",
"url" : "Lorem ipsum dolor sit amet"
},
{"title":"Lorem ipsum dolor sit amet",
"url" : "Lorem ipsum dolor sit amet"
},
...],
"html": "Lorem ipsum dolor sit amet"
}
| ATTRIBUTE | DEFINITION |
|---|---|
| Minimum Age | NOT-UNIQUE, NUMERIC, NULLABLE |
| Maximum Age | NOT-UNIQUE, NUMERIC, NULLABLE |
| Gender | NOT-UNIQUE, BOOLEAN, NULLABLE |
| ATTRIBUTE | DATA TYPE | DEFINITION |
|---|---|---|
| Skill Name | STRING | Useful for enabling the program supervisor to insert the certain set of skills he requires the students to have.NOT UNIQUE, NOT NULL, CHANGING. |
| ATTRIBUTE | DATA TYPE | DEFINITION |
|---|---|---|
| prerequisite_id | SMALLINT | PK |
| dependency_id | SMALLINT | FK |
| program_id | SMALLINT | FK |
| ATTRIBUTE | DATA TYPE | DEFINITION |
|---|---|---|
| Category Name | STRING | UNIQUE, VARCHAR, NOT-NULL |
| ATTRIBUTE | DATA TYPE | DEFINITION |
|---|---|---|
| program_faq_id | INT | PK |
| program_id | SMALLINT | FK |
| faq_id | INT | FK |
| ATTRIBUTE | DATA TYPE | DEFINITION |
|---|---|---|
| faq_id | INT | PK |
| question | STRING | NOT-UNIQUE, VARCHAR, NOT-NULL |
| answer | STRING | NOT-UNIQUE, VARCHAR, NOT-NULL |









