PROMETHEUS-8 е иновативен проект, разработен от Cosmic Coders, който симулира управлението на космическа мисия. Проектът включва бекенд и фронтенд компоненти, които работят заедно, за да предоставят реалистична среда за управление на космически кораб и изпълнение на мисии.
- Управление на Мисии: Изпълнение на различни космически мисии с уникални предизвикателства.
- Реалистичен Интерфейс: Футуристичен и функционален интерфейс, който симулира управлението на космически кораб.
- Мониторинг на Системи: Реално време мониторинг на системите на кораба, включително двигатели, щитове, оръжия и жизнена поддръжка.
- Комуникация и Логове: Система за комуникация и записване на логове на мисиите.
SpaceMission/
├── backend/
│ ├── app.py # Основен бекенд сървър
│ ├── database_config.py # Конфигурация на базата данни
│ ├── missions_logic/ # Логика за мисиите
│ │ ├── mission1.py # Логика за Мисия 1
│ │ ├── mission2.py # Логика за Мисия 2
│ │ ├── mission3.py # Логика за Мисия 3
│ │ ├── mission4.py # Логика за Мисия 4
│ │ └── mission5.py # Логика за Мисия 5
│ └── test_missions/ # Тестови мисии
│ ├── mission1.py # Тестови данни за Мисия 1
│ ├── mission2.py # Тестови данни за Мисия 2
│ ├── mission3.py # Тестови данни за Мисия 3
│ ├── mission4.py # Тестови данни за Мисия 4
│ ├── mission5.py # Тестови данни за Мисия 5
│ ├── get_missions.py # Получаване на списък с мисии
│ └── reset_missions.py # Нулиране на статуса на мисиите
├── frontend/
│ ├── index.html # Главна страница
│ ├── mission-control.html # Контролен панел на мисиите
│ ├── mission-overview.html # Преглед на мисиите
│ ├── mission-logs.html # Логове на мисиите
│ ├── crew.html # Информация за екипа
│ ├── galaxy-path.html # Път на галактиките
│ ├── script.js # Основен скрипт за фронтенд
│ ├── navbar.js # Навигационна лента
│ ├── styles.css # Основни стилове
│ └── images/ # Изображения
├── database_schema.sql # Схема на базата данни
├── requirements.txt # Зависимости на Python
└── README.md # Документация
- Език: Python
- Фреймуърк: Flask
- База Данни: MySQL
- API Ендпойнти:
GET /api/missions- Получаване на списък с мисииPOST /api/missions/<mission_id>/start- Стартиране на мисияPOST /api/missions/<mission_id>/submit- Изпращане на решение на мисияPOST /api/missions/reset- Нулиране на статуса на мисиите
- Език: HTML, CSS, JavaScript
- Фреймуърци: Tailwind CSS, Font Awesome
- Анимации: CSS и JavaScript анимации за реалистичен ефект
- Мисия 1: Дешифриране на съобщение чрез алгоритъм на Цезар с изчисление на контролна сума.
- Мисия 2: Филтриране на валидни пакети чрез проверка на флагове, забранени комбинации и правила за четност.
- Мисия 3: Изчисление на верига от хешове чрез SHA-256.
- Python 3.8 или по-нова версия
- MySQL сървър (може да използвате XAMPP, WAMP или отделен MySQL сървър)
- Node.js (за фронтенд зависимости)
- phpMyAdmin (за улеснено управление на базата данни)
Клонирайте репозиторито локално:
git clone https://github.com/your-repo/codewars-2025-final-round-cosmiccoders.git
cd codewars-2025-final-round-cosmiccoders/SpaceMissionВиртуалното окружение позволява изолация на зависимостите за проекта. Изпълнете следните команди:
На Windows:
python -m venv venv
venv\Scripts\activateНа Linux/Mac:
python3 -m venv venv
source venv/bin/activateСлед активирането на окружението, командния ред трябва да показва (venv) в началото.
Инсталирайте необходимите Python пакети:
pip install -r requirements.txtСъздайте файл .env в корена на проекта и добавете следните променливи:
# MySQL Конфигурация
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=your_mysql_password
DB_NAME=SpaceMission
DB_PORT=3307
# Flask Конфигурация
FLASK_ENV=development
FLASK_DEBUG=1
# Допълнителни Настройки
SECRET_KEY=your_secret_key_here
API_KEY=your_api_key_if_neededЗаменете your_mysql_password с вашата MySQL парола и your_secret_key_here с уникален ключ за сигурност.
-
Стартиране на phpMyAdmin:
- Ако използвате XAMPP или WAMP, стартирайте Apache и MySQL сървърите.
- Отворете браузър и отидете на
http://localhost/phpmyadmin.
-
Създаване на Базата Данни:
- Влезете в phpMyAdmin с вашите MySQL данни.
- Кликнете на "Нова" в лявата колона.
- Въведете името
SpaceMissionи изберетеutf8mb4_general_ciкато кодировка. - Кликнете на "Създай".
-
Импортиране на Схемата:
- Отворете създадената база данни
SpaceMission. - Кликнете на "Импорт" в горния меню бар.
- Изберете файла
database_schema.sqlот проекта. - Кликнете на "Изпълни" за да импортирате таблиците и данните.
- Отворете създадената база данни
-
Проверка на Данните:
- Проверете дали таблиците
Missions,Request_LogsиMission_Responsesса създадени успешно.
- Проверете дали таблиците
Обновете файла backend/database_config.py с вашите MySQL данни:
connection = mysql.connector.connect(
host='localhost',
database='SpaceMission',
user='root',
password='your_mysql_password',
port=3307
)Заменете your_mysql_password с вашата MySQL парола.
Стартирайте Flask сървъра:
cd backend
python app.pyСървърът ще стартира на http://localhost:5000.
Отворете frontend/index.html в браузър или използвайте локален сървър:
python -m http.server 8000Фронтендът ще бъде достъпен на http://localhost:8000.
- VENV: Виртуалното окружение е необходимо за изолация на зависимостите и избегване на конфликти.
- ENV:
.envфайлът съдържа конфигурационни променливи, които са необходими за работата на приложението. - PHPMyAdmin: Улеснява управлението на базата данни чрез графичен интерфейс.
-
Експорт на Данни:
- Отворете базата данни
SpaceMission. - Кликнете на "Експорт" за да създадете резервно копие на данните.
- Отворете базата данни
-
Редактиране на Данни:
- Изберете таблица и кликнете на "Преглед" за да редактирате записи.
-
Изпълнение на Заявки:
- Кликнете на "SQL" за да изпълните персонализирани SQL заявки.
- Отворете браузър и отидете на
http://localhost:8000за фронтенд интерфейса. - Използвайте навигационната лента, за да разглеждате различни секции на мисията.
- Стартирайте мисии чрез контролния панел и следете прогреса.
- Проверете логовете на мисиите за детайли за изпълнението.
- Отворете браузър и отидете на
http://localhost:8000за фронтенд интерфейса. - Използвайте навигационната лента, за да разглеждате различни секции на мисията.
- Стартирайте мисии чрез контролния панел и следете прогреса.
- Проверете логовете на мисиите за детайли за изпълнението.
Този проект е лицензиран под MIT лиценз. Вижте LICENSE за повече детайли.
- Cosmic Coders - Разработка и дизайн