No description
Find a file
Живко Георгиев f1ba2e2cf5 fix: Improve waitForFunction timing for loadSettings and loadLogs
- Reduced wait attempts and interval for better responsiveness
- Changed from window.loadSettings to loadSettings (already handles window.*)
- Increased initial delay to 1500ms for script loading
- Fixes 'function not found' errors
2025-12-03 14:58:57 +02:00
assets/images feat: Add online/offline status for users in admin panel 2025-12-03 11:49:49 +02:00
database feat: Add online/offline status for users in admin panel 2025-12-03 11:49:49 +02:00
docs feat: Add online/offline status for users in admin panel 2025-12-03 11:49:49 +02:00
install feat: Add online/offline status for users in admin panel 2025-12-03 11:49:49 +02:00
prisma feat: Add online/offline status for users in admin panel 2025-12-03 11:49:49 +02:00
scripts feat: Add online/offline status for users in admin panel 2025-12-03 11:49:49 +02:00
server feat: Add economy API routes and fix mining service 2025-12-03 13:59:42 +02:00
src fix: Improve waitForFunction timing for loadSettings and loadLogs 2025-12-03 14:58:57 +02:00
.dockerignore Add Docker development sync system and auto-sync scripts 2025-12-02 12:07:05 +02:00
.editorconfig feat: Add online/offline status for users in admin panel 2025-12-03 11:49:49 +02:00
.env.example Add Docker development sync system and auto-sync scripts 2025-12-02 12:07:05 +02:00
.gitignore chore: Add backups directory to .gitignore 2025-12-03 12:42:14 +02:00
.gitlab-ci.yml feat: Add online/offline status for users in admin panel 2025-12-03 11:49:49 +02:00
.npmrc feat: Add online/offline status for users in admin panel 2025-12-03 11:49:49 +02:00
.nvmrc feat: Add online/offline status for users in admin panel 2025-12-03 11:49:49 +02:00
.prettierrc Initial commit: PixelMine platform with MySQL backend, installation system, and complete project structure 2025-12-02 07:55:35 +02:00
Archive.zip feat: Complete React integration with Ant Design and dnd-kit 2025-12-02 13:52:34 +02:00
BACKEND_CHECK_REPORT.md feat: Add online/offline status for users in admin panel 2025-12-03 11:49:49 +02:00
CHANGELOG_ADMIN_BACKEND_V1.md feat: Add online/offline status for users in admin panel 2025-12-03 11:49:49 +02:00
CONTRIBUTING.md Initial commit: PixelMine platform with MySQL backend, installation system, and complete project structure 2025-12-02 07:55:35 +02:00
COPYRIGHT.md feat: Add online/offline status for users in admin panel 2025-12-03 11:49:49 +02:00
DATABASE_ANALYSIS.md fix: Update DATABASE_ANALYSIS.md with correct statistics 2025-12-03 12:27:29 +02:00
docker-compose.dev.yml feat: Add online/offline status for users in admin panel 2025-12-03 11:49:49 +02:00
docker-compose.prod.yml feat: Add online/offline status for users in admin panel 2025-12-03 11:49:49 +02:00
docker-compose.yml fix: Revert Nginx health check to wget (available in alpine) 2025-12-03 12:43:05 +02:00
DOCKER_INSTALL.md feat: Add online/offline status for users in admin panel 2025-12-03 11:49:49 +02:00
Dockerfile fix: Add DATABASE_URL and OpenSSL for Prisma 2025-12-02 21:08:57 +02:00
faucet.code-workspace Initial commit: PixelMine platform with MySQL backend, installation system, and complete project structure 2025-12-02 07:55:35 +02:00
game.html Add Docker development sync system and auto-sync scripts 2025-12-02 12:07:05 +02:00
GIT_SETUP.md feat: Add online/offline status for users in admin panel 2025-12-03 11:49:49 +02:00
IMPLEMENTATION_SUMMARY.md feat: Add online/offline status for users in admin panel 2025-12-03 11:49:49 +02:00
index.html Add Docker development sync system and auto-sync scripts 2025-12-02 12:07:05 +02:00
INNOVATION_PLAN.md docs: Complete Phase 2 health-check and Phase 3 documentation 2025-12-03 12:24:10 +02:00
install.sh Initial commit: PixelMine platform with MySQL backend, installation system, and complete project structure 2025-12-02 07:55:35 +02:00
INSTALLATION.md feat: Add online/offline status for users in admin panel 2025-12-03 11:49:49 +02:00
LICENSE feat: Add online/offline status for users in admin panel 2025-12-03 11:49:49 +02:00
Makefile feat: Add online/offline status for users in admin panel 2025-12-03 11:49:49 +02:00
nginx.conf fix: Disable caching for all JS/CSS files in development 2025-12-03 14:02:53 +02:00
nginx.prod.conf feat: Add online/offline status for users in admin panel 2025-12-03 11:49:49 +02:00
nodemon.json feat: Optimize nodemon for instant file watching 2025-12-03 13:46:59 +02:00
package.json feat: Optimize nodemon for instant file watching 2025-12-03 13:46:59 +02:00
PHASE1_COMPLETE.md fix: Correct statistics in PHASE1_COMPLETE.md 2025-12-03 12:27:00 +02:00
PHASE2_HEALTH_CHECK.md docs: Complete Phase 2 health-check and Phase 3 documentation 2025-12-03 12:24:10 +02:00
PHASE2_UI_CHECKLIST.md docs: Complete Phase 2 health-check and Phase 3 documentation 2025-12-03 12:24:10 +02:00
PROJECT_STRUCTURE.md feat: Add online/offline status for users in admin panel 2025-12-03 11:49:49 +02:00
QUICK_START.md Initial commit: PixelMine platform with MySQL backend, installation system, and complete project structure 2025-12-02 07:55:35 +02:00
REACT_QUICK_START.md feat: Add online/offline status for users in admin panel 2025-12-03 11:49:49 +02:00
README.md docs: Comprehensive README update with project overview 2025-12-03 13:16:08 +02:00
README_REACT.md feat: Add online/offline status for users in admin panel 2025-12-03 11:49:49 +02:00
sign-in.html Add Docker development sync system and auto-sync scripts 2025-12-02 12:07:05 +02:00
STRUCTURE_SUMMARY.txt Initial commit: PixelMine platform with MySQL backend, installation system, and complete project structure 2025-12-02 07:55:35 +02:00
TEST_RESULTS.md feat: Add online/offline status for users in admin panel 2025-12-03 11:49:49 +02:00
TESTING_GUIDE.md feat: Add online/offline status for users in admin panel 2025-12-03 11:49:49 +02:00
vite.config.js fix: Поправени критични грешки в проекта 2025-12-03 09:05:09 +02:00

