Skip to content

Vae1ocks/Social-forum

Repository files navigation

Ограничения при раздаче проекта с сервера:

Невозможна аутентификация/регистрация с помощью Google, попытка выдаст ошибку: "Доступ заблокирован: ошибка авторизации" в связи с тем, что Google позволяет в настройках апишки для аутентификации в redirect_uri указывать хост, который используется для доступа к проекту через сеть интернет с условием, что указан домен, которого у меня нет, есть только ip-адрес от сервиса, предоставляющего VDS. Однако социальная аутентификация будет работать при запуске проекта локально, т.е Google позволяет указывать localhost в redirect_uri, на данный момент в настройках апи он и указан, так что всё должно работать корректно.

Админ-пользователь: username: admin | password: password

Запуск проекта:

Вы можете запустить проект 2 способами:

А): через докер. docker compose up docker exec -it {Тут id контейнера django, того, что за проект отвечает} python manage.py loaddata mysite_data.json

Б): через py manage.py runserver (перед этим понадобится создать базу данных, как указано в параметрах settings/runserver_settings):

1 терминал:

docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:management

2 терминал:

celery -A forum worker --loglevel=info (или celery -A forum worker -l info -P eventlet)

3 терминал:

docker run -it --name redis -p 6379:6379 redis

4 терминал:

py manage.py runserver --settings=forum.settings.runserver_settings

Так же в директории forum содержится файл mysite_data.json с данными из моей БД

Краткий обзор:

Аккаунт:

  • Есть возможность авторизации через Google
  • При создании нового аккаунта/смене почты на почту будет отправлен код подтверждения. (За отправку кода отвечает работник celery);
  • Есть возможность генерировать ключ для входа без пароля и логина, для этого в детальной информации о аккаунте нужно кликнуть по соответствующей ссылки и ввести пароль от аккаунта;
  • На странице детальной информации доступно удаление статей и комментариев;
  • Каждая статья имеет количество просмотров, просмотры уникальные: если пользователь авторизован, создаётся ключ в редисе с user.id как часть ключа и article.id как значение ключа. Если пользователь неавторизован, то информация о том, что пользователь просмотрел данную статью закидывается пользователю в сессию.

Статьи:

  • Возможен поиск по тегу, теги у каждого поста кликабельны;
  • Есть триграммный поиск для поиска статей;
  • Фреймворк сообщений уведомит при создании/попытке создания статьи и успехе/неудаче;
  • Для создания статьи минимум 1 тег;
  • Теги нельзя создавать, лишь пользоваться существующими
  • Есть markdown.

Api:

  • CRUD функционал.

Тестирование:

  • при запуске юнит тестов py manage.py test нужно поменять настройки кеширования на DummyCache, в настроечном файле есть заготовка.

Есть карты сайта Форум доступен в 2 языках: английский и русский

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published