Розробка функціоналу Рейтнг
10 700 UAHВ мунулій бесіді ви розбили рейтинг на 2 частини. В цьому проекті я об'еднав їх. Також переніс ваші коментарі. Але перечитайе будь ласка, я додав описання в яких відповів на ваші запитання + додав більше деталей
Модернізувати систему рейтинга Консультанта
На даному етапі рейтинг консультанта будується на основі наступних дій:
Коли відповідь консультанта на консультацію обрана як найкраща і консультація закрита клієнтом. До рейтингу додається +1
Коли клієнт приймає акт/етап в послузі. За кожен успішно прийнятий етап +1 к рейтингу консультанта
Коли консультанта написав статтю і вона була прийнята менеджером через адмін панель. До рейтингу консультанта +1
В базі даних, за рейтинг, відповідає колонка rating в таблиці consultants
Рейтинг консультанта повинен формуватися на основі трьох сутностей:
Оцінка від користувачів. Може бути від 0 до 5
Треба реалізувати апі метод для прийняття даних від додатків. Після успішно виконаної роботи в додатку буде з’являтися вікно в якому будемо просити клієнтів залишити оцінку(від 0 до 5) та коментар.
Загальна кількість зароблених грошей. Може бути від 0 до нескінченності. Гроші на сервісі консультанти можуть заробляти наступним чином:
Написання статей. За кожну написано статтю консультант отримую гроші. Стаття може бути написано на 3 мовах. За кожну версію платимо гроші ( цей функціонал реалізован частково. На данний момент на сервісі можна написати статтю тільки на якійсь одній мові. Якщо вона нас влаштовує - ми платимо консультанта відповідну суму). Консультант може написати статтю на 1 мові тоді ми додаємо до рейтингу +1, якщо стаття написання на 3 мовах то додаємо до рейтингу +3(за кожну версію по 1 зірочці). Також за кожну мовну версію платимо консультанту +100грн на внутрішній баланс
За надання послуг. Консультант виконує певну послугу, за успішно закритий етап в послузі платимо гроші (цей функціонал реалізован). За кожен етап +1 до рейтингу цієї складової
За успішну консультацію. Якщо кліент обрав відповідь консультанта як найкращу і закрив консультацію ми платимо відсоток консультанту (цей функціонал реалізован). +1 до рейтингу цієї складової
За документ. На сервісі є продаж документів(шаблони документів), але також консультант зможе запропонувати свій документ. Якщо цей документ нас влаштовую і менеджер прийняв пропозицію консультанта стосовно продажі документи то при продажі цього документа ми платимо відсоток консультанту (цей функціонал ще не реалізован). При підтверджені документа менеджером ми додаємо консультанту +1 до рейтингу цієї складової і при купівлі документу +1 до рейтингу цієї складової
Консультант через особистий кабінет може додати відео-консультацію на якусь тему. Якщо це відео проходить модерацію то ми додаємо +2 до цієї складової рейтингу (цей функціонал ще не реалізован). Також платимо консультанту +200грн на внутрішній баланс за кожну мовну версію
Кількість успішно виконаних замовлень (Активність)
Консультація там де його відповідь обрали найкращою і закрили консультацію
Успішно закритий етап в послузі. За кожен закритий етап клієнт може виставити оцінку та написати коментар
В особистому кабінеті консультанта буде спеціальна анкета, яку може заповнити консультант. Інформація яка буде вписана в цій анкеті може впливати на цю складову рейтингу. Консультант заповнює анкету, відсилає на модерацію, менеджер переглядає цю інформацію і може зарахувати відповідно кількість баллів до цієї складової рейтингу. Коли консультант робить якісь зміни в своємо профілю в тому числі і заповнення цієї анкети то менеджер через адмін панель повинен про модерувати ці зміни. На данному етапу модерування змін в адмін панелі реалізовано, але треба модернізувати відповідно до нового профіля і нових полів в профілі консультанта. Модерування відбувається по цьому посиланню https://testing123.consultant.net.ua/admin/consultants/changes . Зараз зміни відображаються в модальному вікні - треба також змінити цей процес. Так як інформації буде набагато більше то від модального вікна треба відмовитись і перенести все на окрему сторінку
Максимальний рейтинг консультанта може бути 100, не більше
Весь рейтинг основується на самих високих показниках на сервісі (далі буде приклад)
Описання та формула формування Рейтингу:
Так як максимальный рейтинг може бути 100 і він складається з 3 складових то кожен зі складової має свої максимальні показники:
Кількість успішно виконаних замовлень: 33
Оцінка від користувачів: 34
Кількість зароблених грошей: 33
Щоб нам сформувати рейтинг для якогось консультанта нам треба зробити наступне:
Знайти коефіцієнт в складовій Кількість успішно виконаних замовлень(активність). Ми з бази даних витягуємо консультанта я кого кількість успішно завершених завдань найбільший. Наприклад нехай це буде 1000. Цей консультант і цей показник буде відправною точкою/еталоном для формування рейтингу для інших консультантів. Нам треба знайти такий собі коефіцієнт: 33/1000=0,033.
Знайти коефіцієнт в складовій Загальна кількість зароблених грошей. Ми з бази даних витягуємо консультанта у якого сума зароблених грошей на сервісі найбільша. Наприклад нехай це буде 60 000грн. Цей консультант і цей показник буде відправною точкою/еталоном для формування рейтингу для інших консультантів по цій складовій. Нам треба знайти такий собі коефіцієнт: 33/60000=0,00055.
Знайти коефіцієнт в складовій Оцінка від користувачів. Кожен кліент може поставити консультанту оцінку після виконання роботи. Оцінка може бути від 0 до 5. Беремо середне між сумой всіх оцінок і їх кількості, отримаємо середню оцінку, нехай для прикладу це буде 4. Ми з бази даних витягуємо консультанта у якого найвища оцінка на сервісі, для прикладу нехай це буде 5. Цей консультант і цей показник буде відправною точкою/еталоном для формування рейтингу для інших консультантів по цій складовій. Нам треба знайти такий собі коефіцієнт: 34/5=6,6.
Тепер по кожній складовій в нас є якийсь коефіцієнт, нам треба взяти ці коефіцієнти відповідно їх помножити на параметр кожного з консультантів і додати між собою. Приклад з формулою у кінці:
Консультант | Вид рейтингу | Рейтинг знач | Позиція в рейтингу | |||
Консультант | Актив | Відгуки | Гроші | |||
Фікс знач | 33 | 34 | 33 | |||
Петров | 127 | 4,5 | 32493 | 40,17 | 4 | |
Сидоров | 478 | 4 | 500 | 46 | 3 | |
Молчанов | 900 | 3,2 | 2500 | 57,5 | 2 | |
Тарасенко | 90 | 4,8 | 25000 | 62,22 | 1 | |
Найбільше значення для колонки “Актив” = 900 (= 33)
(Коефіціент = 33\900 = 0,036)
Найбільше значення для колонки “Відгуки” = 4,8 (=34)
(Коефіціент = 34\4,8 = 7,08)
Найбільше значення для колонки “Гроші” = 32493 (=33)
(Коефіціент = 33\32493 = 0,001)
Для Петрова вираховуємо його рейтинг:
(127*0,036)+(4,5*7,08)+(32493*0,001) = 40,17
Для Сидорова вираховуємо його рейтинг:
(478*0,036)+(4*7,08)+(500*0,001)= 46
Для Молчанова вираховуємо його рейтинг:
(900*0,036)+(3,2*7,08)+(2500*0,001) = 57,5
Для Тарасенка вираховуємо його рейтинг:
(90*0,036)+(4,8*7,08)+(25000*0,001) = 62,22
(х*К1)+(y*K2)+(z*K3) = Рейтинг, де x, y, z - знач_складової_консультанта, а К1, К2, К3 - це відомі коефіціенти від найбільшого значення складової консультанта в рейтингу за день.
У консультанта в особистому кабінеті є спеціальна анкета, яку він може заповнити. Заповняється вона текстом та прикріпляється файл. Після заповнення дані повині попадат в адмін панель сайту для перевірки менеджером, Якщо менеджер вирішить що ведені дані в анкету вірні і реальні то він може зарахувати консультанту певну кількість балів в рейтинг
Треба зробити окрему сторінку під назваою Запити на підвищення рейтингу. На ній буде відображатися список таких запитів. Кожен запит можна продивитися детально (всі заповнені поля в анкеті) і 2 кнопки - Підтвердити та Відхилити і поле для кількості рейтунгу для нарахування. Якщо натискає Підтвердити то консультанту зараховується ця кількість до рейтингу. Якщо натискає на Відхилити то з’являеться вікно з полем для воду текста-причини. Менеджер пишу причину відмови, підтверджує дію і причини відправляється на емейл консультанту.
Анкета і поля в ній: ( всі поля для введення тексту. Максимальна довжини по 1000 символів на поле + до кожного поля консультанта повинен додати зображення, яке б підтверджували написане)
Який ваш загальний юридичний стаж (текстове поле, максимальне довжину тексту 1000 символів)
ВНЗ, кількість років (відкрита відповідь)
Післядипломна освіта, кількість років (відкрита відповідь)
Аспірантура, кількість років (відкрита відповідь)
Докторантура, кількість років (відкрита відповідь)
Самоосвіта, кількість років ( відкрита відповідь)
Власний варіант, кількість років (відкрита відповідь)
Правоохоронні органи, кількість років(відкрита відповідь)
Прокуратура, кількість років (відкрита відповідь)
Суд, кількість років (відкрита відповідь)
Помічник адвоката, кількість років( відкрита відповідь)
Адвокат, кількість років (кількість років)
Керівник/засновник адвокатського об’єднання, кількість років (відкрита відповідь)
Юрист на підприємствах/організаціях, кількість років (відкрита відповідь)
Керівник юридичного відділу, кількість років ( відкрита відповідь)
Викладацька діяльність, кількість років (відкрита відповідь)
Власний варіант, кількість років (відкрита відповідь)
Підвищення кваліфікації (власний варіант відповіді)
Отримання наукового ступеню(власний варіант відповіді)
Зазначення кількості справ з можливістю розміщення посилання на справу(відкрита відповідь)
Отримання позитивних відгуків, висвітлення в засобах масової інформації
Є автором статей опублікованих в національних юридичних виданнях, або іноземних
Сторінка Рейтингу та описання логіки
На сторінці рейтингу треба виводити всіх консультантів які зареєстровані на сервісі відповідно до дизайну і порядку
Порядок відображення:
Всі картки консультантів розділені на 3 сектора. Сектор відповідає купленій Підписці. Якщо консультант купив Верифікований пакет, то він повинен відображатися в секторі Верифікований, якщо купив Верифікований PRO підписку то в секторі Верифікований PRO і т.д
Всі хто з підпискою Верифікований PRO – зверху, купуючи рекламу – вище інших Верифікований PRO.
Верифікований – відображаються завжди під Верифікований PRO користувачами. Купуючи рекламу Верифікований – секторально вище від Верифікований інших, але не вище Верифікований PRO.
Базова підписка - відображаються під Верифікований. Купуючи рекламу базовий - секторально вище від базових інших, але не вище ніж Верифікований
Рекламний акаунт завжди відображається зверху в своєму секторі. В блоці реклами в правому верхньому куті додати слово «Реклама»
Виводити картки консультантів в секторі потрібно за наступними умовами:
Якщо профіль без реклами то ми виводимо його відповідно його рейтингу(зверху той у кого рейтинг більше)
Якщо профіль оплатив рекламу то ми виводимо його зверху в секторі вище профіля у якого більше рейтинг але немає реклами
Якщо 2 або більше профіля купили рекламу, то ми виводимо їх зверху профілів які без реклами АЛЕ сортуємо по принципу у кого рейтинг більше той ближче до початку. Тобто в рекламі спочатку той, у якого вищий рейтинг.
На сторінці рейтингу є фільтри:
Підписка
Верифікований PRO
Верифікований
Базовий
По спеціалізаціям. В адмін панелі сайту можна створювати різні спеціалізації і коли консультант реєструеться на сайті він обирає одну з спеціалізацій.
Адвокат / Юрист
Нотаріус
Бухгалтер
і т.д, всі які сформовані в адмін панелі
По Регіону
Список регіонів зашит хардкодом в базі данних наскільки мені відомо. В цьому блоці відображаються всі регіони які є в цьому списку
По Послугам
В нас є основні категорії в послугах( це ті в яких відсутній parent_id). Тут виводяться всі основні категорії які в нас є
Клієнт може комбінувати фільтри між собою, наприклад Верифікований + Київ + Бізнес. Таким чином система повинна видати йому консультантів які мають пакет Верифікований, знаходяться в Києві і надають послугу Бізнес
Також нам треба, щоб під кожний такий варіант комбінування була створена сторінка, щоб вона мала свій унікальний url який не змінюється. На основі прикладу зверху url мав би бути таким:
consultant.net.ua/rating/verify-kyiv-bisnes
Правило формування URL, послідовність:
код пакету
код спеціалізації
код регіону
код основної категорії
Коди через дефіс. Коди можуть мати лише латинські символи та підкреслення.
Бажана довжина коду до 25 символів.
Для генерування сторінок рейтингу треба зробити консольну команду, яка генеруватиме усі можливі Сторінки рейтингу консультантів. Для запуску команди в адмінку треба вивести кнопку. При генерації сторінок дані які були вже вписані на тій чи іншій сторінці(тайтл, декспрішн, сео текст) не повинні видалятися/змінюватись
На цих сторінках ми хочемо змінювати текст(на сторінці буде текст) і метадані (тайтл, дескріпшн). Тому нам треба в адмінці окремий пункт меню, де списком буде виводитись всі такі сторінки і які можна редагувати
Адмін панель
В адмінці додати перелік "Сторінки рейтингу консультантів"
Над переліком додати кнопку: "Додати сторінку". Кнопки Редагувати сторінку.
Після натискання на "Додати сторінку" показати вспливаюче вікно де можна вибрати з наступних полів:
перелік пакетів або пусто (1);
перелік спеціалізацій або пусто (2);
перелік регіонів або пусто (3);
перелік основних категорій послуг або пусто (4);
(обов'язково треба обрати хоча б одне поле з 1, 2, 3, 4)
поле коду url, яке заповнюватиметься на основі обраних полів вище динамічно унікальним кодом з дефісом в якості сепаратора з можливим додаванням в кінці цифри за наявності дубля;
кнопка Створити сторінку, після натискання переходимо на сторінку редагування Сторінки рейтингу консультанта з вибраними фільтрами.
Для кожного з полів треба забезпечити наявність коду, який складатиметься з латинських символів та підкреслення окрім дефіса.
Автоматичне заповнення відфільтрованих Сторінок рейтингу консультанта: додати консольну команду, яка генеруватиме усі можливі Сторінки рейтингу консультантів.
На сторінці редагування відфільтрованої Сторінки рейтингу консультанта
При створенні нової сторінки зробити перевірку на вже наявну подібну сторінку
При створенні нової сторінки перевіряти url на наявність дублів. Якщо дубль є показати помилку
Приблизні майбутні таблиці
Таблиця rating_pages:
- id
- code, комбінований code до 100 символів
- package_id
- specialization_id
- region_id
- service_category_id
Таблиця rating_page_translations:
- id
- locale
- page_title
- meta_title
- meta_description
- meta_keywords
- page_text
Для мобільних додатків (треба зробити апі для додатків). Кліент буде виставляти оцінку і сам коментар і нам треба її зберігати на сервері, бо це складова формування рейтингу
Додати вікно з оцінкою та полем коментаря, яке буде з’являтися після наступних дій:
За надання послуг. Коли клієнт приймає етап йому з'являється вікно в якому він повинен виставити оцінку та написати коментар консультанту який виконував даний етап. Оціночне вікно повинно з’являтися після кожного, успішно закритого етапу.
За успішну консультацію. Якщо клієнт обрав відповідь консультанта як найкращу і закрив консультацію в моб додатку з'являється вікно в якому він повинен виставити оцінку та написати коментар консультанту який виконував даний етап. Оціночне вікно повинно з’являтися після кожного, успішно закритого етапу.
При покупці документа. Якщо клієнт купив документ консультанта в моб додатку з'являється вікно в якому він повинен виставити оцінку та написати коментар консультанту який виконував даний етап. Оціночне вікно повинно з’являтися після кожного, успішно закритого етапу.
Коли клієнт поставив оцінку і написав коментар він натискає на кнопку Відправити, в цей момент дані відправляються на сервер, а клієнту відкривається модальне вікно з текстом Дякуємо!
Для кліента обов’язковим є поле Оцінка(він 0 до 5), поле коментар залишається вибіркови
Тут в тз і по сторінці і по самому формуванню рейтингу. Додав деталі, зробив приклад-таблицю + написав формули як рахуеться рейтинг. Передевіться будь ласка, якщо вартість міняється - пишіть змінемо
Прикріпив всі дизайн сторінки які стосуються рейтингу (це особистий кабінет, анкета, сторінка рейтингу на якій виводиться консультанті
Реалізація ajax запитів тут теж актуальна
Приложения 9
Актуальные фриланс-проекты в категории Веб-программирование
Вебфлоу разработчик для заполнения страниц портфолио на сайтеСайт разработан кастомно на Webflow для строительной компании, нужно быстро заполнить страницы проектов по одному шаблону (заменить картинки и тексты) Для 2 языков Количество - 6 штук Готовы начинать как можно скорее, спасибо! HTML и CSS верстка, Веб-программирование ∙ 11 часов 11 минут назад ∙ 26 ставок |
Администратор-настройщик LearnWorldsЗадача Настроить готовую платформу LearnWorlds под элитный онлайн-курс. Не разрабатывать архитектуру — реализовать уже готовую структуру руками в admin panel. ———————— Что нужно сделать: Брендинг ⦁ Подключить свой домен ⦁ Загрузить логотип, настроить фирменные цвета ⦁… CMS, Веб-программирование ∙ 14 часов 15 минут назад ∙ 8 ставок |
Верстка та посадка на WordPress сайту будівельної компанії (Premium-сегмент) з акцентом на SEOОписание проекта: Ищем опытного WordPress-разработчика для верстки и посадки готового дизайн-макета из Figma на CMS WordPress. Важный контекст проекта: Это не разработка сайта с нуля. Компания имеет действующий сайт, мы обновляем структуру и дизайн. Нам необходимо реализовать… HTML и CSS верстка, Веб-программирование ∙ 15 часов 53 минуты назад ∙ 48 ставок |
~5 микросервисов на FastAPI + правки и рефакторинг
15 682 UAH
Есть проект состоящий примерно из ~11 микросервисов на FastAPI с интеграциями, который более, чем на половину готов. Задача доделать остальные ~5 микросервисов (более конкретно - subscription/billing и интеграция с Revenuecat, abuse protection для биллинга, Notifications,… Python, Веб-программирование ∙ 18 часов 4 минуты назад ∙ 31 ставка |
Адаптивный дизайн портфолио сайта (wordap - сайт для продажи и покупки)Мне нужен чистый, современный сайт портфолио, который соответствует моему существующему бренд-гиду и прекрасно адаптируется к настольным компьютерам, планшетам и мобильным устройствам. Задача сайта проста: выделить мою работу с помощью эффектных фотографий, встроенных видео и… CMS, Веб-программирование ∙ 1 день 8 часов назад ∙ 39 ставок |