🎮 PixelMine - Crypto Mining Game Platform

Version License Node Docker

A comprehensive cryptocurrency mining game platform with room customization, real-time mining, and blockchain integration

FeaturesQuick StartDocumentationArchitecture


📖 За проекта

PixelMine е иновативна криптовалутна игрална платформа, която комбинира елементи от симулационни игри с реална криптовалутна икономика. Играчите могат да създават и управляват виртуални миньорски стаи, да поставят рафтове и майнери, да генерират мощност и да печелят реални криптовалути.

🎯 Основна концепция

Играчите започват с празна стая и постепенно я изграждат като:

  • 🏠 Създават стаи - различни типове стаи с различни характеристики
  • 📦 Поставят рафтове - рафтовете служат като основа за майнерите
  • Инсталират майнери - различни типове майнери генерират различна мощност
  • 💰 Печелят награди - мощността се преобразува в криптовалути (VRSC, BTC, ETH)
  • 🔄 Търгуват - пазар за покупка и продажба на майнери и рафтове
  • 🎁 Участват в експедиции - специални събития с уникални награди

Features

🎮 Игрални функции

  • 🏠 Room System - Създаване и управление на виртуални миньорски стаи
  • 📦 Rack System - Поставяне на рафтове в стаите за организиране на майнерите
  • Miner System - Различни типове майнери с различна мощност и ефективност
  • 💎 Power Generation - Реално време изчисляване на мощност от всички майнери
  • 📊 Leaderboard - Класация на играчите по мощност и баланс
  • 🎯 Tasks & Achievements - Задачи и постижения с награди
  • 🗺️ Expeditions - Специални събития и експедиции
  • 💬 Live Chat - Реално време чат с Socket.IO

