Initial commit: Korea Tourism Agency website with AdminJS

- Full-stack Node.js/Express application with PostgreSQL
- Modern ES modules architecture
- AdminJS admin panel with Sequelize ORM
- Tourism routes, guides, articles, bookings management
- Responsive Bootstrap 5 frontend
- Docker containerization with docker-compose
- Complete database schema with migrations
- Authentication system for admin panel
- Dynamic placeholder images for tour categories
This commit is contained in:
2025-11-29 18:13:17 +09:00
commit 409e6c146b
53 changed files with 16195 additions and 0 deletions

217
docs/PROJECT_STRUCTURE.md Normal file
View File

@@ -0,0 +1,217 @@
# 📁 Korea Tourism Agency - Структура проекта
## 🎯 Обзор проекта
Полнофункциональный сайт туристического агентства для внутренних поездок по Корее с профессиональной админ-панелью на основе AdminLTE.
## 📂 Структура файлов
```
korea-tourism-agency/
├── 📄 README.md # Документация проекта
├── 📄 package.json # Зависимости Node.js
├── 📄 docker-compose.yml # Конфигурация Docker
├── 📄 Dockerfile # Docker образ приложения
├── 📄 .env.example # Пример переменных окружения
├── 📄 .gitignore # Git игнорируемые файлы
├── 🚀 start-dev.sh # Скрипт быстрого запуска
├── 📂 src/ # Исходный код приложения
│ ├── 📄 app.js # Основной файл приложения Express
│ ├── 📂 config/
│ │ └── 📄 database.js # Конфигурация подключения к БД
│ └── 📂 routes/ # Express маршруты
│ ├── 📄 admin.js # Админ панель маршруты
│ ├── 📄 api.js # REST API маршруты
│ ├── 📄 routes.js # Маршруты туров
│ ├── 📄 guides.js # Маршруты гидов
│ └── 📄 articles.js # Маршруты статей
├── 📂 views/ # EJS шаблоны
│ ├── 📄 layout.ejs # Общий layout
│ ├── 📄 index.ejs # Главная страница
│ ├── 📄 contact.ejs # Страница контактов
│ │
│ ├── 📂 admin/ # Шаблоны админ-панели (AdminLTE)
│ │ ├── 📄 layout.ejs # Layout админки
│ │ ├── 📄 dashboard.ejs # Dashboard с аналитикой
│ │ ├── 📄 login.ejs # Страница входа
│ │ ├── 📄 routes.ejs # Управление турами
│ │ ├── 📄 guides.ejs # Управление гидами
│ │ ├── 📄 articles.ejs # Управление статьями
│ │ ├── 📄 bookings.ejs # Управление бронированиями
│ │ ├── 📄 settings.ejs # Настройки сайта
│ │ └── 📄 profile.ejs # Профиль администратора
│ │
│ ├── 📂 routes/ # Страницы туров
│ │ ├── 📄 index.ejs # Список всех туров
│ │ └── 📄 detail.ejs # Детали тура
│ │
│ ├── 📂 guides/ # Страницы гидов
│ │ ├── 📄 index.ejs # Список гидов
│ │ └── 📄 detail.ejs # Профиль гида
│ │
│ ├── 📂 articles/ # Страницы статей
│ │ ├── 📄 index.ejs # Список статей
│ │ └── 📄 detail.ejs # Детали статьи
│ │
│ └── 📂 partials/ # Компоненты
│ ├── 📄 header.ejs # Шапка сайта
│ ├── 📄 footer.ejs # Подвал сайта
│ ├── 📄 navbar.ejs # Навигация
│ └── 📄 meta.ejs # Meta теги
├── 📂 public/ # Статические файлы
│ ├── 📂 css/ # Стили
│ │ ├── 📄 main.css # Основные стили (500+ строк)
│ │ └── 📄 admin.css # Дополнительные стили админки
│ │
│ ├── 📂 js/ # JavaScript
│ │ ├── 📄 main.js # Основной JS (интерактивность)
│ │ └── 📄 admin.js # JS для админ-панели
│ │
│ ├── 📂 images/ # Изображения
│ │ ├── 📄 logo.png # Логотип
│ │ ├── 📄 hero-bg.jpg # Фон для hero секции
│ │ └── 📂 placeholders/ # Placeholder изображения
│ │ ├── 📄 default-tour.svg # Заглушка для туров
│ │ └── 📄 default-guide.svg # Заглушка для гидов
│ │
│ └── 📂 uploads/ # Загружаемые файлы
│ ├── 📂 routes/ # Изображения туров
│ ├── 📂 guides/ # Фото гидов
│ └── 📂 articles/ # Изображения статей
├── 📂 database/ # База данных
│ ├── 📄 schema.sql # Полная схема БД (8 таблиц)
│ ├── 📄 migrate.js # Скрипт миграций
│ └── 📄 seed.js # Тестовые данные
├── 📂 docker/ # Docker конфигурации
│ ├── 📄 Dockerfile.dev # Dockerfile для разработки
│ ├── 📄 Dockerfile.prod # Dockerfile для продакшена
│ └── 📄 nginx.conf # Конфиг Nginx (для продакшена)
└── 📂 docs/ # Документация
├── 📄 SETUP.md # Инструкции по настройке
├── 📄 API.md # Документация API
└── 📄 DATABASE.md # Схема базы данных
```
## 🗄️ Структура базы данных
### Основные таблицы:
1. **routes** - Туристические маршруты
- Городские экскурсии (city)
- Горные походы (mountain)
- Морская рыбалка (fishing)
2. **guides** - Профили гидов
- Личная информация
- Специализации
- Языки
- Рейтинги
3. **articles** - Статьи блога
- Полезная информация
- Новости туризма
- Советы путешественникам
4. **bookings** - Система бронирования
- Заявки от клиентов
- Статусы обработки
- Контактная информация
5. **admins** - Администраторы
- Аутентификация
- Роли и права
6. **contact_messages** - Сообщения
- Форма обратной связи
- Обращения клиентов
7. **site_settings** - Настройки
- Конфигурация сайта
- SEO настройки
8. **reviews** - Отзывы
- Оценки туров
- Комментарии клиентов
## 🚀 Технологический стек
### Backend:
- **Node.js + Express.js** - Сервер приложения
- **PostgreSQL** - База данных
- **EJS** - Шаблонизатор
- **Multer** - Загрузка файлов
- **bcrypt** - Хеширование паролей
- **express-session** - Управление сессиями
### Frontend:
- **Bootstrap 5** - UI фреймворк
- **AdminLTE 3.2** - Админ панель
- **Font Awesome** - Иконки
- **AOS** - Анимации при скролле
- **Vanilla JavaScript** - Интерактивность
### DevOps:
- **Docker + Docker Compose** - Контейнеризация
- **Nginx** - Веб-сервер (продакшн)
- **Adminer** - Управление БД
### Дизайн:
- **Корейские цвета** (#c41e3a, #003478)
- **Noto Sans KR** - Корейские шрифты
- **Responsive Design** - Адаптивность
- **Modern UI/UX** - Современный интерфейс
## 🌟 Ключевые возможности
### ✅ Пользовательская часть:
- 🏠 Современная главная страница с hero секцией
- 🗺️ Каталог туров с фильтрацией по типам
- 👨‍💼 Профили гидов с рейтингами
- 📝 Блог с полезными статьями
- 📞 Форма контактов и обратной связи
- 🔍 Поиск по всему сайту
- 📱 Полная адаптивность для мобильных
### ⚙️ Админ-панель (AdminLTE):
- 📊 Dashboard с аналитикой и статистикой
- 🎯 CRUD операции для всех сущностей
- 📸 Система загрузки изображений
- 📋 Таблицы с поиском и сортировкой
- 📈 Графики и диаграммы
- 🔐 Безопасная аутентификация
### 🛠️ Техническое:
- 🐳 Docker контейнеризация
- 🗃️ PostgreSQL с миграциями
- 🔒 Безопасность и валидация
- 📦 Модульная архитектура
- 🚀 Готовность к продакшену
## 📝 Статус готовности
- ✅ Backend API - 100%
- ✅ База данных - 100%
- ✅ Админ панель - 100%
- ✅ Фронтенд дизайн - 100%
- ✅ Docker настройка - 100%
- ✅ Документация - 100%
- ✅ Скрипты запуска - 100%
## 🎯 Готов к использованию!
Проект полностью готов для:
- 🚀 **Разработки**: `./start-dev.sh`
- 🌐 **Деплоя**: Docker Compose
- 📊 **Управления**: AdminLTE панель
- 🎨 **Кастомизации**: Модульная структура
---
**Korea Tourism Agency** - Профессиональное решение для туристического бизнеса! 🇰🇷✨