Skip to content

0GI4/TestTask

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

запустить публичную страницу, где любой желающий может посмотреть список идей для развития продукта и проголосовать за самые понравившиеся. Чтобы избежать накруток, ограничим голосование: с одного IP-адреса можно отдать свой голос не более чем за 10 разных идей.

Бэкенд (Node.js + Typescript + Express)

Логика голосования: Сервер должен определить IP-адрес клиента. Учтите, что сервис может работать за reverse-proxy (например, Nginx), поэтому нужно корректно обрабатывать заголовок X-Forwarded-For. Перед тем как засчитать голос, система должна проверить, не превысил ли данный IP-адрес лимит в 10 голосов. Если лимит превышен или голос за эту идею уже был, сервер должен вернуть соответствующую ошибку 409 Conflict. База данных: Используйте PostgreSQL или MySQL. Должен быть предоставлен seed-скрипт для наполнения БД. Фронтенд (React)

Отображение: При загрузке страница запрашивает и отображает список идей, отсортированный по количеству голосов. У каждой идеи есть кнопка "Проголосовать", если с этого IP адреса за идею ещё не голосовали. Интерактивность: При нажатии на кнопку "Проголосовать" должен засчитываться голос за эту идею, если пользователь не исчерпал свой лимит голосов.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published