Skip to content

Apocfel/CityPulse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CityPulse

Микросервис для агрегации данных о погоде, новостях и курсах валют для выбранного города.

Предварительные требования

  • Node.js
  • Redis
  • API-ключ от GNews

Установка и запуск

  1. Клонировать репозиторий и установить зависимости:

git clone https://github.com/Apocfel/CityPulse.git

cd citypulse

npm install

  1. Создать файл ".env" в корне проекта. В переменную "NEWS_API_KEY" присвоить значение API ключа от gnews

  2. Опционально: Запустить Redis-сервер если необходимо кэширование ответов на запросы

  3. Запуск проекта

node app.js

Сервер будет доступен по адресу: http://localhost:3000 В консоли будут тестовые эндпоинты демонстрирующие функциональность

API Endpoints

  • GET / - Проверка работы сервера

  • GET /api/cities - Список доступных городов

  • GET /api/feed/:cityId - Все данные для города (основной эндпоинт)

  • GET /api/weather/:cityId - Только погода

  • GET /api/news/:cityId - Только новости

  • GET /api/currency/:cityId - Только курсы валют

Заметки

  • Некоторые сервисы могут быть недоступны в зависимости от расположения сервера и использования VPN.
  • В конфигурации (config/cities.js) только 5 городов: Москва, Лондон, Нью-Йорк, Токио и Берлин. Для добавления других городов можно просто дополнить файл в аналогичном формате.
  • Данные кэшируются на 5 минут. При необходимости изменения этого параметра следует редактировать параметр ttlSeconds в services/cacheService.js

Возможные улучшения

  • Добавление Docker
  • Тесты
  • Расширение функционала
  • Добавление фронт-энда

Лицензия MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published