To develop a documentation storage module for client’s self-developed CRM-system.
Timeline - 5 months
Team - 3 people
Techologies - Django, Vue.js
We accomplished this project in cooperation with our partner – Kokoc.tech agency. Our part was a backend development, and our colleagues part was frontend development and project management. In this case study we will only present backend part.
Independent, but connected
Our task was to develop autonomous service, which would storage all data related to documentation, and also would provide a full tools set for documentation management from box. Django was a perfect choice to do this task. Django allows to create needed database fast. Moreover, it provides an excellent admin panel for file management.
We developed a separate service, however, we were able to successfully integrate it in already existing ecosystem. We did external authentication via client’s backend, created many filters, that worked via API, and deployed external rights system into project.
In order to ensure fast work with original services, we optimized requests to main backend at maximum. Most of data was cached via Redis.
Files are kept at private cloud storage YandexCloud. It was easy to connect to it, because YandexCloud uses S3.
Unusual business logic
There are 5 document types inside the system and each of them has its own business logic. The most difficult part about it is a fact that every type has a unique numbering system. In some cases, numbers will be duplicated, in others, numbers will be discarded once a year or reserve in advance.
Everything that got into system do not disappear from it. Deleted files are disappearing from CRM interfaces, but they still can be found in S3 storage. And record about file deletion is saved in admin panel.
In order to create a module, all documentation was moved to 1C bitrix. For production start we developed some scripts, which allowed us to move documentation from bitrix to microservice. During project handing process, we prepared detailed instructions for our client on how to import old documentation right.
To make it easy to interact with service in the future, we prepared a documentation in swagger. It displays 100% of service’s potential: all filter options, authorization, sorting options and etc.
Wherein documentation is done in automatic mode. It is guarantees documentation relevance.
We successfully finished project, went through some iteration corrections to business logic. Now, we pursue a long-term development of Strana’s CRM-system. We are hoping to once again work on a projects with our partner kokoc.tech.