Backend онлайн хостинга картинок eXwonder, являющегося по функционалу урезанной версией Instagram. Код написан на Python фреймворке Django 5, использует PostgreSQL как основную БД, Redis для кэширования и брокинга сообщений, Celery для обработки очередей задач. Также применяется библиотека dj-rest-auth для операций с аккаунтом через REST API, к которому также имеется Swagger-схема, сгенерированная при помощи drf-spectacular. Используемый линтер и форматер кода - ruff.
- Клонируем репозиторий:
git clone https://github.com/waflawe/eXwonder-backend.git
cd eXwonder-backend/
- Устанавливаем зависимости:
pip install -r requirements.txt
- Применяем миграции:
python manage.py migrate
- Запускаем отдельно три окна терминала. В первом запускаем
redis
(убедитесь, что он установлен у вас на компьютере):
redis-server
- Во втором запускаем
celery
:
celery -A core.celery_setup:app worker --loglevel=info
- В третем запускаем сам проект:
python manage.py runserver 0.0.0.0:8000
- API будет доступно по адресу:
http://localhost:8000/api/v1/
, документация:http://localhost:8000/api/v1/schema/docs/
- Создание и вход в аккаунт.
- Сброс пароля, двухфакторная аутентификация, изменение пароля аккаунта.
- Подписки и подписчики.
- Страница новостей (посты от аккаунтов в подписках за последний час).
- Создание поста, его удаление, просмотр, лайки, добавление в сохраненные.
- Комментарии к посту, их создание, лайки, удаление.
- Глобальный поиск аккаунтов.
- Страница исследования (последние добавленные посты, самые залайканые посты).
- Просмотр аккаунтов пользователей.
- Изменение настроек аккаунта (временная зона, 2FA, почта для сброса пароля, аватарка).
Доступны здесь.
У этого проекта MIT лицензия.