= Фаза 2Б - Полнење на табелите и погледи = == Полнење на табелите == Податоците беа генерирани со комбинација на CSV датотеки за референтни податоци и SQL скрипта која користи `generate_series()` за големите табели. Табелите се полнети во серии од 500.000 редови за да се избегнат проблеми со дисковен простор на серверот. Генерираните податоци се што е можно пореалистични — имиња од македонски именски пул, реални адреси, валидни формати за е-пошта и телефон. == Број на Редови по Табела == || Табела || Број на Редови || || User || 10,098,000 || || Studies || 20,647,814 || || Diploma || 10,323,907 || || User_Skill || 21,746,369 || || Employment || 21,971,721 || || !SalaryHistory || 21,971,721 || || Position || 3,000,000 || || Promotion || 7,323,907 || || Internship || 1,464,782 || || AdditionalCourse_User || 3,661,954 || || Startup || 30 || || Founder || 116,196 || || Event || 3,000 || || Event_User || 107,969 || || Award || 1,009,800 || || University || 10 || || Faculty || 15 || || !StudyProgram || 150 || || Industry || 44 || || Company || 5,000 || || Skill || 65 || || !AdditionalCourse || 20 || ---- == Погледи (Views) == === v_companies_by_industry === Прикажува листа на компании збогатена со информации за индустријата и секторот на кој припаѓаат. Се користи при пребарување и филтрирање на компании по индустрија, на пример кога корисникот бара вработување во одреден сектор или кога системот генерира статистики за застапеноста на alumni по индустрии. {{{ CREATE OR REPLACE VIEW public.v_companies_by_industry AS SELECT c.company_id, c.name AS company_name, c.number_employees, i.industry_name, i.sector_category FROM company c JOIN industry i ON i.industry_id = c.industry_id; }}} === v_employment_history === Прикажува целосна историја на вработувања на корисниците — компанија, период, тип на вработување и дали е тековно. Се користи при приказ на работното CV на alumni, каде апликацијата треба да прикаже хронолошки список на сите претходни и тековни вработувања. {{{ CREATE OR REPLACE VIEW public.v_employment_history AS SELECT u.user_id, u.first_name, u.last_name, c.name AS company_name, e.start_date, e.end_date, e.employment_type, e.is_current FROM employment e JOIN "User" u ON u.user_id = e.user_id JOIN company c ON c.company_id = e.company_id; }}} === v_event_participants === Прикажува листа на учесници за секој настан, заедно со нивната улога. Се користи при управување со настани — организаторите можат да го видат списокот на пријавени alumni, а корисниците можат да ги прегледаат настаните на кои присуствувале. {{{ CREATE OR REPLACE VIEW public.v_event_participants AS SELECT e.event_id, e.name AS event_name, e.date, u.user_id, u.first_name, u.last_name, eu.role FROM event e JOIN event_user eu ON eu.event_id = e.event_id JOIN "User" u ON u.user_id = eu.user_id; }}} === v_faculty_programs === Прикажува студиски програми збогатени со информации за факултетот и универзитетот на кој припаѓаат. Се користи при приказ на каталогот на студиски програми во апликацијата, каде нов корисник може да ја избере програмата на која студирал или студира. {{{ CREATE OR REPLACE VIEW public.v_faculty_programs AS SELECT f.faculty_id, f.name AS faculty_name, u.name AS university_name, sp.study_program_id, sp.program_name, sp.degree_type, sp.duration_years FROM faculty f JOIN university u ON u.university_id = f.university_id JOIN studyprogram sp ON sp.faculty_id = f.faculty_id; }}} === v_startups_with_founders === Прикажува стартапи заедно со нивните основачи (корисниците кои ги основале). Се користи при приказ на претприемачката активност на alumni — корисниците можат да ги прегледаат стартапите на своите колеги или да го промовираат сопствениот стартап. {{{ CREATE OR REPLACE VIEW public.v_startups_with_founders AS SELECT st.startup_id, st.name AS startup_name, st.status, u.user_id, u.first_name, u.last_name FROM startup st JOIN founder f ON f.startup_id = st.startup_id JOIN "User" u ON u.user_id = f.user_id; }}} === v_student_academic_profile === Прикажува целосен академски профил на корисник — студиска програма, факултет, универзитет, период и статус на студии. Се користи при приказ на академскиот дел од профилот на alumni, каде другите корисници или работодавачи можат да ги видат образовните квалификации. {{{ CREATE OR REPLACE VIEW public.v_student_academic_profile AS SELECT u.user_id, u.first_name, u.last_name, sp.program_name, f.name AS faculty_name, uni.name AS university_name, s.start_date, s.end_date, s.status FROM "User" u JOIN studies s ON s.user_id = u.user_id JOIN studyprogram sp ON sp.study_program_id = s.study_program_id JOIN faculty f ON f.faculty_id = sp.faculty_id JOIN university uni ON uni.university_id = f.university_id; }}} === v_students_per_program === Прикажува вкупниот број на студенти запишани на секоја студиска програма. Се користи за административни извештаи и статистики — администраторите можат да ја следат популарноста на студиските програми и бројот на alumni по програма. {{{ CREATE OR REPLACE VIEW public.v_students_per_program AS SELECT sp.study_program_id, sp.program_name, COUNT(s.user_id) AS total_students FROM studyprogram sp LEFT JOIN studies s ON s.study_program_id = sp.study_program_id GROUP BY sp.study_program_id, sp.program_name; }}} === v_user_skills === Прикажува листа на вештини (ime и тип) кои ги поседува секој корисник. Се користи при приказ на профилот на alumni и при пребарување на кандидати по специфични вештини — на пример работодавач бара alumni со Python и Machine Learning вештини. {{{ CREATE OR REPLACE VIEW public.v_user_skills AS SELECT u.user_id, u.first_name, u.last_name, s.skill_name, s.type FROM "User" u JOIN user_skill us ON us.user_id = u.user_id JOIN skill s ON s.skill_id = us.skill_id; }}} === v_user_full_career === Прикажува целосен преглед на кариерата на корисник — студии, вработувања и компании на едно место. Се користи при генерирање на целосен профил на alumni за работодавачи, каде на еден поглед се гледаат и образованието и работното искуство на кандидатот. {{{ CREATE OR REPLACE VIEW public.v_user_full_career AS SELECT u.user_id, u.first_name, u.last_name, sp.program_name, s.status AS study_status, e.start_date AS employment_start, e.end_date AS employment_end, e.employment_type, c.name AS company_name FROM "User" u LEFT JOIN studies s ON s.user_id = u.user_id LEFT JOIN studyprogram sp ON sp.study_program_id = s.study_program_id LEFT JOIN employment e ON e.user_id = u.user_id LEFT JOIN company c ON c.company_id = e.company_id; }}}