# Веб-приложение Brabus Premium Automotive ## Описание приложения Данное веб-приложение представляет собой официальный сайт автосалона Brabus Premium Automotive, специализирующегося на продаже премиальных автомобилей. Сайт включает следующие функции: - Красивый и современный пользовательский интерфейс в стиле Apple - Карусель для демонстрации моделей автомобилей - Система аутентификации пользователей (регистрация/вход) - Корзина покупок - Адаптивный дизайн для мобильных устройств ## Использованные технологии ### Облачные сервисы Azure 1. **Azure Container Instances (ACI)** - для размещения контейнеров приложения 2. **Azure Container Registry (ACR)** - для хранения Docker-образов 3. **Azure Storage Account** - для хранения постоянных данных MongoDB 4. **Azure Key Vault** - для управления секретами приложения ### Контейнеры Docker - **Контейнер приложения** - Node.js сервер, обслуживающий фронтенд и API - **Контейнер MongoDB** - база данных для хранения информации о пользователях и заказах ### Сохранение данных - **Постоянное хранилище** - Azure File Share для данных MongoDB - **Секреты** - хранятся в Azure Key Vault ## Описание файлов ### Основные файлы - `Dockerfile` - описывает сборку контейнера Node.js - `docker-compose.yml` - конфигурация для локального развертывания приложения - `azure_deployment.yml` - шаблон для развертывания в Azure Container Instances - `package.json` - описание зависимостей Node.js приложения - `.env` - файл с переменными окружения (не включен в репозиторий для безопасности) - `.env.example` - пример файла переменных окружения ### Скрипты - `prepare-app.sh` - скрипт для автоматического развертывания приложения в Azure - `remove-app.sh` - скрипт для удаления приложения из Azure ### Исходный код - `src/server.js` - основной файл серверного приложения на Node.js - `src/public/` - папка с статическими файлами (HTML, CSS, JS) - `src/public/index.html` - главная страница - `src/public/login.html` - страница входа - `src/public/cart.html` - страница корзины - `src/public/styles.css` - стили приложения - `src/public/script.js` - клиентский JavaScript ## Инструкция по использованию ### Подготовка к развертыванию 1. Сначала убедитесь, что у вас установлены необходимые инструменты: - Docker - Azure CLI - bash (для Linux/Mac) или Git Bash (для Windows) 2. Создайте файл `.env` на основе `.env.example` и заполните его своими значениями: ``` # Azure настройки AZURE_RESOURCE_GROUP=brabus-resources AZURE_LOCATION=westeurope AZURE_CONTAINER_REGISTRY=brabusregistry AZURE_STORAGE_ACCOUNT=brabusstorage AZURE_KEY_VAULT_NAME=brabusvault # MongoDB настройки MONGODB_ROOT_USERNAME=brabus_admin MONGODB_ROOT_PASSWORD=your_secure_password # Другие настройки приложения NODE_ENV=production PORT=3000 ``` ### Развертывание 1. Сделайте скрипты исполняемыми: ```bash chmod +x prepare-app.sh remove-app.sh ``` 2. Запустите скрипт развертывания: ```bash ./prepare-app.sh ``` 3. После завершения развертывания вы увидите IP-адрес вашего приложения. ### Просмотр приложения 1. Откройте веб-браузер и перейдите по адресу, полученному после развертывания: ``` http://:3000 ``` 2. Для регистрации перейдите по ссылке "Login" в верхнем меню и создайте учетную запись. ### Удаление приложения 1. Чтобы удалить приложение и все связанные с ним ресурсы, выполните: ```bash ./remove-app.sh ``` 2. Следуйте инструкциям скрипта для выборочного или полного удаления ресурсов. ## Условия запуска скриптов Скрипты `prepare-app.sh` и `remove-app.sh` требуют следующего: 1. Наличие установленного [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli) 2. Активная подписка Azure (скрипты запросят авторизацию, если вы не вошли в систему) 3. Правильно настроенный файл `.env` (или ввод параметров вручную для скрипта удаления) 4. Для скрипта `prepare-app.sh` также требуется установленный Docker ## Внешние источники и использование генеративных моделей При создании этого проекта были использованы следующие внешние источники: 1. Официальная документация Azure: [https://docs.microsoft.com/en-us/azure/](https://docs.microsoft.com/en-us/azure/) 2. Документация Docker: [https://docs.docker.com/](https://docs.docker.com/) 3. Руководство по Node.js и Express: [https://expressjs.com/](https://expressjs.com/) 4. Шаблоны дизайна с [Dribbble](https://dribbble.com/) и [Behance](https://www.behance.net/) Для помощи в написании документации и создании скриптов была использована генеративная модель Claude 3.7 Sonnet от Anthropic.