Журнал изменений

Отчёт по доработкам

Все правки идут с номером и форматом до / после, чтобы можно было быстро проверить прогресс с телефона.

Записей: 27 Последнее обновление: 2026-03-08
#27

Большой рывок интерфейса: новый визуальный язык, hero-band, KPI-highlight и UX-ускорение

2026-03-08

До

Интерфейс был функциональным, но визуально неоднородным: слабая иерархия блоков, менее выразительные ключевые экраны кабинета/админки и недостаточно заметные точки входа в действия.

После

Внедрен единый визуальный слой (hero-band, pill-row, banner-card, highlight KPI), усилены типографика и контраст CTA, добавлены анимации появления и обновлены ключевые экраны (админка, кабинет, каталоги), что дало заметный прирост читаемости и скорости навигации на мобильных и десктопе.

Затронутые файлы
  • src/public/assets/css/base.css
  • src/public/assets/css/components.css
  • src/views/admin/index.ejs
  • src/views/dashboard/index.ejs
  • src/views/listings/index.ejs
  • src/views/freelancers/index.ejs
  • src/data/reportEntries.js
#26

Сверхпрокачка mobile-форм: единый form UX и sticky-save панели

2026-03-08

До

Длинные формы в мобильной версии требовали постоянной прокрутки к кнопке сохранения, структура полей была неравномерной между разделами.

После

Внедрен единый form-интерфейс: form-intro, form-grid, form-card и sticky form-save панель. На страницах создания заказа, профиля фрилансера, компании и настроек кнопка сохранения всегда под рукой на мобильных.

Затронутые файлы
  • src/views/listings/create.ejs
  • src/views/profile/edit.ejs
  • src/views/employer/company.ejs
  • src/views/profile/settings.ejs
  • src/public/assets/css/components.css
  • src/data/reportEntries.js
#25

Сильная прокачка detail-интерфейсов: карточка заказа, профиль фрилансера, тарифы

2026-03-08

До

Детальные страницы оставались линейными: слабая иерархия контента, действия были разбросаны, на телефоне приходилось много прокручивать до ключевых CTA.

После

Внедрены sticky detail-quickbar, двухколоночная логика с мобильным collapse в единый поток, выделенные блоки "информация/контакты/действия" и более четкий CTA-флоу на страницах заказа, фрилансера и тарифов.

Затронутые файлы
  • src/views/listings/show.ejs
  • src/views/freelancers/show.ejs
  • src/views/pages/pricing.ejs
  • src/public/assets/css/layout.css
  • src/public/assets/css/components.css
  • src/data/reportEntries.js
#24

Глубокая mobile-прокачка личных разделов: quickbar, фильтры, action-карточки

2026-03-08

До

Личные разделы имели разный мобильный UX: фильтры и действия были разбросаны, на телефоне требовали лишних прокруток и переключений.

После

В кабинет, избранное, уведомления и отклики внедрен единый mobile-паттерн: sticky account quickbar, сворачиваемые фильтры, компактные карточки с плотными action-группами и метаданными.

Затронутые файлы
  • src/views/dashboard/index.ejs
  • src/views/favorites/index.ejs
  • src/views/notifications/index.ejs
  • src/views/applications/my.ejs
  • src/views/applications/received.ejs
  • src/public/assets/css/layout.css
  • src/public/assets/css/components.css
  • src/data/reportEntries.js
#23

Экстремальная mobile-прокачка каталогов: умные фильтры и быстрые панели

2026-03-08

До

На мобильных каталогах фильтры занимали много места и мешали быстро переходить к результатам, а карточки перегружали экран без приоритета ключевых действий.

После

Добавлены сворачиваемые mobile-фильтры с автосостоянием, sticky quickbar для мгновенного доступа к фильтрам/сбросу/результатам, переработаны карточки и теги в компактный телефонный формат.

Затронутые файлы
  • src/views/listings/index.ejs
  • src/views/freelancers/index.ejs
  • src/public/assets/css/layout.css
  • src/public/assets/css/components.css
  • src/data/reportEntries.js
#22

Сильная мобильная прокачка интерфейса: navigation dock, touch UX, адаптивная типографика

2026-03-08

До

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

После

Внедрена фиксированная мобильная панель навигации, усилены отступы под safe-area, увеличены touch-цели для кнопок/полей/пагинации, улучшены мобильные режимы шапки, действий и карточек, что заметно ускорило работу на смартфонах.

Затронутые файлы
  • src/public/assets/css/base.css
  • src/public/assets/css/layout.css
  • src/public/assets/css/components.css
  • src/views/partials/header.ejs
  • src/views/partials/footer.ejs
  • src/data/reportEntries.js
#21

Сильный апдейт админки: центр модерации и массовые действия

2026-03-08

До

Модерация была разрозненной: объявления и отклики приходилось обрабатывать по одному, не было единой очереди для быстрых решений.

После

