Skip to content

AndreyIh/graduation-project

Repository files navigation

Задача: создать блог и разместить его на сервисе Heroku

На главной странице сайта, записи отображаются в обратном порядке по дате, т.е. вверху самые свежие. Записи отображаются постранично (10 записей на страницу). У каждой записи блога должен быть автор. Создать новую запись может только зарегистрированный пользователь. Редактировать и удалять запись может лишь ее автор. Каждую запись блога можно прокомментировать на странице детализации этой записи. Все комментарии, связанные с этой записью, отображаются на странице детализации в прямом порядке (т.е. по мере их добавления). Реализовать добавление комментария к комментарию. Комментарии удалять/редактировать нельзя. Добавлять комментарии могут только зарегистрированные пользователи. Реализовать функционал по регистрации новых пользователей, и входа/выхода, для уже зарегистрированных пользователей. Часть сайта, где находиться контент, вертикально разбита на две части(соотношение 1:2) – основная, для отображения всего списка записей блога, и боковая – для отображения пяти, самых комментируемых. Отображение записей: - в основной части – самые свежие сверху; - в боковой по мере уменьшения комментариев (т.е. запись с самым большим количеством комментариев, должна быть первой). Цветовые предпочтения, а также оформление шапки и подвала сайта – на ваше усмотрение. В качестве СSS-фреймворка использовать Bootstrap

Раздел дополнительно:

  1. Приложение по поиску маршрута по заданным параметрам.

Задание: Поиск маршрута перемещения из одной точки в другую. Населенные пункты. Реализовать добавление, редактирование, удаление населенного пункта, а также постраничный просмотр всех доступных У населенного пункта есть лишь название Поезда. Реализовать добавление, редактирование, удаление поезда, а также постраничный просмотр всех доступных поездов. У поезда есть уникальный код (название), начало маршрута, конец маршрута и время в пути в условных единицах. Из одной точки в другую может быть несколько поездов, но они должны отличаться по времени в пути. Маршруты. Пользователь выбирает начальный и конечный пункт маршрута, а также указывает максимальное время в пути. Также пользователь может добавить сколь угодно промежуточных городов, через которые должен пролегать маршрут. Ему загружаются подходящие под условия маршруты. Возле каждого маршрута должна быть кнопка, позволяющая сохранить данный маршрут, задав ему имя. При поиске маршрутов, необходимо обращать внимание на направление движения поезда. Вывод маршрутов сортируется по наименьшему времени в пути. Т.е. первым отображается маршрут, с наименьшим временем в пути. Описание маршрута должно содержать информацию о том, откуда и куда ведет этот маршрут, время в пути, а также содержать список всех поездов, которые есть в этом маршруте с указанием номера поезда, откуда\куда и времени в пути. В случае, если маршрут не найден, вывести сообщение - "Маршрута удовлетворяющего условиям поиска не существует " Если же, заданное время в пути меньше, чем минимальное время маршрута, тогда сообщение "Время в дороге больше выбранного Вами. Измените время." Должна быть отдельная страница с просмотром маршрутов. Маршрут можно только сохранить, посмотреть и удалить. Редактировать сохраненный маршрут нельзя.
Доступ к добавлению\редактированию Поездов\Городов, а также удалению любых записей, должен быть только у зарегистрированных пользователей.

  1. Приватный чат В проект добавлено приложение приватный чат (Django+Ajax), для возможности обмена сообщениями между пользователями. На чат можно взглянуть тут Приватный чат

Установка: После копирования приложения, указать private_chat в вашем INSTALLED_APPS в settings.py Установить и запустить сервер Redis (Официальная документация) Установите Channels и channels-redis в вашем виртуальном окружении, например:

pip install channels
pip install channels-redis
INSTALLED_APPS = [
    ...
    'private_chat',
    'channels',
]

CHANNEL_LAYERS = {
    'default': {
        'BACKEND': 'channels_redis.core.RedisChannelLayer',
        'CONFIG': {
            "hosts": [(os.environ.get('REDIS_URL'), 6379)],
        },
        "ROUTING": "chat.routing.channel_routing",
    },
}

Настройка маршрутизатора для потребителя находиться в

base/routing.py

Подключить в основном urls.py

urlpatterns = [
    ...
    path('dialogs/', include(('private_chat.urls', 'dialogs'))),
]