lightbooster / Phone-DB-HSE-Lab

phonebook app (Python + SQL + CLI)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Phone-DB-HSE-Lab

phonebook app made by Sapozhnikov Andrey


Code overview (video):
https://www.loom.com/share/619d365e8d3b4d76b826947aa9479ba5?sharedAppSource=personal_library
Interface overview (video):
https://www.loom.com/share/0b973c8c4a434dc289b328db604bfdce?sharedAppSource=personal_library
Contacts:
@sapozhnikovandrey - Telegram
amsapozhnikov@edu.hse.ru / sand.developer@gmail.com - Mail

Stack: Python, SQLite, CLI, python.Keyboard

Особенности:

  • Пользователю доступен графиеский интерфейс (в терминале) и возможность управления им с помощью горячих клавиш
  • Реализована реляционная БД на основе SQLite. БД содержит 2 таблицы Persons и Phones, связанные отношением one-to-many т.е. один человек может иметь множество телефонов. Весь поиск и фильтрация выполнены средством SQL запросов (за исключением подсчета возраста).
  • Работа приложения разделена на 2 класс ContactsDB и ContactsDBInterface(ContactsDB) с наследованием. Первый класс отвечает за работу с БД и SQL запросами, второй за отрисовку интерфейса, обработку входящих данных от пользователя и вызов функций класса ContactsDB.
  • Класс FormatChecker содержит функции для проверки формата вводимых пользователем данных
  • Код самодокументируемый - каждый класс и функция имеют док-стринг с полным описанием функции параметров и выходных данных
  • Соблюден Python Code Style
  • Большинство функций возвращают резульат работы: 1 или возвращаемый набор данных в случае успеха, -1 в случае возникновения ошибки

Возможности:

  • Поиск записей по любому из существующих полей и их комбинаций, а также по возрасту (конкретное число или заданный промежуток)
  • Сохранение параметров поиска, а также возможность сбросить их все сразу
  • Выбор любой записи для дальнейшей работы с ней посредством гибкого поиска и нажатия стрелок
  • Изменение данных человека
  • Изменение данных телефонного номера
  • Добавления новой записи (человек + номер телефона)
  • Добавление безграничного количества телефонов человеку
  • Удаление человека (+ все его номера)
  • Удаление номера телефона (если он у человека последний, то и запись человека удаляется)
  • Смена обладателя номера телефона
  • Просмотр записей людей с днем рождения в ближайшие 30 дней
  • Все возможные действия указаны выше таблицы в виде описания горячих клавиш
  • Отдельные окна для отображения БД и редактирования

Для преподавателя:

были реализованы все базовые и дополнительные функции, указанные в задании. Большинство возможностей, таких как удаление записи по имени и т.д. реализованы средством ввода гибких параметров поиска и последующим выбором определенной записи. Поменялся лишь формат работы с данными - функционал тот же, что и в задании

About

phonebook app (Python + SQL + CLI)


Languages

Language:Python 100.0%