Среди множества классов автоматизированных систем, выделяются так называемые «CRM-системы». Они внедряются компаниями различных отраслей, чтобы выиграть в нарастающей конкуренции, за счет сохранения текущих клиентов и нахождения новых. Что же такое CRM? Перевод этой аббревиатуры звучит как «Управление Взаимоотношениями с Клиентами». В действительности, понятие CRM-системы гораздо шире, они направлены не только на то, чтобы систематизировать работу с контрагентами, но и на то, чтобы облегчить работу организации в целом. Такая система оптимизирует работу деятельности компании, включая в себя единое хранилище информации, куда собираются сведения о взаимодействиях с клиентами, позволяет не терять связи с клиентами (хранение номеров телефонов, электронной почты), и упрощает анализ данных тем, что информация хранится в одном месте (прежде всего - это анализ данных на основе сделок). В данной системе менеджерам также предоставлена возможность назначать своим сотрудникам задачи, что расширяет систему, оптимизирует деятельность руководства и упрощает контроль за действиями сотрудников организации.
Нашу жизнь уже сложно себе представить без смартфона, то есть небольшого компьютера с собственной операционной системой, который всегда при себе. Организации все больше нуждаются в мобильном приложении. Ведь в различных по размеру организациях требуется осуществлять контроль за сотрудниками, особенно это актуально для менеджеров, тем кто не сидит постоянно в офисе, а зачастую присутствует на встречах, переговорах, именно для таких сотрудников, будет особенно актуальна мобильная CRM-система, поскольку она позволяет пользоваться ей там, где будет удобно ее пользователю.
Постановка задачи
Цель работы: разработать мобильный клиент для CRM-системы на платформе Android в среде разработки Android Studio. СЕЖ система реализуется на языке программирования Python с помощью Django Framework, Web API(Application Programming Interface) реализуется с помощью Django Rest Framework.
Необходимо было решить следующие задачи:
1) Разработка серверной части приложения, которая поддерживает Web API, через которое мобильный клиент будет общаться с сервером для получения данных (необходимо реализовать GET, POST, PATCH запросы для личного кабинета, для задач, для контрагентов, для сделок).
2) Разработка клиентской части
(включает в себя модуль Remote для общения с сервером, модуль Data для получения данных с модуля Remote, модуль Presenter для получения данных с модуля Data и описания их представления, модуль UI для получения данных с модуля Presenter и отображения их в пользовательском интерфейсе)
3) Обеспечение взаимодействия сервера и клиента внутри локальной сети.
В ходе выполнение бакалаврской работы были изучены следующие технологии: развертывание сервера в локальной сети, взаимодействие между клиентом и сервером, основы REST - POST, GET, PATCH запросы, выполнение запросов, основы реактивного программирования. А также технологии передачи объектов с помощью REST-запросов, инструменты сериализации и десериализации этих объектов. Были изучены язык программирования Kotlin, архитектурные паттерны: MVP, MVVM, Clean Architecture; инструменты для работы с сетевыми запросами; паттерны проектирования: Dependency Injection, Observer.
Итогом работы стало: новый модуль для курсовой работы, который предоставляет WebAPI с использованием Django REST Framework, и мобильный клиент на Android использующий данное API.
Задание на бакалаврскую работу выполнено полностью.
1. Голощапов А. Л. Г61 Google Android. Создание приложений для смартфонов и планшетных ПК. — 2-е изд., перераб. и доп. — СПб.: БХВ- Петербург, 2014. — 928 с.
2. Гриффитс Дон Head First. Программирование для Android/ Гриффитс Дон, Гриффитс Дэвид — СПб.: Питер, 2016. — 704 с.
3. Таненбаум, Э. Современные операционные системы/ Таненбаум Э., Бос Х. — СПб.: Питер, 2015. — 1120 с.
4. П. Дейтел Android для разработчиков. 3-е издание/ П. Дейтел, Х. Дейтел, А. Уолд — СПб.: Питер, 2016. — 512 с.
II. Интернет-ресурсы:
5. https://habr.com/company/dataart/blog/272737/ - Использование MVVM в Android.
6. https://ru.wikipedia.org/wiki/Реактивное_программирование - Реактивное программирование.
7. https://www.intuit.ru/studies/courses/611/467/lecture/28784%3Fpage%3D2 - Курс лекций. Архитектура «клиент-сервер».
8. https://proglib.io/p/clean-architecture-android-apps/ - Подробный гайд по разработке приложений с помощью Clean Architecture