g-ionov / article_feed Goto Github PK
View Code? Open in Web Editor NEWREST API сервис, позволяющий формировать ленту статей для пользователей (тестовое задание).
REST API сервис, позволяющий формировать ленту статей для пользователей (тестовое задание).
------------------------------------------------------------------------------------- Функциональные возможности сервиса ------------------------------------------------------------------------------------- REST API ервис предоставляет возможность: 1) вывода публичных статей для неавторизованных пользователей; 2) авторизации пользователей с помощью Basic Auth. В качестве логина использовать email; 3) регистрации новых пользователей с ролью "подписчик" a) обязательные поля - email, пароль; b) должна быть валидация email на соответствие маски email и на уникальность; c) пароль должен быть не короче 8 символов и содержать хотя бы одну цифру и букву любого регистра); 4) чтения статей закрытых статей (только для подписчиков) пользователями с ролью "подписчик"; 5) создания новых статей ролью "автор". Пользователям с ролью "подписчик" запрещено создание статей; 6) редактирования и удаления статей. Автор может удалять или редактировать только те статьи, которые он написал. ------------------------------------------------------------------------------------- Загрузка репозитория ------------------------------------------------------------------------------------- Создать директорию, в которую будет помещён проект В выбранной директории открыть терминал и выполнить команду: git clone https://github.com/g-ionov/article_feed.git ------------------------------------------------------------------------------------- Создание базы данных ------------------------------------------------------------------------------------- В проекте используется PostgreSQL. Поэтому необходимо выполнить его установку, если он отсутствует. Далее необходимо создать базу данных. Это можно сделать при помощи pgAdmin или Shell(psql). Если Вы используете sheel: CREATE DATABASE article_feed; CREATE USER user_db WITH PASSWORD '12345'; ALTER ROLE user_db SET client_encoding TO 'utf8'; ALTER ROLE user_db SET default_transaction_isolation TO 'read committed'; ALTER ROLE user_db SET timezone TO 'UTC'; GRANT ALL PRIVILEGES ON DATABASE article_feed TO user_db; \q Если Вы используете другого пользователя или называете Вашу базу данных иначе, то Вам необходимо изменить настройки в feed/cfg/local_settings.py на Ваши. ------------------------------------------------------------------------------------- Настройки виртуального окружения и установка зависимостей ------------------------------------------------------------------------------------- Выполните команду: python -m venv venv Теперь необходимо активировать виртуальное окружение: В Windows: venv\Scripts\activate.bat В Linux: source venv/bin/activate После чего выполним установку зависимостей: pip install -r requirements.txt ------------------------------------------------------------------------------------- Применение миграций, создание суперпользователя и запуск проекта ------------------------------------------------------------------------------------- Переходим в директорию, в которой находится файл manage.py (команда: cd feed) Выполняем команды: python manage.py makemigrations python manage.py migrate Создаём суперпользователя: python manage.py createsuperuser Далее указываем имя пользователя и пароль Теперь можно запускать проект. Для этого выполняем команду: python manage.py runserver ------------------------------------------------------------------------------------- Документация к API и адрес развернутого сервера ------------------------------------------------------------------------------------- (при локальном запуске) Документацию к API можно посмотреть по адресу: http://127.0.0.1:8000/swagger/ Авторизация нового пользователя происходит по адресу: Локально: http://127.0.0.1:8000/api-auth/login На сервере: http://45.90.33.12/api-auth/login/ (Документация на развернутом сервере) http://45.90.33.12/swagger/
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.