Рейтинг: 50
не верифицирован
Всего отзывов: 0
  • Работ в портфолио: 6
  • Типовых услуг: 0
  • Работ на продажу: 0
  • Образование: Бакалавриат
  • Стаж работы: 21 год
  • Тип занятости: Полный фриланс
  • Юридический статус:Самозанятый
Был на сайте:

CRM — Система управления медицинскими залогами

Используемые навыки:

Описание

Комплексное веб-приложение для управления медицинскими юридическими залогами, предназначенное для отслеживания и мониторинга судебных дел, информации о клиентах и ​​финансовых расчетов.

Решение

Общая структура:
Приложение построено на основе кастомного паттерна MVC (Model-View-Controller) с доменно-ориентированной организацией.

Ключевые архитектурные компоненты:
1. Паттерн Front Controller
В качестве фронт-контроллера используется файл index.php, который:
Загружает зависимости через Composer
Инициализирует конфигурацию
Разрешает зависимости через DiResolver
Маршрутизирует запросы через Router

2. Кастомный роутер
Класс Router отвечает за:
Разбор URL и маршрутизацию к соответствующим контроллерам
Проверку аутентификации
Рендеринг шаблонов
Внедрение зависимостей в контроллеры

3. Контейнер внедрения зависимостей
Класс DiResolver предоставляет:
Автоматическое разрешение зависимостей с использованием PHP Reflection
Внедрение зависимостей через конструктор
Поддержку как классовых, так и примитивных зависимостей

4. Шаблонный слой представления
Приложение использует простую систему шаблонов:
Шаблоны содержат плейсхолдеры в фигурных скобках {PLACEHOLDER}
Класс OutputBuilder загружает шаблоны и подставляет значения
Контроллеры возвращают массивы данных, которые объединяются с шаблонами

5. Доменно-ориентированная организация
Бизнес-логика разделена по доменным сущностям:
Attorneys (Адвокаты)
Lawfirms (Юридические фирмы)
Lien (Залоги)
Login (Авторизация)
Paralegals (Помощники юристов)
Patients (Пациенты)
Procedures (Процедуры)
Users (Пользователи)
Reports (Отчёты)
Export (Экспорт)

Каждый домен включает:
Контроллер (обработка HTTP-запросов)
Модель (бизнес-логика и доступ к данным)
Шаблоны (HTML-представления)

Паттерны проектирования и подходы реализации:

1. Паттерн Singleton
Используется для управления подключением к базе данных через trait DBInstance
Гарантирует единственный экземпляр подключения
Предоставляет статический доступ к БД

2. Паттерн «Фабрика»
Реализован в DataTableFactory
Создаёт соответствующие объекты таблиц данных по типу
Централизует логику создания объектов

3. Паттерн «Стратегия»
Используется в реализациях таблиц данных
Разные классы реализуют интерфейс DataTableInterface
Позволяет взаимозаменяемые стратегии форматирования данных

4. Паттерн «Шаблонный метод»
Применяется в базовой структуре контроллеров
Общие методы: inject(), action(), output()
Подклассы реализуют специфичное поведение

5. Паттерн Repository (частичная реализация)
Модели выступают в роли репозиториев доменных сущностей
Инкапсулируют логику доступа к данным
Предоставляют доменно-специфичные методы

6. Паттерн Front Controller
Централизованная обработка запросов через index.php
Единая инициализация и конфигурация
Ключевые компоненты и их взаимосвязи
Базовая инфраструктура
Router — центральный диспетчер запросов
DiResolver — контейнер внедрения зависимостей
Слой БД — доступ к данным через Delight-im/DB
Система вывода — рендеринг шаблонов
Доменные компоненты
Controllers — обработка HTTP-запросов
Models — бизнес-логика и работа с БД
Templates — HTML-шаблоны с плейсхолдерами
Аутентификация и авторизация
Используется библиотека Delight-im/Auth
Ролевой доступ (SUPER_ADMIN, MANAGER)
Управление сессиями и паролями

Результат

Интересные особенности:
Гибкая шаблонная система
Ролевой контроль доступа
AJAX-таблицы данных
Валидация форм на сервере и клиенте
Автоматическое внедрение зависимостей
Централизованное управление конфигурацией

Технологический стек

Backend:
PHP 7+
MySQL
Delight-im/DB
Delight-im/Auth
PHPMailer
vlucas/phpdotenv

Frontend:
Bootstrap 4
jQuery
DataTables
jQuery UI
jQuery Validation
Font Awesome, Material Icons

Безопасность:
Проверенная библиотека аутентификации
Ролевой доступ
Санация входных данных
Защита от SQL-инъекций
XSS-защита через шаблоны
CSRF-защита явно не реализована

Масштабируемость:
PDO и подготовленные запросы
Отсутствие кэширования
Стандартные PHP-сессии
Нет встроенного балансирования нагрузки

Поддерживаемость:
Доменно-ориентированная структура
Слабая связанность компонентов
Разделение логики и представления
Конфигурация по окружениям
Централизованная обработка ошибок

Ссылки на примеры реализации

 legalliens.kaydansky.ru

Презентация проекта

Screenshot 2026-01-31 221515.png
Screenshot 2026-01-31 221535.png

Оценили проект:

0