Добро пожаловать в "Топ энергетиков" — frontend-приложение на React, созданное для оценки и выбора лучших энергетических напитков. Здесь пользователи могут оставлять отзывы, выставлять оценки и анализировать статистику популярных напитков. В нем реализованы поиск, фильтрация, работа с API Telegram (Telegram Mini App) и пользовательская аутентификация. 🚀
energy-frontend/
│
├── .github/
│ └── workflows/
│ └── docker-deploy.yml # CI/CD: деплой Docker-контейнера
│
├── public/
│ ├── favicon.ico # Иконка вкладки
│ ├── index.html # Главный HTML-шаблон
│ ├── logo192.png # Логотип для PWA (192x192)
│ ├── logo512.png # Логотип для PWA (512x512)
│ ├── manifest.json # PWA-манифест
│ └── robots.txt # Инструкции для поисковых систем
│
├── src/
│ ├── components/ # Переиспользуемые UI-компоненты
│ │ ├── ... .jsx
│ │ └── ... .css
│ ├── hooks/ # Кастомные хуки
│ │ ├── useTelegram.js # Telegram WebApp API
│ │ └── useUserVerification.js # Верификация пользователя
│ ├── pages/ # Страницы (роуты)
│ │ ├── admin/
│ │ │ ├── ... .jsx # Страницы админ-панели
│ │ │ └── ... .css
│ │ ├── ... .jsx # Обычные страницы
│ │ └── ... .css
│ ├── styles/ # Общие стили
│ │ └── App.css
│ ├── App.js # Главный компонент приложения
│ ├── config.js # Конфигурации: URL, ключи и т.д.
│ └── index.js # Точка входа, рендер React-приложения
│
├── .dockerignore # Исключения для сборки контейнера
├── .env.sample # Пример файла переменных окружения
├── .gitignore # Git-игнорируемые файлы
├── docker-compose.yml # Конфигурация Docker
├── Dockerfile # Docker-сборка фронта
├── nginx.conf # Конфиг Nginx для продакшн-сервера
├── package.json # Зависимости, скрипты, мета
└── README.md # Документация проекта
Скопируйте .env.sample
, переименуйте в .env
и добавьте свои данные.
Укажите свои значения переменных в .env
.
npm install
Для разработки и тестирования mini app на локальном сервере необходим HTTPS. Используйте туннелирование для порта, на котором запущен backend:
npm install -g tunnelmole
tmole 8000
Скопируйте выданный HTTPS-URL и установите его в REACT_APP_BACKEND_URL
в .env
.
⚠️ Убедитесь, что ваш бэкенд (FastAPI) запущен. Инструкция: репозиторий backend
npm start
Приложение будет доступно по адресу:
📍 http://localhost:3000
Доступны два способа:
-
Проверьте
.env
иdocker-compose.yml
-
Выполните сборку и пуш:
docker compose build
docker compose up -d
docker push <your-dockerhub>
-
В файле
.github/workflows/docker-deploy.yml
уже всё готово -
Перейдите в:
GitHub → Settings → Secrets and variables → Actions
-
Добавьте переменные окружения (как
REACT_APP_BACKEND_URL
,DOCKERHUB_USERNAME
и т.д.) -
При пуше в
main
ветку произойдёт автоматическая сборка и публикация образа в DockerHub
На прод-сервере можете использовать docker-compose-server.yml
из репозитория backend. Скопируйте .env.example
, переименуйте в .env
и добавьте свои данные.
Frontend взаимодействует с backend-приложением "Топ энергетиков", реализованным на FastAPI + PostgreSQL.
Для корректной работы убедитесь, что сервер backend запущен. Инструкция по установке и запуску доступна в репозитории backend.
npm install
npm run build
npm run lint
npm cache clean --force
Get-ChildItem -Path . -Recurse -Directory -Filter "node_modules" | Remove-Item -Recurse -Force #windows
Если у вас есть предложения или вопросы, создавайте issue в репозитории! 🚀