Skip to content

Учебный проект на Django. Фанатский сайт для ММОRPG.

Notifications You must be signed in to change notification settings

OneHandedPirate/PeaceCraftFun

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PeaceCraftFun. Учебный сайт на Django.

Техзадание:

Нам необходимо разработать интернет-ресурс для фанатского сервера одной известной MMORPG — что-то вроде доски объявлений. Пользователи нашего ресурса должны иметь возможность зарегистрироваться в нём по e-mail, получив письмо с кодом подтверждения регистрации. После регистрации им становится доступно создание и редактирование объявлений. Объявления состоят из заголовка и текста, внутри которого могут быть картинки, встроенные видео и другой контент. Пользователи могут отправлять отклики на объявления других пользователей, состоящие из простого текста. При отправке отклика пользователь должен получить e-mail с оповещением о нём. Также пользователю должна быть доступна приватная страница с откликами на его объявления, внутри которой он может фильтровать отклики по объявлениям, удалять их и принимать (при принятии отклика пользователю, оставившему отклик, также должно прийти уведомление). Кроме того, пользователь обязательно должен определить объявление в одну из следующих категорий: Танки, Хилы, ДД, Торговцы, Гилдмастеры, Квестгиверы, Кузнецы, Кожевники, Зельевары, Мастера заклинаний. Также мы бы хотели иметь возможность отправлять пользователям новостные рассылки.

Требования:

  • Установленные в системе или запущенные в контейнере Redis-сервер и Postgres.

Установка:

  • создать и активировать виртуальное окружение в отдельной папке (она будет корневой).

  • в папку c окружением скачать все файлы проекта.

  • установить зависимости из requirements.txt в окружение.

  • создать файл .env в корневой папке со следующим набором переменных:

    DJANGO_SK - секретный ключ Django.

    TZ - часовой пояс.

    EMAIL - Google-аккаунт, с которого будут рассылаться письма.

    EMAIL_PASSWORD - пароль приложения к аккаунту выше (обычный пароль от почты не подойдет).

    POSTGRES_USER - Юзер для доступа к БД.

    POSTGRES_PASSWORD - пароль юзера БД.

    POSTGRES_DB - имя БД.

    POSTGRES_HOST - хост БД (если БД установлена локально, то можно использовать localhost)

    POSTGRES_POST - порт БД.

    REDIS_HOST - хост для Redis-сервера.

    REDIS_PORT - порт Redis-сервера.

    REDIS_DB - БД Redis-сервера.

Запуск:

python manage.py runserver - запуск Django-сервера.

python manage.py migrate - применение миграций.

python manage.py createsuperuser - создание учетной записи админа.

Linux:

celery -A PeaceCraftFun worker -l info -B - запуск Celery-воркера с Beat

Windows:

celery -A PeaceCraftFun worker -l info - запуск Celery-воркера.

celery -A PeaceCraftFun beat -l info - запуск Celery Beat.

Описание:

  • Регистрация и подтверждение email:

    Регистрация реализована через django-allauth с доп. чекбоксом о подписке на новостную рассылку, подтверждение - кастомное, через отправку по сигналу о регистрации нового пользователя письма на почту, указанную при регистрации, с шестизначным числовым кодом. Если пользователь не завершил регистрацию вводом кода на соответствующей странице, то сайт ему будет недоступен (только страница подтверждения регистрации, за это отвечает отдельный middleware). Если в течение 24 часов после регистрации пользователь не подтвердил регистрацию - его аккаунт удаляется.

  • Создание и редактирование объявлений:

    Реализованы стандартными средствами Django: CreateView и UpdateView.

  • Отклики на объявления и уведомления о них:

    Реализованы моделью Comment с fk на модель Post (объявление), письмо с уведомлением - через сигнал о создании объекта Comment.

  • Личная страница:

    ListView со списком откликов, оставленных под объявлениями пользователя. Можно выбирать - отображать все отклики или отклики под каким-то конкретным объявлением, так же можно удалять и принимать (при принятии отклика его шапка становится зеленой, а пользователь, оставивший его, получает письмо об этом, по сигналу об изменении объекта Comment).

  • Новостная рассылка:

    Двух видов:

    • автоматическая, о добавленных за неделю объявлениях со ссылками на них.
    • рассылка новостей от комманды сайта, для этого у админов (user.is_staff) есть отдельная страница с с соотвествующей формой.

    Чтобы получать новостную рассылку пользователь должен быть на нее подписан!

About

Учебный проект на Django. Фанатский сайт для ММОRPG.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published