Skip to content

Markarov8/ServCh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WeatherGen — Панель управления погодой на игровых серверах

WeatherGen — это веб-приложение для администрирования параметров погоды на игровых серверах. Администратор может вручную или автоматически изменять температуру, тип погоды, ветер и влажность, генерировать случайные значения параметров погоды, а также просматривать историю изменений, просматривать актуальную информацию в упрощённом интерфейсе без элементов управления как её видел бы игрок.

Проект реализован на чистом PHP 8.5 с соблюдением принципов архитектурного паттерна MVC.

Функциональные возможности

Администратор

  • Просмотр всех серверов с текущей погодой
  • Ручное обновление параметров погоды через форму
  • Генерация реалистичной случайной погоды с учётом физических ограничений:
    • Температура: от –55 до +55°C
    • Ветер: от 0 до 45 м/с
    • Влажность: от 0 до 100%
  • Просмотр лога последних 50 изменений по каждому серверу
  • Добавление новых серверов и игроков
  • Переключение в режим просмотра от лица игрока

Игрок (режим просмотра Администратором)

  • Просмотр всех серверов без возможности редактирования
  • Доступ к логу изменений
  • Автоматическое обновление данных

Технологии

  • Язык: PHP 8.5
  • База данных: MySQL 8.0
  • Архитектура: MVC (Model–View–Controller)
  • Работа с БД: PDO + Singleton (config/database.php)
  • Контейнеризация: Docker (docker-compose.yml)
  • Тестирование: Ручные HTTP-тесты (tests.php)

Проект не использует сторонние библиотеки. Всё построено на встроенном PDO.

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

Требования

  • Docker
  • PHP in PATH (Windows)

Шаги

  1. Клонируйте репозиторий:

    git clone https://github.com/Markarov8/ServCh.git
    cd ServCh
  2. Запустите проект с помощью Docker Compose:

    docker-compose up --build
    php -S localhost:7070
  3. Откройте в браузере: http://localhost:7070

Тестовые данные

После инициализации доступны: Игроки: Player_1, Player_2, Player_3 Серверы: Server_1, Server_2, Server_3

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

Панель управления

  • На главной странице отображаются все серверы с формами изменения данных.
  • Кнопка «Сохранить» — ручное обновление погоды.
  • Кнопка «Случайно» — генерация погоды в реалистичных пределах от предыдущих значений.
  • Каждое изменение (ручное или автоматическое) записывается в таблицу weather_logs.

Просмотр от лица игрока

  • Выберите игрока из выпадающего списка в шапке сайта.
  • Откроется страница, на которой показан интерфейс сайта если бы его смотрел игрок.
  • Данные обновляются автоматически.

Обработка ошибок

  • При вводе недопустимых значений (например, температура = 1000) — предупреждение о невозможности применить недопустимые значения.
  • Попытка перейти к несуществующему игроку или серверу — возврат на главную с предупреждением о вводе некорректных значений.

Просмотр лога изменений

  • При нажатии на кнопку Лог, открывается страница со списком последних 50 изменений погоды

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

  • controllers/ — контроллеры
  • models/ — модели
  • views/ — виды. Визуальное отображение страниц
  • public/index.php — роутинг и точка входа
  • tests.php — скрипт ручных тестов (валидация, ошибки)
  • init.sql — скрипт инициализации базы данных
  • docker-compose.yml — конфигурация запуска сервисов

Соответствие MVC

  • Модель — содержит данные и логику работы с БД
  • Контроллер — обрабатывает запросы и вызывает методы модели
  • Представление — отвечает только за отображение данных

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors