Illarionov81 / PhoneBooke

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PhoneBooke

Техническое задание

  1. Создать веб-интерфейс «Телефонный справочник» для конечного пользователя, который будет:

    • отображать данные справочника
    • делать поиск данных по введенному номеру и имени
    • Так же, рекомендуется, создать пагинацию.
  2. У администратора должен быть доступ к следующим операциям в админке:

    • удалять данные справочника
    • обновлять данные справочника
    • создавать новые данные

Как минимум, ожидается использование:

* Python/Django
* HTML, CSS
* Sqlite

Готовое решение скинуть в архиве вместе с инструкциями по запуску сайта локально.

Плюсом будет написание тестов к написанному коду.


Описание.

В проекте использованы:

* python-3.8
* [Django-2.2.13](https://docs.djangoproject.com/en/2.2/) 
* Twitter Bootstrap
* Html
* CSS
* Selenium
* Gherkin

Приложение состоит из двух основных приложений:

  • phonebook - тут реализована логика для телефонного справочника:
    • Главная страница с содержимым справочника.
    • Форма поиска по номру или имени.
  • Accounts - приложение для расширения модели User согласно рекомендациям докумантации Django.

Точки входа для получения списка телефонного справочника и входа в админ панель для администратора:

Права авторизации:

  • Не залогиненный пользователь:
    • Просмотр записей телефонного справочника
    • Делать поиск по имени или номеру
  • Пользаватели группы Администраторы:
    • удалять данные справочника
    • обновлять данные справочника
    • создавать новые данные
  • Admin
    • all

Установка.

В проекте используется билиотека для работы с изображениями Pillow. По этому, в систему надо загрузить дополнительные пакеты:

  • $ sudo apt-get install libjpeg-dev zlib1g-dev

Так же для тестов используется Selenium. Чтобы использовать Селениум вам нужно установить драйвер для своего браузера, который будет использоваться для тестов.
Например, драйвер для Google Chrome можно найти здесь: https://sites.google.com/a/chromium.org/chromedriver/downloads. Скачайте драйвер, подходящий под вашу версию Google Chrome (версию можно посмотреть в меню Настройки -> Справка -> О браузере).
Ссылки на драйвера для других браузеров есть в документации по установке Selenium: https://selenium-python.readthedocs.io/installation.html.
Распаковав архив с драйвером вы получите файл, например chromedriver. Поместите его в папку /usr/bin или /usr/local/bin, чтобы он был доступен для прямого запуска из командной строки и сделайте исполняемым командой chmod:

...$ chmod +x chromedriver ...$ sudo mv chromedriver /usr/local/bin/

Далее:

Можно склонировать проект с GitHub или установить из архиваю:

a. Архив

  1. Распакуйте папку с проектом: * tar -xvf archive.tar
  2. Зайти в папку:
  • cd "ваша папка"
  1. Cоздайте виртуальное окружение:
  • python3 -m virtualenv -p python3 venv
  1. Активируйте его:
  • . venv/bin/activate
  1. Устанавите окружение:
  • (venv)...pip install -r requirements.txt
  1. Проведите Мигрирую БД:
  • (venv)...cd source
  • (venv)...python manage.py migrate
  1. Загрузите дамп:
  • (venv)...source$ ./manage.py loaddata fixtures/auth.json
  • (venv)...source$ ./manage.py loaddata fixtures/dump.json
  1. Запустить сервер: * ./manage.py runserver
  2. Остановить сервер: * Ctrl C
  3. Деактивируйте окружение:
  • deactivate
  1. Вы так же можете использовать ваш редактор для дальнейшей работы с проектом.

b. Склонируйте проект с GitHub;


Unit Tests и приемочные тесты.

Для автоматической прогонки имеющихся в приложении тестов необходимо сначала запустить приложение, так же используйте команды:

  1. Для прогонки тестов:
  • (venv)...sourse$ ./manage.py test
  1. Для прогонки тестов использующих сценарии Gherkin:
  • (venv)...source$ ./manage.py behave

About


Languages

Language:Python 78.4%Language:HTML 16.4%Language:Gherkin 2.8%Language:CSS 2.4%