Skip to content

KrotovPetr/HackerNews

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HackerNews 2.0

Проект ушёл на перезагрузку, скоро здесь появится новый функционал

(Docker, Тестирование, Новая и обдуманная база данных, WebSocket)


Новый макет для реализации

Figma

Проект на стажировку в Авито на позицию стажер-фронтенд разработчик

Технологии:

Клиентская часть:
TypeScript Badge JavaScript Badge HTML5 Badge SCSS Badge React Badge Redux Badge Jest Badge
Серверная часть:
JavaScript Badge Express Badge Node Badge
База данных:
JavaScript Badge

Общие сведения:

Проект построен по логике трёхзвенной архитектуры: клиентская часть, сервер приложений, база-данных(здесь json-server - имитация хранилища). Проект писался в сжатые сроки(6 дней), поэтому местами имеются решения быстрого характера.


Инструкция по запуску:

Приложение использует следующие порты:

Клиентская часть: 3000 порт

База данных: 3001 порт

Серверная часть: 5000 порт

Вариант 1:
  1. Клонировать проект с GitHub
  2. Установить все необходимые зависимости
  3. В общем package.json нажать на выполнение команды yarn go (Команда yarn start оставлена для запуска клиентской части)
  4. Также можно запустить проект из консоли, введя команду yarn go
Вариант 2:
  1. Клонировать проект с GitHub
  2. Установить все необходимые зависимости
  3. Пройтись по каждой папке проекта с каждой частью, прочитать описания в README.md, выполнить команды запуска (Предпочтительна цепочка БД->Сервер->Клиент)

Послесловие от автора:

Т.к. часто в присланном ТЗ были расплывчатые формулировки, а Тех. Поддержка, конкретных ограничений не ставила, то были приняты следующие решения.

  1. Были переработаны API с сайта HackerAPI, ибо при их использовании сервер получал большую нагрузку
    • Число запросов без подгрузки частями составляло - 125 запросов в минуту, время, занятое данным процессом, состовляло 35 секунд
    • При использовании подгрузки и параллельных процессах, число запросов не уменьшалось, но занятое время - 5 секунд, что тоже критично
  2. На основе вышеуказанных проблем, было принято решение написать свою серверную часть. Т.к. требования по ТЗ - использовать NodeJS(чистый или фреймворк - требования не было), то серверная часть написана на Express.js
  3. Для разделения обязанностей серверов, было принято решение, создать ещё один сервер, который будет хранить, отсылать и обрабатывать данные по запросам

Все подробности по каждой части написаны в собственных README.md

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published