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:
217
docs/PROJECT_STRUCTURE.md
Normal file
217
docs/PROJECT_STRUCTURE.md
Normal 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** - Профессиональное решение для туристического бизнеса! 🇰🇷✨
|
||||
Reference in New Issue
Block a user