Добавлен /admin/moderation с очередями pending/new, внедрены bulk-операции по статусам для объявлений и откликов, усилена безопасность возвратов в админке и обновлены мобильные элементы управления.

Затронутые файлы
  • src/routes/admin.js
  • src/views/admin/index.ejs
  • src/views/admin/listings.ejs
  • src/views/admin/moderation.ejs
  • src/public/assets/css/components.css
  • src/data/reportEntries.js
#20

Мощный апдейт админки: центр экспорта CSV с фильтрами и аудитом

2026-03-08

До

Не было централизованного экспорта данных: для выгрузок приходилось делать ручные SQL-запросы, а команда не имела единого мобильного интерфейса для скачивания таблиц.

После

Добавлен отдельный раздел /admin/export с параметрами периода и лимита, реализованы готовые CSV-выгрузки по пользователям, объявлениям, откликам, подпискам и аудиту, а также логирование факта экспорта в audit_logs.

Затронутые файлы
  • src/routes/admin.js
  • src/views/admin/index.ejs
  • src/views/admin/export.ejs
  • src/data/reportEntries.js
#19

Единые flash-уведомления и безопасные return_to действия

2026-03-08

До

После действий (избранное, отклики, уведомления, промо, подписка) пользователь часто не получал явной обратной связи, а return_to не был централизованно защищен.

После

Внедрен общий flash-механизм (success/error) через session+locals, добавлен безопасный обработчик return_to, и ключевые post-действия переведены на понятные уведомления с сохранением контекста перехода.

Затронутые файлы
  • src/middleware/locals.js
  • src/views/partials/header.ejs
  • src/routes/web.js
  • app.js
#18

Единый формат статусов по всему проекту

2026-03-08

До

Статусы выводились сырыми кодами (new/saved/rejected/published) и выглядели неоднородно на разных страницах.

После

Добавлен единый серверный форматтер статусов (текст + тон бейджа) и подключен в ключевых экранах кабинета/откликов/объявлений, что выровняло UX и читаемость.

Затронутые файлы
  • src/lib/status.js
  • app.js
  • src/views/applications/my.ejs
  • src/views/applications/received.ejs
  • src/views/dashboard/index.ejs
  • src/views/listings/my.ejs
#17

Большой апдейт каталога фрилансеров и сохранения для заказчика

2026-03-08

До

Каталог фрилансеров имел ограниченные фильтры, не показывал состояние сохранения, а сохранение/удаление было менее удобным.

После

Добавлены фильтры по ставке от/до, удаленному формату, сортировки; реализовано отображение сохраненных профилей и toggle-сохранение из каталога и карточки фрилансера с возвратом в текущий контекст.

Затронутые файлы
  • src/routes/web.js
  • src/views/freelancers/index.ejs
  • src/views/freelancers/show.ejs
#16

Усиление каталога объявлений и карточки отклика

2026-03-08

До

В каталоге не отображалось состояние избранного, карточка объявления слабо валидировала отклик, а возврат после добавления в избранное был не всегда контекстным.

После

Добавлено состояние избранного в каталоге/карточке, контекстный возврат после toggle favorite, строгая валидация отклика (длина текста и URL портфолио) и сохранение введенных данных при ошибке.

Затронутые файлы
  • src/routes/web.js
  • src/views/listings/index.ejs
  • src/views/listings/show.ejs
#15

Усиление аккаунта и профилей: валидация + UX ошибок

2026-03-08

До

Страницы настроек и профилей принимали данные с минимальной валидацией, ошибки отображались неравномерно, а введенные значения могли теряться.

После

Добавлены строгие проверки для /settings, /profile/edit, /employer/company; формы сохраняют введенные значения, показывают единый формат success/error, а интерфейс стал удобнее на мобильных.

Затронутые файлы
  • src/routes/web.js
  • src/views/profile/settings.ejs
  • src/views/profile/edit.ejs
  • src/views/employer/company.ejs
  • src/public/assets/css/base.css
#14

Доработка монетизации и аналитики + улучшение страницы тарифов

2026-03-08

До

Раздел монетизации был в базовом виде без удаления сущностей и с минимальной аналитической отдачей.

После

Добавлены удаление тарифов/фич, расширенные KPI-коэффициенты в аналитике и более понятные мобильные интерфейсы для монетизации и публичных тарифов.

Затронутые файлы
  • src/routes/admin.js
  • src/views/admin/analytics.ejs
  • src/views/admin/monetization.ejs
  • src/views/pages/pricing.ejs
#13

Большой апдейт админки: фильтры, поиск, пагинация, редактирование

2026-03-08

До

Админ-разделы были в базовом виде: ограниченный поиск, часть справочников без пагинации и без удобного редактирования.

После

Добавлены фильтры и поиск по пользователям/объявлениям/фрилансерам/аудиту, пагинация в справочниках и настройках, безопасное редактирование категорий/навыков/городов и удаление настроек.

