Skip to content

AKryshnia/Bitcoin_historic_prices

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bitcoin Price Tracker (Трекер цен на биткоин)

Bitcoin Price Tracker — это полноценное приложение, разработанное с использованием Nuxt.js (фронтенд/бэкенд), которое позволяет пользователям визуализировать исторические данные о ценах на биткоин. Приложение извлекает данные из базы данных, предоставляет интерактивный график для анализа цен и поддерживает выбор различных периодов времени.


Содержание

  1. Функционал
  2. Используемые технологии
  3. Структура проекта
  4. Установка и настройка
  5. Использование
  6. API эндпоинты
  7. Docker Compose
  8. Вклад в проект
  9. Лицензия

Функционал

  • Визуализация исторических данных: Просмотр графиков изменения цены биткоина за различные периоды (1 день, 7 дней, 30 дней, 1 год) или пользовательский диапазон дат.
  • Интерактивный график:
    • Отображение тренда цен с аннотациями минимальных и максимальных значений.
    • Подсветка роста (зелёный) или падения (красный) цены.
    • Поддержка масштабирования и всплывающих подсказок для детального анализа.
  • Кэширование данных:
    • Данные загружаются с API Binance и кэшируются локально для ускорения доступа.
    • Автоматическое обновление отсутствующих или устаревших данных.
  • Пользовательский диапазон дат:
    • Возможность указать собственный диапазон дат для анализа.
    • Обработка ситуаций, когда данные недоступны для очень старых дат.
  • Автоматическое обновление данных:
    • Ежедневное автоматическое обновление данных о ценах на биткоин в 10:00 (Московское время).

Используемые технологии

  • Фронтенд:
    • Nuxt.js (Vue.js фреймворк)
    • Chart.js для визуализации данных
    • CSS для стилизации
  • Бэкенд:
    • Node.js с Express.js
    • SQLite для хранения данных
    • Axios для выполнения API запросов
    • Cron для планирования задач
  • Дополнительные инструменты:
    • Docker для контейнеризации
    • Moment.js для работы с датами
    • Node-Cache для кэширования данных в памяти

Структура проекта

bitcoin-price-tracker/
├── backend/
│   ├── index.js                # Основной файл сервера
│   ├── fetchHistory.js         # Логика загрузки исторических данных
│   ├── db/                     # Настройки базы данных
│   │   ├── database.js         # Настройка SQLite
│   │   └── btcModel.js         # Модель BTCPrice
│   ├── Dockerfile              # Dockerfile для бэкенда
│   └── package.json            # Зависимости бэкенда
├── frontend/
│   ├── components/
│   │   └── BitcoinChart.vue    # Компонент графика цен на биткоин
│   ├── pages/
│   │   └── index.vue           # Главная страница
│   ├── Dockerfile              # Dockerfile для фронтенда
│   ├── package.json            # Зависимости фронтенда
│   └── .env                    # Переменные окружения для фронтенда
├── docker-compose.yml          # Конфигурация Docker Compose
└── README.md                   # Этот файл

Установка и настройка

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

  • Установленные Docker и Docker Compose.
  • Node.js (опционально, если запуск без Docker).

Шаги

  1. Клонирование репозитория:

    git clone https://github.com/your-repo/bitcoin-price-tracker.git
    cd bitcoin-price-tracker
  2. Сборка и запуск с Docker:

    docker-compose up --build
  3. Доступ к приложению:

    • Фронтенд: Откройте http://localhost:8080 в браузере.
    • Бэкенд: Работает на http://localhost:5000.
  4. Ручная настройка (без Docker):

    • Установите зависимости для фронтенда и бэкенда:
      cd frontend && npm install
      cd ../backend && npm install
    • Запустите бэкенд:
      node index.js
    • Запустите фронтенд:
      npm run dev

Использование

  1. Выбор периода:
    • Выберите один из предопределённых периодов (1 день, 7 дней, 30 дней, 1 год) или выберите "Свой период".
  2. Просмотр графика:
    • График отображает цены на биткоин за выбранный период.
    • Аннотации показывают минимальные и максимальные значения.
  3. Пользовательский диапазон дат:
    • Введите начальную и конечную дату для анализа.
    • Если данные недоступны для выбранного диапазона, появится уведомление.

API эндпоинты

Бэкенд API (http://localhost:5000)

  1. GET /api/btc-price:

    • Получение цен на биткоин за последние N дней.
    • Параметры запроса:
      • days: Количество дней (по умолчанию: 7).
      • forceRefresh: Принудительное обновление данных (опционально).
  2. GET /api/btc-price-range:

    • Получение цен на биткоин за пользовательский диапазон дат.
    • Параметры запроса:
      • start: Начальная дата (YYYY-MM-DD).
      • end: Конечная дата (YYYY-MM-DD).

Docker Compose

Файл docker-compose.yml определяет два сервиса:

  1. Бэкенд:

    • Собирается с помощью backend/Dockerfile.
    • Открытый порт: 5000.
    • Использует постоянный том для SQLite.
  2. Фронтенд:

    • Собирается с помощью frontend/Dockerfile.
    • Открытый порт: 3000 (отображается как 8080 на хосте).
    • Зависит от сервиса бэкенда.

Запуск приложения:

docker-compose up --build

Остановка приложения:

docker-compose down

Вклад в проект

Мы приветствуем ваши предложения и улучшения! Чтобы внести вклад:

  1. Создайте форк репозитория.
  2. Создайте новую ветку (git checkout -b feature/your-feature).
  3. Зафиксируйте изменения (git commit -m 'Добавить функционал').
  4. Отправьте изменения в ветку (git push origin feature/your-feature).
  5. Откройте pull request.

Лицензия

Этот проект распространяется под лицензией MIT. Подробности см. в файле LICENSE.


Если у вас возникнут вопросы или проблемы, пожалуйста, создайте issue на GitHub.


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


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published