Files
web_work/README.md
2026-01-03 18:59:56 +03:00

172 lines
4.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AETERNA - Интернет-магазин мебели
Современный интернет-магазин мебели на PHP с MVC архитектурой.
## Структура проекта
```
aeterna/
├── app/ # Приложение
│ ├── Controllers/ # Контроллеры
│ ├── Core/ # Ядро (App, Router, View, etc.)
│ ├── Models/ # Модели
│ └── Views/ # Шаблоны
├── config/ # Конфигурация
│ ├── app.php # Настройки приложения
│ ├── database.php # Настройки БД
│ └── routes.php # Маршруты
├── public/ # Публичная директория (DocumentRoot)
│ ├── index.php # Точка входа
│ ├── assets/ # Статические файлы
│ │ ├── css/
│ │ ├── js/
│ │ └── images/ # Изображения
│ └── .htaccess # Правила Apache
├── storage/ # Хранилище
│ └── uploads/ # Загруженные файлы
├── tests/ # Тесты
├── docker/ # Docker конфигурация
│ └── apache/
├── docker-compose.yml
├── Dockerfile
└── README.md
```
## Требования
- PHP 8.2+
- PostgreSQL 14+
- Apache с mod_rewrite или Nginx
- Docker (опционально)
## Установка
### Вариант 1: Docker (рекомендуется)
```bash
# Клонировать репозиторий
git clone <repository-url>
cd aeterna
# Запустить контейнеры
docker-compose up -d
# Приложение будет доступно по адресу:
# http://localhost:8080
```
### Вариант 2: Локальный сервер
#### Apache
1. Настройте DocumentRoot на директорию `public/`
```apache
<VirtualHost *:80>
ServerName aeterna.local
DocumentRoot /path/to/aeterna/public
<Directory /path/to/aeterna/public>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
```
2. Включите mod_rewrite:
```bash
sudo a2enmod rewrite
sudo systemctl restart apache2
```
#### Nginx
```nginx
server {
listen 80;
server_name aeterna.local;
root /path/to/aeterna/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
```
## Конфигурация
### База данных
Отредактируйте `config/database.php` или используйте переменные окружения:
```bash
export DB_HOST=localhost
export DB_PORT=5432
export DB_DATABASE=aeterna
export DB_USERNAME=user
export DB_PASSWORD=password
```
### Приложение
Отредактируйте `config/app.php`:
- `debug` - режим отладки (false для продакшена)
- `url` - URL приложения
- `admin_emails` - email адреса администраторов
## Функционал
### Для покупателей
- Каталог товаров с фильтрацией
- Корзина покупок
- Оформление заказов
- Регистрация и авторизация
### Для администраторов
- Управление товарами
- Управление категориями
- Управление заказами
- Управление пользователями
## Маршруты
| Метод | URL | Описание |
|-------|-----|----------|
| GET | `/` | Главная страница |
| GET | `/catalog` | Каталог товаров |
| GET | `/product/{id}` | Страница товара |
| GET | `/cart` | Корзина |
| GET | `/login` | Вход |
| GET | `/register` | Регистрация |
| GET | `/admin` | Админ-панель |
## Технологии
- **Backend**: PHP 8.2, MVC архитектура
- **Database**: PostgreSQL
- **Frontend**: HTML5, CSS3/LESS, JavaScript, jQuery
- **Сервер**: Apache/Nginx
- **Контейнеризация**: Docker
## Лицензия
MIT License
## Автор
AETERNA Team