💰 Криптовалутни функции

  • 💳 Payment Gateway - Депозити и тегления в BTC, ETH, LTC, DOGE
  • 🔐 Wallet Integration - Интеграция с крипто портфейли
  • 💵 Balance Management - Управление на баланси в различни криптовалути
  • 📈 Exchange Rates - Реално време обменни курсове
  • 🔒 Security - KYC/AML проверки и лимити за тегления

👥 Потребителски функции

  • 🔐 Authentication - JWT базирана автентификация
  • 👤 User Profiles - Профили с статистики и история
  • 🎁 Referral System - Реферална система с награди
  • 📱 Responsive Design - Работи на всички устройства
  • 🌐 Multi-language - Поддръжка на български и английски

🛠️ Админ функции

  • 📊 Admin Dashboard - Статистики и мониторинг
  • 👥 User Management - Управление на потребители (роли, банове, баланси)
  • 💰 Finance Management - Управление на транзакции и плащания
  • 🏠 Rooms & Items Management - Управление на стаи, рафтове и майнери
  • ⚙️ Settings - Системни настройки и конфигурация
  • 📋 Logs & Audit - Логове и аудит на действия
  • 🔒 Security - Сигурност и мониторинг
  • 📈 Analytics - Аналитика и отчети

🏗️ Architecture

Tech Stack

Backend

  • Runtime: Node.js 18+
  • Framework: Express.js
  • Database: MySQL/MariaDB 10.11
  • ORM: Prisma 5.7+
  • Cache/Queue: Redis 7
  • Real-time: Socket.IO 4.7+
  • Authentication: JWT (jsonwebtoken)
  • Validation: Zod 3.23+
  • Security: Helmet, bcryptjs, express-rate-limit

Frontend

  • Legacy: Vanilla JavaScript (ES6+)
  • Modern: React 18.2+ with Vite
  • UI Library: Ant Design 5.12+
  • State Management: React Context API
  • Routing: React Router 6.21+
  • Real-time: Socket.IO Client

Infrastructure

  • Containerization: Docker + Docker Compose
  • Web Server: Nginx (Alpine)
  • Process Manager: Nodemon (development)

Project Structure

