Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/uximy/madness-project-react
https://github.com/uximy/madness-project-react
Last synced: 29 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/uximy/madness-project-react
- Owner: Uximy
- License: mit
- Created: 2024-03-29T10:20:28.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-03-31T12:32:34.000Z (11 months ago)
- Last Synced: 2024-11-14T22:19:30.609Z (3 months ago)
- Language: JavaScript
- Homepage: https://madgs.ru/
- Size: 8.07 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Сайт проекта Madness
![]()
![]()
![]()
Сайт проекта Madness представляет собой полноценную платформу для игрового проекта. Он включает в себя функции авторизации через Steam, публикации новостей, отображения статистики и возможность покупки привилегий через систему FreeKassa.
## Описание
Сайт разработан с использованием **React**, **Node.js** и **Express**, обеспечивая высокую производительность и удобство использования. Он предоставляет пользователям возможность приобретать игровые привилегии через систему FreeKassa, а также читать последние новости и обновления проекта.## Функционал
- **Авторизация через Steam:** Пользователи могут быстро и безопасно войти на сайт, используя свои аккаунты Steam.
- **Публикация новостей:** Администраторы могут публиковать новости и обновления проекта, которые будут отображаться на сайте.
- **Статистика:** Пользователи могут просматривать статистику игроков, такую как количество убийств и очки.
- **Покупка привилегий:** Пользователи могут приобретать игровые привилегии на сервере через сайт с помощью системы FreeKassa.## Как установить сайт
1. **Клонируйте репозиторий:** `git clone https://github.com/Madness-Project-React`
2. **Установите зависимости:** `cd Madness-Project-React && npm install`
3. **Запустите бэкенд:** `cd backend && node server.js`
4. **Запустите фронтенд:** `npm run start`
5. **Откройте сайт:** Перейдите по адресу `http://localhost:3000` в вашем браузере.## Технологии
- **Фронтенд:** React
- **Бэкенд:** Node.js, Express, WebSocket, Nodemailer, SteamAPI
- **Платежная система:** FreeKassa## Настройка backend
Для настройки backend проекта используется файл конфигурации `config.json`, который находится в папке `backend`. В нем необходимо указать следующие параметры:- **hostname:** Здесь указывается доменное имя вашего сервера.
- **port:** Порт, на котором будет работать сервер (например, 3001).
- **apiKey:** API ключ для доступа к [Steam API](https://steamcommunity.com/dev/apikey).
- **secretKey:** Секретный ключ для некоторых операций, требующих аутентификации.
- **rcon_password:** Пароль для доступа к RCON (Remote Console) сервера.- **FreeKassa:** Содержит настройки для работы с платежной системой FreeKassa.
- `merchantId`: Идентификатор мерчанта FreeKassa.
- `secretKey_1`: Секретный ключ для работы с FreeKassa.
- `secretKey_2`: Второй секретный ключ для работы с FreeKassa.- **mail:** Содержит настройки для отправки почты.
- `user`: Логин почтового ящика для отправки писем.
- `password_key`: Ключ приложения для доступа к почтовому ящику.- **database_lvlrank:** Содержит настройки для подключения к базе данных lvlrank, где хранятся уровни и ранги игроков.
- `ip_db`: IP-адрес базы данных.
- `user`: Имя пользователя базы данных.
- `database`: Название базы данных.
- `password`: Пароль для доступа к базе данных.- **database_ReactDB:** Содержит настройки для подключения к базе данных react. **(Файл базы лежит в корневой папки проекта)**
- `username`: Имя пользователя базы данных ReactDB.
- `databaseName`: Название базы данных ReactDB.
- `password`: Пароль для доступа к базе данных ReactDB.## Настройка файла .env.production
Файл **.env.production** используется для установки переменных среды во время production-сборки вашего приложения React. В нем можно указать различные настройки, которые будут использоваться в вашем приложении при запуске в production-режиме.- **HTTPS**: Установите как true, чтобы использовать HTTPS протокол на вашем сайте.
- **SSL_CRT_FILE и SSL_KEY_FILE**: Пути к SSL-сертификатам.
- **REACT_APP_NAME**: Название вашего проекта.
- **REACT_APP_API_URL_SOCKET**: URL вашего websocket backend.
- **REACT_APP_DOMAIN_NAME**: Домен вашего сайта.## Отправка шаблонных писем
После покупки привилегии отправляется шаблонное письмо на email покупателя, который он указывает при оплате на FreeKassa. Шаблон email находится в папке `backend/emailTemplate`, файл называется `success_buy.handlebars`.Для отправки шаблонной почты используется библиотека `nodemailer-express-handlebars`, а для отправки писем используется `nodemailer`. Настройка email отправителя использует почту Gmail.
## Настройка front-end
Так таковая настройка остутствует. В данный момент более-менее удобно можно изменить привилегии и правила.
Настройка правил находится в файле `src/template/AkeYlake/RulesPage.jsx`## Настройка привилегий для продажи
Переходим в директорию `src/template/AkeYlake` и находим файл `ShopDictionary.json`
Свойства объекта - массив привилегий сервера.
У привилегий следующие свойства:
- **name**: Название привилегии
- **ID**: ID привилегии. Нужно для генерации ключа.
- **Price**: Массив цен на привилегию. на 7, 30, 90 дней и навсегда.
- **decription**: Описание привилегии. Поддерживает html.## Над созданием сайта работали:
- [Uximy](https://github.com/Uximy)
- [AkeYlake](https://github.com/AkeYlake)## Помогали с разработкой:
- [VLADIC2009](https://github.com/StarForge33)Проект открыт для вклада в виде предложений и исправлений. Будем рады вашей помощи!