- 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
11 KiB
11 KiB
📁 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 # Схема базы данных
🗄️ Структура базы данных
Основные таблицы:
-
routes - Туристические маршруты
- Городские экскурсии (city)
- Горные походы (mountain)
- Морская рыбалка (fishing)
-
guides - Профили гидов
- Личная информация
- Специализации
- Языки
- Рейтинги
-
articles - Статьи блога
- Полезная информация
- Новости туризма
- Советы путешественникам
-
bookings - Система бронирования
- Заявки от клиентов
- Статусы обработки
- Контактная информация
-
admins - Администраторы
- Аутентификация
- Роли и права
-
contact_messages - Сообщения
- Форма обратной связи
- Обращения клиентов
-
site_settings - Настройки
- Конфигурация сайта
- SEO настройки
-
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 - Профессиональное решение для туристического бизнеса! 🇰🇷✨