Files
tourrism_site/docs/PROJECT_STRUCTURE.md
Andrey K. Choi 409e6c146b 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
2025-11-29 18:13:17 +09:00

11 KiB
Raw Blame History

📁 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 - Профессиональное решение для туристического бизнеса! 🇰🇷