Платформа для обмена путевыми заметками и рекомендациями путешествий
- Регистрация и аутентификация — надежная система управления учетными записями
- Публикация статей о путешествиях — с изображениями, описанием посещаемых мест и категориями
- Подписка на авторов — следите за любимыми путешественниками
- Система закладок — сохраняйте интересующие вас статьи
- Каталог мест назначения — более 125 популярных мест по всему миру
- Категоризация контента — фильтрация статей по темам и местам
- План путешествия — создавайте и управляйте личным списком планируемых поездок
| Компонент | Технология |
|---|---|
| Backend | Python, Django, Django REST Framework |
| Аутентификация | Djoser (Token-based) |
| База данных | PostgreSQL |
| Frontend | React.js |
| Контейнеризация | Docker, Docker Compose |
| Веб-сервер | Nginx |
| CI/CD | GitHub Actions |
- Docker и Docker Compose
- Git
git clone https://github.com/mbur17/travelhub.git
cd travelhubСоздайте файл .env в корневой директории проекта:
# PostgreSQL
POSTGRES_DB=travelhub_db
POSTGRES_USER=travelhub_user
POSTGRES_PASSWORD=secure_password_here
DB_NAME=travelhub_db
DB_HOST=db
DB_PORT=5432
# Django
SECRET_KEY=your-super-secret-django-key-change-this-in-production
DEBUG=False
ALLOWED_HOSTS=localhost,127.0.0.1,yourdomain.com
CSRF_TRUSTED_ORIGINS=https://yourdomain.com,http://localhost
# Email (опционально)
EMAIL_BACKEND=django.core.mail.backends.console.EmailBackend# Сборка и запуск контейнеров
docker-compose up -d --build
# Выполнение миграций
docker-compose exec backend python manage.py migrate
# Создание суперпользователя для админ-панели
docker-compose exec backend python manage.py createsuperuser
# Загрузка данных о местах назначения
docker-compose exec backend python manage.py load_destinations
# Сбор статических файлов
docker-compose exec backend python manage.py collectstatic --noinput- API Documentation: http://localhost/api/docs/
- Admin Panel: http://localhost/admin/
- Web Interface: http://localhost/
# Создание виртуального окружения
python -m venv venv
source venv/bin/activate # Для Windows: venv\Scripts\activate
# Установка зависимостей
pip install -r backend/requirements.txt
# Миграции БД
cd backend
python manage.py migrate
# Запуск сервера разработки
python manage.py runserver
# В другом терминале запустите frontend
cd frontend
npm install
npm starttravelhub/
├── backend/ # Django приложение
│ ├── api/ # REST API endpoints
│ │ ├── recipes/ # Endpoints для статей
│ │ └── users/ # Endpoints для пользователей
│ ├── recipes/ # Основные модели (Article, Category, Destination)
│ ├── users/ # Модели пользователей
│ └── manage.py
├── frontend/ # React приложение
│ └── src/
│ ├── components/ # React компоненты
│ ├── pages/ # Страницы приложения
│ └── api/ # Вызовы API
├── infra/ # Nginx конфигурация
│ └── nginx.conf
├── data/ # Данные для загрузки
│ └── destinations.json # 125+ мест назначения
└── docker-compose.yml
GET /api/articles/— список всех статейPOST /api/articles/— создание новой статьиGET /api/articles/{id}/— деталь статьиPATCH /api/articles/{id}/— обновление статьиDELETE /api/articles/{id}/— удаление статьи
GET /api/categories/— список категорийPOST /api/categories/— создание категории
GET /api/destinations/— список всех местGET /api/destinations/{id}/— деталь места
POST /api/auth/token/login/— вход в системуPOST /api/auth/token/logout/— выход из системыGET /api/users/— список пользователейGET /api/users/me/— профиль текущего пользователя
GET /api/users/{id}/subscribe/— подписаться на пользователяGET /api/users/subscriptions/— список подписок
GET /api/articles/{id}/bookmark/— добавить в закладкиGET /api/articles/{id}/plan/— добавить в план путешествия