Changes between Initial Version and Version 1 of SouceVersionControlOrganizationRevised


Ignore:
Timestamp:
12/29/25 11:23:33 (2 weeks ago)
Author:
214004
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SouceVersionControlOrganizationRevised

    v1 v1  
     1== SouceVersionControlOrganizationRevised
     2За Контрола на верзиите на изворниот код користевме Github. Работевме на еден branch.
     3
     4== Структура ==
     5roadmap_finki/
     6├── app/                          # PHP/Laravel код
     7├── resources/                     # Frontend (Blade templates)
     8├── database/                      # Миграции и seeders
     9├── routes/                        # Рутирање
     10├── bootstrap/                     # Иницијализација
     11├── config/                        # Конфигурација
     12├── storage/                       # Датотеки и логови
     13├── tests/                         # Тестирање
     14├── public/                        # Јавни датотеки (CSS, JS, слики)
     15└── vendor/                        # Зависности (Composer)
     16
     17== Модели ==
     18Models/
     19├── User.php                    # Кориснички профил
     20│   ├── relationships:
     21│   │   └── progress()          # HasMany → UserProgress
     22│   └── methods:
     23│       └── role(), isAdmin()
     24
     25├── UserProgress.php            # Напредок на корисник (завршени/во прогрес предмети)
     26│   ├── fillable:
     27│   │   ├── user_id
     28│   │   ├── subject_id
     29│   │   ├── study_program_id
     30│   │   ├── career_path_id
     31│   │   ├── status              # 'completed' | 'in_progress'
     32│   │   └── completed_at
     33│   └── relationships:
     34│       ├── user()              # BelongsTo
     35│       ├── subject()            # BelongsTo
     36│       ├── studyProgram()       # BelongsTo
     37│       └── careerPath()         # BelongsTo
     38
     39├── Subject.php                 # Предмет/Курс
     40│   ├── attributes:
     41│   │   ├── code                # Уникален код (F23L3W004)
     42│   │   ├── name                # Англиско име
     43│   │   ├── name_mk             # Македонско име
     44│   │   ├── year                # 1-4 година
     45│   │   ├── semester_type       # 'winter' | 'summer'
     46│   │   ├── subject_type        # 'mandatory' | 'elective'
     47│   │   ├── credits             # ECTS кредити
     48│   │   └── description, instructors, hours
     49│   ├── relationships:
     50│   │   ├── prerequisites()     # BelongsToMany (self-referencing)
     51│   │   ├── requiredBy()        # BelongsToMany (inverse)
     52│   │   ├── studyPrograms()     # BelongsToMany
     53│   │   ├── careerPaths()       # BelongsToMany
     54│   │   └── userProgress()      # HasMany
     55│   └── methods:
     56│       ├── getSemesterTypeFromCode()   # Извлече W/S од код
     57│       ├── hasPrerequisitesMet()       # Проверка на предуслови
     58│       └── getDisplayName()            # "CODE - NAME"
     59
     60├── StudyProgram.php            # Студиска програма (Computer Science 4-year)
     61│   ├── attributes:
     62│   │   ├── name_mk             # Македонско име
     63│   │   ├── name_en             # Англиско име
     64│   │   ├── code                # Уникален код
     65│   │   ├── duration_years      # 1-6 години
     66│   │   └── cycle               # 'first' | 'second'
     67│   ├── relationships:
     68│   │   ├── subjects()          # BelongsToMany
     69│   │   │   └── pivot: order, type, year, semester_type
     70│   │   └── userProgress()      # HasMany
     71│   └── methods:
     72│       ├── getMandatorySubjects()     # Само задолжителни
     73│       ├── getElectiveSubjects()      # Само изборни
     74│       └── getDisplayName()           # "NAME (N години)"
     75
     76└── CareerPath.php              # Каријерна патека (Full Stack, Data Science, итн.)
     77    ├── attributes:
     78    │   ├── name                # Име на патека
     79    │   └── description
     80    ├── relationships:
     81    │   └── subjects()          # BelongsToMany
     82    │       └── pivot: career_path_subject
     83    └── methods:
     84        └── getIcon()           # Икона за приказ
     85
     86
     87== Табели во база ==
     88users
     89├── id, name, email, password
     90├── role (enum: 'admin', 'user')
     91├── created_at, updated_at
     92└── → hasMany(user_progress)
     93
     94user_progress
     95├── id, user_id (FK), subject_id (FK)
     96├── study_program_id (FK), career_path_id (FK, nullable)
     97├── status (enum: 'completed', 'in_progress')
     98├── completed_at (timestamp, nullable)
     99└── → belongsTo(user, subject, study_program, career_path)
     100
     101subjects
     102├── id, code (unique), name, name_mk
     103├── year (1-4), semester_type, subject_type
     104├── credits, description, instructions, hours
     105└── → belongsToMany(subject_prerequisites)
     106    → belongsToMany(study_programs, career_paths)
     107    → hasMany(user_progress)
     108
     109subject_prerequisites
     110├── subject_id (FK) → pivot table
     111└── prerequisite_id (FK)
     112
     113study_programs
     114├── id, code (unique), name_mk, name_en
     115├── duration_years, cycle, description_mk, description_en
     116└── → belongsToMany(subjects)
     117    → hasMany(user_progress)
     118
     119study_program_subject (Pivot Table)
     120├── id, study_program_id (FK), subject_id (FK)
     121├── type (mandatory/elective)
     122├── year, semester_type
     123├── order, timestamps
     124
     125career_paths
     126├── id, name, description
     127└── → belongsToMany(subjects)
     128
     129career_path_subject (Pivot Table)
     130├── career_path_id (FK)
     131└── subject_id (FK)
     132
     133
     134== Контролери ==
     135
     136Controllers/
     137├── RoadmapController.php       # Главна логика за roadmap генерирање
     138│   ├── create()               # Приказ на форма за создание
     139│   ├── store()                # Зачувување на избори и генерирање
     140│   ├── show()                 # Приказ на зачуван roadmap
     141│   ├── getSubjectsByProgram() # AJAX - предмети по програма
     142│   ├── generateRoadmap()      # Приватна: сортирана листа
     143│   └── generateSemesterRoadmap() # Приватна: по години/семестри
     144
     145├── SubjectController.php       # CRUD за предметите (Admin)
     146│   ├── index()                # Листа со пребарување
     147│   ├── create()               # Форма за создание
     148│   ├── store()                # Зачувување на предмет
     149│   ├── show()                 # Преглед
     150│   ├── edit()                 # Форма за уредување
     151│   ├── update()               # Ажурирање
     152│   └── destroy()              # Бришење
     153
     154├── StudyProgramController.php  # CRUD за студиски програми (Admin)
     155│   ├── index()                # Листа со пребарување
     156│   ├── create()               # Форма за создание
     157│   ├── store()                # Зачувување со предметите
     158│   ├── show()                 # Преглед со детали
     159│   ├── edit()                 # Форма за уредување
     160│   ├── update()               # Ажурирање со предметите
     161│   └── destroy()              # Бришење
     162
     163├── ProfileController.php       # Корисничкиот профил
     164│   ├── edit()
     165│   ├── update()
     166│   └── destroy()
     167
     168└── (Others: AuthController, DashboardController, итн.)
     169
     170== Middleware ==
     171
     172Middleware/
     173├── Authenticate.php           # Логирана проверка
     174├── Admin.php                  # Админ верификација
     175└── (Others)
     176
     177== Requests  ==
     178
     179
     180Requests/
     181├── StoreSubjectRequest.php    # Валидација за Subject create/update
     182├── StudyProgramRequest.php    # Валидација за StudyProgram
     183└── (Others)
     184
     185== Views ==
     186
     187views/roadmap/
     188├── create.blade.php           # Форма за создание на roadmap
     189│   ├── Step 1: Избор програма и каријерна патека
     190│   ├── AJAX: Динамичко вчитување на предмети
     191│   ├── Step 2: Избор завршени/во прогрес предмети
     192│   ├── Пребарување предмети
     193│   ├── Организирани по години
     194│   └── JavaScript за обработка
     195
     196└── show.blade.php             # Приказ на генериран roadmap
     197    ├── Header: Програма и патека
     198    ├── Progress Summary: 4 картички
     199    ├── ECTS Progress Bar: Визуелен напредок
     200    ├── Semester-by-Semester Roadmap:
     201    │   ├── За секоја година:
     202    │   │   ├── Зимски семестар
     203    │   │   └─ Летен семестар
     204    │   └── За секој предмет: готово/блокирано
     205    ├── Препорачани следни чекори:
     206    │   ├─ Готови за запишување (зелено)
     207    │   └─ Блокирани (црвено)
     208    ├── Завршени предмети
     209    └─ Во прогрес предмети
     210
     211
     212
     213== Рути во апликацијата ==
     214
     215
     216routes/
     217├── web.php                    # Главни рути
     218│   ├── GET / → Welcome
     219│   ├── GET /dashboard → Dashboard
     220│   ├── GET /roadmap/create → RoadmapController@create
     221│   ├── POST /roadmap → RoadmapController@store
     222│   ├── GET /roadmap → RoadmapController@show
     223│   ├── GET /api/study-program/{id}/subjects → RoadmapController@getSubjectsByProgram
     224│   ├── resource /subjects → SubjectController (админ)
     225│   ├── resource /study-programs → StudyProgramController (админ)
     226│   └── (Others: profile, auth)
     227
     228├── auth.php                   # Автентицирани рути
     229│   ├── Регистрирање
     230│   ├── Логирање
     231│   ├── Password reset
     232│   └── Email verification
     233
     234