Giter VIP home page Giter VIP logo

article_feed's Introduction

-------------------------------------------------------------------------------------
				Функциональные возможности сервиса
-------------------------------------------------------------------------------------
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/

article_feed's People

Contributors

g-ionov avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.