faucet/
├── 📁 server/                 # Backend API
│   ├── routes/                # API endpoints (20+ routes)
│   │   ├── admin.js           # Admin routes
│   │   ├── auth.js            # Authentication
│   │   ├── users.js           # User management
│   │   ├── rooms.js           # Room management
│   │   ├── items.js           # Items (racks, miners)
│   │   ├── payments.js        # Payment processing
│   │   └── ...                # More routes
│   ├── services/              # Business logic (12 services)
│   │   ├── userService.js     # User operations
│   │   ├── roomService.js     # Room operations
│   │   ├── paymentsService.js # Payment processing
│   │   ├── miningService.js    # Mining calculations
│   │   └── ...                # More services
│   ├── middleware/            # Express middleware
│   │   ├── auth.js            # JWT authentication
│   │   ├── rbac.js            # Role-based access control
│   │   ├── validation.js      # Request validation
│   │   └── security.js         # Security headers
│   └── handlers/              # Socket.IO handlers
│       ├── chat.js            # Chat events
│       ├── power.js           # Power updates
│       └── rooms.js           # Room events
│
├── 📁 src/                     # Frontend
│   ├── admin/                  # Admin panel (legacy)
│   │   ├── index.html          # Admin dashboard
│   │   └── js/                 # Admin JavaScript
│   ├── legacy/                 # Legacy vanilla JS
│   │   ├── js/                 # Legacy modules
│   │   ├── css/                # Legacy styles
│   │   └── *.html              # Legacy pages
│   ├── react/                  # Modern React app
│   │   ├── components/         # React components
│   │   ├── pages/              # Page components
│   │   ├── layouts/            # Layout components
│   │   ├── hooks/              # Custom hooks
│   │   └── utils/              # Utilities
│   └── shared/                 # Shared code
│       ├── api/                # API client
│       └── socket/             # Socket client
│
├── 📁 prisma/                  # Database schema
│   └── schema.prisma           # Prisma schema (42 tables)
│
├── 📁 database/                # SQL files
│   ├── schema.sql              # Initial schema
│   ├── seed.sql                # Seed data
│   └── migrations/             # SQL migrations
│
├── 📁 docs/                     # Documentation
│   ├── ADMIN_API.md            # Admin API docs
│   ├── DATABASE.md              # Database docs
│   ├── DEVELOPMENT.md           # Development guide
│   └── ...                      # More docs
│
├── 📁 scripts/                  # Utility scripts
│   ├── backup-database.sh       # Database backup
│   ├── setup-docker.sh          # Docker setup
│   └── ...                      # More scripts
│
├── 📁 assets/                   # Static assets
│   ├── images/                  # Images
│   └── icons/                   # Icons
│
├── docker-compose.yml           # Docker Compose config
├── Dockerfile                   # Docker image
├── nginx.conf                   # Nginx config
├── package.json                 # Dependencies
└── README.md                    # This file

Database Schema

Платформата използва 42 таблици в MySQL/MariaDB база данни:

Core Tables

  • users - Потребители (id, email, username, balance, power, role, etc.)
  • user_rooms - Стаи на потребители
  • user_racks - Рафтове в стаи
  • user_miners - Майнери на рафтове
  • items - Предмети (рафтове, майнери, декорации)
  • item_templates - Шаблони за предмети

Financial Tables

  • payment_transactions - Транзакции за плащане
  • payment_addresses - Крипто адреси
  • transactions - Вътрешни транзакции
  • withdrawals - Тегления

Game Tables

  • expeditions - Експедиции
  • tasks - Задачи
  • leaderboard - Класация
  • referrals - Реферали

Admin Tables

  • audit_logs - Аудит логове
  • admin_logs - Админ логове
  • system_settings - Системни настройки
  • menu_sets - Меню конфигурации
  • menu_items - Меню елементи

Social Tables

  • chat_messages - Чат съобщения
  • user_friends - Приятели
  • notifications - Известия

API Structure

Public Endpoints

  • POST /api/auth/register - Регистрация
  • POST /api/auth/login - Вход
  • GET /api/health - Health check
  • GET /api/settings - Публични настройки

Protected Endpoints (User)

  • GET /api/users/me - Текущ потребител
  • GET /api/rooms - Стаи на потребителя
  • POST /api/rooms - Създаване на стая
  • GET /api/items - Предмети
  • GET /api/transactions - Транзакции
  • GET /api/leaderboard - Класация

Admin Endpoints

  • GET /api/admin/stats - Статистики
  • GET /api/admin/users - Списък потребители
  • PUT /api/admin/users/:id - Редактиране потребител
  • GET /api/admin/transactions - Всички транзакции
  • GET /api/admin/logs - Логове

🚀 Quick Start

Prerequisites

  • Docker 20.10+ и Docker Compose 2.0+
  • Git за клониране на репозитория
  • Node.js 18+ (за локална разработка)

Installation

  1. Клонирай репозитория:
git clone https://git.vi-lab.eu/orion/faucet.git
cd faucet
  1. Копирай environment файл (опционално):
cp .env.example .env
  1. Стартирай Docker stack:
docker-compose up -d
  1. Провери статуса:
docker-compose ps
  1. Достъп до приложението:

Default Admin Credentials

  • Email: rott@mail.bg
  • Username: ghost
  • Password: nokia1

⚠️ Важно: Смени паролата след първо влизане!


📚 Documentation

Основна документация

