= ПЕР дијаграм = [[Image(ERDCompressed_v3.drawio.png​, height=1000px, width=1400px)]] == Податочни побарувања == == Ентитети == 1. **Корисник** наткласа која што ги опишува типовите на корисници во системот (без админ)\\ * Ид - SERIAL (примарен клуч) \\ * е-пошта - VARCHAR(30) (задолжителен атрибут) \\ * лозинка - VARCHAR(30) (задолжителен атрибут) \\ * име - VARCHAR(30) (задолжителен атрибут) \\ * презиме - VARCHAR(30) (задолжителен атрибут) \\ * пол - VARCHAR(10) (задолжителен атрибут) * адреса - VARCHAR(30) (задолжителен атрибут) 2. **Наставник** наткласа која ги опишува типовите на наставници. \\ 3. **Класен раководите** поткласа за одделенски наставник. \\ 4. **Предметен наставник** \\ 5. **Благајник** корисник кој може да постира барање за плаќање од страна на родителите. \\ 6. **Ученик** ентитет кој ги претставува сите ученици. \\ 7. **Родител** корисник кој може да се најави на системот, да ги погледне сите оценки на своето дете и да изврши плаќање. \\ 8. **Админ** наткласа за административните корисници во системот. \\ * Ид - SERIAL (примарен клуч) \\ * е-пошта - VARCHAR(30) (задолжителен атрибут) \\ * лозинка - VARCHAR(30) (задолжителен атрибут) \\ * име - VARCHAR(30) (задолжителен атрибут) \\ * презиме - VARCHAR(30) (задолжителен атрибут) \\ 9. **Супер админ** овој тип на администратор претставува админ кој може да ги креира администраторите на сите образовни институции 10. **Директор - админ** претставува тип на администратор кој го води системот само за една образовна институција. Може да креира корисници од тип родител, благајник, ученик и класен раководител. \\ 11. **Клас** ентитет кој ги претставува сите класови во едно училиште. \\ * Ид - SERIAL (примарен клуч) \\ * одделение - INTEGER (задолжителен атрибут) \\ * паралелка - CHAR(1) (задолжителен атрибут) \\ * годинаНаСлушање - INTEGER (задолжителен атрибут) \\ 12. **Оценка** наткласа ентитет за сите оценки на еден ученик \\ * Ид - SERIAL (примарен клуч) \\ * оценка - INTEGER,(задолжителен атрибут), оцената може да биде 1-5 или поени \\ * датум - DATE, (задолжителен атрибут), според датумот може да се определи типот на полугодие \\ * забелешка - VARCHAR(50), (задолжителен атрибут) \\ 13. **Соопштение** ентитет кој што го претставува соопштението креирано од страна на класниот раководител \\ * Ид - SERIAL (примарен клуч) \\ * наслов - VARCHAR(20), (задолжителен атрибут) \\ * креираноНа - DATE, (задолжителен атрибут)\\ * содржина - VARCHAR(100), (задолжителен атрибут) \\ 14. **Предмет** ентитет кој што ги претставуваат предметите кој што ги слуша ученикот \\ * име - VARCHAR(20) (примарен клуч) \\ * фондЧасови - INTEGER \\ 15. **Неделен план ** ентитет кој го претставува планот/активностите во една седмица кој се случиле \\ * Ид - SERIAL (примарен клуч) \\ * датумОд DATE, (задолжителен атрибут) \\ * датумДо DATE, (задолжителен атрибут) \\ 16. **Активност за Неделен план** ентитет за активностите кој што се случиле во неделата \\ * Ид - SERIAL (примарен клуч) \\ * наслов - VARCHAR(20), (задолжителен атрибут) \\ * опис - VARCHAR(50), (задолжителен атрибут) \\ * денВоНедела - VARCHAR(10), (задолжителен атрибут) \\ 17. **Распоред** \\ * Ид - SERIAL (примарен клуч) \\ * наслов - VARCHAR(20), (задолжителен атрибут) \\ * тип - VARCHAR(10), (задолжителен атрибут), типот на распоредот може да биде финален и привремен \\ 18. **Час** \\ * Ид - SERIAL (примарен клуч) \\ * реденЧас INTEGER, (задолжителен атрибут) \\ * денВоНедела - VARCHAR(10), (задолжителен атрибут) 19. **Соопштение за плаќање** ентитет кој претставува соопштение за плаќање креирано од благајникот \\ * Ид - SERIAL (примарен клуч) \\ * наслов - VARCHAR(20), (задолжителен атрибут) \\ * содржина - VARCHAR(100), (задолжителен атрибут) \\ * рокНаПлаќање - DATE, (задолжителен атрибут) \\ 20. **Плаќање** ентитет кој го претставува настанот за плаќање од страна на родителот \\ * Ид - SERIAL (примарен клуч) \\ * статус - VARCHAR(10), (задолжителен атрибут), статус на плаќањето може да биде КРЕИРАНО, ОДОБРЕНО, ПЛАТЕНО, ЗАВРШЕНО \\ * tx_hash - VARCHAR(50),(задолжителен атрибут), трансакциски hash од blockchain explorer кој го потврдува извршеното плаќање \\ * износ - DECIMAL(38,18), (задолжителен атрибут), имаме 18 децимали после точка, а вкупно имаме 38 цифри \\ * валута - VARCHAR(10), (задолжителен атрибут) \\ * платеноНа - DATE (задолжителен атрибут) \\ 21. **Присуство** ентитет за евидентирање на присуство на ученици * Ид - SERIAL (примарен клуч) \\ * датум - Date, (задолжителен атрибут) \\ * статус - VARCHAR(10), (задолжителен атрибут), статусот на ученикот може да биде: присутен, отсутен, задоцнет \\ * забелешка - VARCHAR(50), (опционален атрибут) \\ 22. **Усна оценка** ентитет за усна оценка/активност * тема - VARCHAR(20), (задолжителен атрибут) \\ * освоени_поени DECIMAL(3,2), (задолжителен атрибут), имаме 2 децимали после точка, а вкупно имаме 3 цифри, пр. 2.05 поени \\ * max_поени INTEGER, (задолжителен атрибут), вкупен број на поени за усно испрашување \\ * вид_испршување, VARCHAR(10), (задолжителен атрибут), видот на усното испрашување може да биде презентација на проект, усно испрашување на табла \\ 23. **Писмена оценка** ентитет за писмена оценка/активност \\ * тема - VAARCHAR(20), (задолжителен атрибут) * освоени_поени DECIMAL(3,2), (задолжителен атрибут), имаме 2 децимали после точка, а вкупно имаме 3 цифри, пр. 2.05 поени \\ * max_поени INTEGER, (задолжителен атрибут), вкупен број на поени за усно испрашување \\ * вид_испршување, VARCHAR(10), (задолжителен атрибут), видот на усното испрашување може да биде писмена работа, тест, раскажување на лектира \\ 24. **Крајна оценка** * тип - VARCHAR(10), (задолжителен атрибут), типот може да биде крајна усна оценка, крајна писмена оценка, полугодишна оценка, годишна оценка \\ == Релации == 1. **Креира** (Супер админ - МОН ↔ Директор - Админ) 1:M \\ Супер админот на МОН може да креира повеќе директор - администратори кои управуваат само со податоци од своето училиште. \\ 2. **Креира** (Директор - Админ ↔ Корисник) 1:M \\ Администраторот на едно училиште може да креира корисници како што се родители, класни раководители, ученици, благајници. \\ 3. **Плаќање** (Родител ↔ Плаќање) 1:N \\ Родителот може да плати плаќање кое го поставува благајникот. \\ 4. **Внесува** (Наставник ↔ Оцена) 1:M \\ Наставникот (без разлика дали е класен раководител или предметен наставник) може да внесува повеќе оцени за своите ученици. \\ 5. **Одобрува** (Директор - Админ ↔ Соопштение за плаќање) 1:M \\ Откако благајникот ќе креира соопштение за плаќање, тоа мора да биде одобрено од страна на Директор - Администратор. \\ 6. **Е родител на** (Родител ↔ Ученик) 1:M \\ Еден родител/старател може да биде родител/старател на повеќе ученици во системот. (Близнаци, браќа, сестри и.т.н.) \\ 7. **Има** (Ученик ↔ Оценка) M:N \\ Ученикот може да има повеќе оценки во е-дневник. 8. **Учи** (Ученик ↔ Клас) M:1 \\ Во еден клас може да учат повеќе ученици. \\ 9. **Раководи** (Класен раководител ↔ Клас) 1:1 \\ Во овој систем, еден класен раководител може да раководи со е-дневникот само со еден клас за кој е задолжен. \\ 10. **Слуша** (Клас ↔ Предмет) M:N \\ Повеќе класови може да слушаат повеќе предмети. \\ 11. **Има** (Предмет ↔ Оценка) M:1 \\ Еден предмет може да има само една оценка. \\ 12. **Содржи** (Клас ↔ Соопштение) 1:M \\ Еден клас може да содржи повеќе соопштенија. \\ 13. **Има** (Клас ↔ Распоред) 1:1 \\ Еден клас во системот има само еден распоред. 14. **Креира** (Благајник ↔ Соопштение за плаќање) M:1 \\ Еден благајник може да креира повеќе соопштенија за плаќање. \\ 15. **Постира** (Класен раководител ↔ Соопштение) 1:M \\ Класните раководители може да креираат повеќе соопштенија. \\ 16. **Има** (Клас ↔ Неделен план) 1:M \\ Еден клас може да има повеќе неделни планови. \\ 17. **Запишува** (Класен раководител ↔ АктивностЗаНеделенПлан) M:N \\ Класните раководители се задолжени да запишуваат неделни планови за секоја недела. \\ 18. **Вклучува** (Соопштение за плаќање ↔ Плаќање) 1:1 \\ Едно соопштение за плаќање вклучува само едно плаќање. \\ 19. **Содржи** (Час ↔ Распоред) M:N \\ Во еден распоред за часови имаме повеќе часови кои треба да се оддржат во текот на неделата. \\ 20. **Опфаќа** (Неделен план ↔ Активност за неделен план) M:N \\ Во еден неделен план за активности/часови може да имаме повеќе активности кои се случуваат во неделата. 21. **Предава** (Предмет ↔ Предметен наставник) M:N \\ Еден предмет може да го предаваат повеќе наставници. \\ 22. **Има** (Час ↔ Предмет) M:N \\ Во текот на една недела, еден предмет може да биде слушан (да има час) во повеќе дена од неделата. 23. **Евидентира** (Наставник ↔ Присуство) 1:M Секој наставник може да евидентира присуство ученици на неговиот час. 24. **сеОднесуваНа** (Присуство ↔ Час) 1:M Релација за кое присуство за кој час се однесува.