136 lines
6.7 KiB
Markdown
136 lines
6.7 KiB
Markdown
# Веб-приложение 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://<IP-АДРЕС>: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.
|