Техническа документация

Планове за развитие


🛠️ Development

Development Mode

Проектът използва Nodemon за автоматично рестартиране на API сървъра при промени:

# API автоматично рестартира при промени в server/
docker-compose logs -f api

Available Scripts

# Development
npm run dev              # Стартира API с nodemon
npm run frontend         # Стартира frontend dev server

# Docker
npm run docker:up        # Стартира Docker stack
npm run docker:down      # Спира Docker stack
npm run docker:logs      # Показва логове

# Database
npm run backup:db        # Backup на базата данни
npm run migrate:dev      # Prisma migrations (dev)
npm run migrate:deploy   # Prisma migrations (production)

# Production
npm run prod:up          # Стартира production stack
npm run ssl:setup        # SSL setup с Let's Encrypt

Environment Variables

Основните environment променливи (с default стойности):

# Database
DB_HOST=mysql
DB_PORT=3306
DB_USER=project_user
DB_PASS=strong_password
DB_NAME=pixelmine_db

# Server
PORT=3000
NODE_ENV=development
CORS_ORIGIN=http://localhost:7007

# Admin
ADMIN_EMAIL=rott@mail.bg
ADMIN_USERNAME=ghost
ADMIN_PASSWORD=nokia1

# Redis
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=redis_password

# JWT
JWT_SECRET=your-secret-key-here

🔒 Security

Implemented Security Features

  • JWT Authentication - Secure token-based auth
  • RBAC (Role-Based Access Control) - Гранулирани права
  • Password Hashing - bcryptjs с salt
  • Rate Limiting - Защита срещу brute force
  • Helmet.js - Security headers
  • Input Validation - Zod schema validation
  • SQL Injection Protection - Prisma ORM
  • XSS Protection - Input sanitization
  • CORS Configuration - Контролиран достъп
  • Audit Logging - Логване на всички действия

Security Best Practices

  • 🔐 Винаги използвай силни пароли
  • 🔐 Не споделяй JWT tokens
  • 🔐 Регулярно backup на базата данни
  • 🔐 Мониторинг на логовете за подозрителна активност
  • 🔐 Регулярни обновления на зависимостите

📊 Current Status

Completed (v0.1)

  • Базова структура на базата данни (42 таблици)
  • User management система
  • Admin panel с основни функции
  • Room/Rack/Miner система (структура)
  • Payment transactions таблица
  • Online/Offline статус за потребители
  • API endpoints за основните операции
  • Authentication и authorization система
  • Real-time updates с Socket.IO
  • Redis caching и queues

⚠️ In Progress

  • ⚠️ Room/Rack/Miner UI (структурата е готова, но UI трябва да се подобри)
  • ⚠️ Payment система (таблицата съществува, но логиката трябва да се допълни)
  • ⚠️ Admin menu система (базовата структура е готова)

🚀 Planned Features

  • 🚀 Гъвкаво админ меню (Menu Builder)
  • 🚀 Подобрена Room → Racks → Miners система
  • 🚀 Икономика (награди, difficulty, ROI)
  • 🚀 Пълна Payment система (crypto integration)
  • 🚀 React migration (от legacy JS)

🤝 Contributing

Виж CONTRIBUTING.md за подробности как да допринесеш.

Development Workflow

  1. Fork репозитория
  2. Създай feature branch (git checkout -b feature/amazing-feature)
  3. Commit промените (git commit -m 'Add amazing feature')
  4. Push към branch (git push origin feature/amazing-feature)
  5. Отвори Pull Request

📝 License

Този проект е лицензиран под MIT License - виж LICENSE файла за подробности.


👥 Team

Разработено от: Vi Team Security Group


🙏 Acknowledgments

  • Prisma - Отличен ORM за TypeScript/Node.js
  • Express.js - Минималистичен web framework
  • React - UI библиотека
  • Socket.IO - Real-time комуникация
  • Docker - Containerization платформа

📞 Support

За въпроси и поддръжка:


Made with ❤️ by Vi Team Security Group

Star this repo if you find it useful!