Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/justkappaman/phonebook-interview-task

Тестовое задание на должность Junior Backend developer (Python) в Effective Mobile
https://github.com/justkappaman/phonebook-interview-task

cli cli-app cli-application interview phonebook python python3

Last synced: 16 days ago
JSON representation

Тестовое задание на должность Junior Backend developer (Python) в Effective Mobile

Awesome Lists containing this project

README

        

# Phonebook Interview Task
![MIT License](https://img.shields.io/github/license/JustKappaMan/Phonebook-Interview-Task)
![Code style: black](https://img.shields.io/badge/code%20style-black-black)

Тестовое задание на должность Junior Backend developer (Python) в [Effective Mobile](https://effective-mobile.ru).

## О проекте
Проект разработан на языке программирования Python 3 без использования сторонних зависимостей.

Телефонный справочник со следующими возможностями:
* Хранение таких данных как
* Имя
* Отчество
* Фамилия
* Организация
* Рабочий номер телефона
* Личный номер телефона
* Настраиваемый постраничный вывод записей на экран
* Добавление новых записей
* Редактирование существующих записей
* Поиск среди записей (строгий/нестрогий, с учетом/без учета регистра) по одному/нескольким критериям

## Особенности
* Запускайте файл `main.py` из директории `src` в терминале используя интерпретатор Python версии 3.10+
* При запуске в терминале IDE, вследствие его специфики, плывёт ASCII-вёрстка и некорректно очищается экран
* В корневой директории проекта находятся файл с данными и файл с настройками -- `phonebook.csv` и `settings.ini` соответственно
* В случае отсутствия файла с данными будет создан пустой файл, готовый к добавлению данных
* В случае отсутствия файла с настройками будет создан файл, содержащий настройки по умолчанию

## Настройки
Настройка программы осуществляется путём изменения расположенного в корневой директории файла `settings.ini`
* `ColumnWidth` -- размер (в символах) одной клетки таблицы
* Минимальное значение -- 16
* Дефолтное значение -- 16
* Максимальное значение -- не ограничено
* `RecordsPerPage` -- размер (в строках) страницы, при постраничном выводе записей на экран
* Минимальное значение -- 1
* Дефолтное значение -- 10
* Максимальное значение -- не ограничено
* `Strict` -- "строгость" поиска
* True -- при поиске c указанием `ID=1`, будет найдена единственная запись -- с `ID=1`
* False -- при поиске c указанием `ID=1`, будут найдены записи с `ID=1`, `ID=11`, `ID=21` и т.д.
* Дефолтное значение -- False
* `CaseSensitive` -- чувствительность поиска к регистру символов
* True -- при поиске c указанием `Имя=Вася`, будет найдена единственная запись -- с `Имя=Вася`
* False -- при поиске c указанием `Имя=Вася`, будут найдены записи с `Имя=Вася`, `Имя=вася`, `Имя=ВАСЯ` и т.д.
* Дефолтное значение -- False

## Благодарность
* [Isaak Uchakaev](https://github.com/lk-geimfari) за [mimesis](https://github.com/lk-geimfari/mimesis)

## Информация о лицензии
Продукт распространяется под лицензией MIT.