Затронутые файлы
  • src/routes/admin.js
  • src/views/admin/users.ejs
  • src/views/admin/listings.ejs
  • src/views/admin/freelancers.ejs
  • src/views/admin/categories.ejs
  • src/views/admin/skills.ejs
  • src/views/admin/cities.ejs
  • src/views/admin/settings.ejs
  • src/views/admin/audit-logs.ejs
#12

Отдельный раздел «Отчёт»

2026-03-08

До

История правок была разбросана и неудобна для чтения с телефона.

После

Создана отдельная вкладка в подвале и мобильная страница отчета с нумерацией и блоками «до/после».

Затронутые файлы
  • src/views/partials/footer.ejs
  • src/routes/web.js
  • src/views/pages/report.ejs
  • src/public/assets/css/report.css
  • src/data/reportEntries.js
#11

Управление статусами объявлений заказчика

2026-03-08

До

Из кабинета заказчика не хватало удобного переключения жизненного цикла объявления.

После

Добавлены быстрые действия `published/draft/archived`, фильтр по статусу и пагинация в списке моих объявлений.

Затронутые файлы
  • src/routes/web.js
  • src/views/listings/my.ejs
#10

Крупный апдейт личных разделов

2026-03-08

До

Избранное, отклики и уведомления были без развитого управления и с ограниченной навигацией.

После

Добавлены фильтры, пагинация, удаление избранного, отзыв отклика, read/delete уведомлений, действия по статусам.

Затронутые файлы
  • src/routes/web.js
  • src/views/favorites/index.ejs
  • src/views/applications/*
  • src/views/notifications/index.ejs
#9

Профили фрилансера и компании

2026-03-08

До

Страницы профиля были слишком упрощены и не использовали часть полей из backend.

После

Добавлены рабочие поля (ставка, уровень, опыт, telegram, формат), улучшена структура и мобильный UX.

Затронутые файлы
  • src/views/profile/edit.ejs
  • src/views/employer/company.ejs
  • src/views/freelancers/show.ejs
#8

Валидация создания/редактирования объявлений

2026-03-08

До

Объявления можно было отправить с некорректным бюджетом и слабо заполненным контентом.

После

Добавлены проверки длины заголовка/описания, бюджета, контактов; форма возвращается с ошибками и old-values.

Затронутые файлы
  • src/routes/web.js
  • src/views/listings/create.ejs
  • src/views/listings/edit.ejs
#7

Валидация форм входа/регистрации

2026-03-08

До

Формы часто делали редирект без объяснения ошибок.

После

Добавлены человекочитаемые ошибки, сохранение введенных данных и проверки email/пароля/имени.

Затронутые файлы
  • src/routes/auth.js
  • src/views/auth/login.ejs
  • src/views/auth/register.ejs
#6

Аудит админ-действий и аналитика

2026-03-08

До

Не хватало прозрачности по действиям админа и детализации аналитики.

После

Добавлено логирование audit_logs, отдельная страница журнала и расширенные блоки аналитики.

Затронутые файлы
  • src/routes/admin.js
  • src/views/admin/audit-logs.ejs
  • src/views/admin/analytics.ejs
#5

SEO и техническая индексация

2026-03-08

До

Sitemap/robots были статичными и неполными.

После

Сформирован динамический sitemap с публичными разделами и карточками, robots строится от APP_URL.

Затронутые файлы
  • app.js
#4

Усиление безопасности и production-настроек

2026-03-08

До

Часть защит была базовой: слабее cookie-политика, Telegram bypass мог быть видим в форме.

После

Усилены cookie/session, rate limit для auth/api, dev bypass ограничен только dev-режимом и флагом.

Затронутые файлы
  • app.js
  • src/routes/auth.js
  • .env.example
#3

Расширенные фильтры и пагинация каталогов

2026-03-08

До

Каталоги объявлений и фрилансеров были без глубокой фильтрации и полноценной пагинации.

После

Добавлены фильтры по тексту, бюджету, уровню, формату, сортировки и страничная навигация.

Затронутые файлы
  • src/routes/web.js
  • src/views/listings/index.ejs
  • src/views/freelancers/index.ejs
  • src/views/partials/pagination.ejs
#2

Адаптация интерфейса под мобильные устройства

2026-03-08

До

На телефонах элементы выходили за экран, фильтры и кнопки в ряде страниц ломали сетку.

После

Добавлены адаптивные сетки, переносы, mobile-режим таблиц и корректное поведение форм/кнопок.

Затронутые файлы
  • src/public/assets/css/base.css
  • src/public/assets/css/layout.css
  • src/public/assets/css/components.css
#1

Стабилизация кодировки и базового рендера

2026-03-08

До

Часть файлов работала нестабильно при UTF, встречались артефакты после переносов и правок.

После

Подключение к БД переведено на utf8mb4, BOM-символы очищены в ключевых файлах, базовые страницы стабильно отдают корректный контент.

Затронутые файлы
  • src/config/db.js
  • app.js
  • src/views/*