Описание лабораторной
В этой лабораторной использовал чистый PHP + немного js. Потратил на это я где-то от 30 до 40 часов. Задача была сделать приложение для отдела кадров. Основная идея в общем то - сделать CRUD-приложение с авторизацией и хорошо структурированной бд (со внешними ключами, каскадным удалением и т.д.). Верстка на бутстрапе конечно, она не была важна.
За работу эту получил 42 из 50 баллов. 8 баллов препод снял за отсутствие триггеров в бд. На тот момент я почему-то не увидел, где можно их использовать, поэтому и не сделал. Хотя можно было что-то придумать…
Что сделано?
- Модульность - его можно легко масштабировать и использовать как основу для других проектов (конечно сделано не так круто, но все же).
- Конфиг для удобного изменения различных параметров.
- Полнотекстовый поиск по релевантности почти на всех сущностях.
- Для всех сущностей БД есть CRUD интерфейс.
- Группировка пользователей по доступу (гость, работник отдела кадров, директор и администратор). Для всех, кроме админа, существуют ограничения на редактирование, добавление и просмотр.
- Пароли хранятся хешированными.
- Список сотрудников с журналом продвижения по службе. В журнале показываются все назначения сотрудника и текущая зарплата.
- Сортировка действующих сотрудников, уволенных и без единого назначения на должность.
- На вкладке “Дополнительно” есть две кнопки отвечающие за запуск хранимых процедур. Одна выдает среднюю зп, а другая - кол-во сотрудников с окладом выше заданного.
Доступ в админку
Если нужен, то для всех групп пользователей в дампе бд пароль и логин по типу login/login123!! где login - имя группы пользователя. Для admin, например, пароль будет - admin123!! и т.д
Дамп базы лежит в основной папке, данные для подключения к бд надо вписать в core/config/config.php
Скрины
Так как проект на PHP, могу выложить только скрины. Кому нужно прям потыкать - переходите в репозиторий.
В списке сотрудников показываются все сотрудники и можно воспользоваться поиском:
Можно нажать на имя сотрудника и перейти к детальному просмотру сотрудника:
Несколько скринов других сущностей:
Вкладка дополнительно: