This project is still in progress, but we have already created a solid and complex back-end part of the system that is more than just a calendar aggregator in a form of two native applications for iOS and Android platforms.
15 000 Lines
of code already written in Python.
23 000 Lines
of tests achieved 99,7% code coverage.
The client came to us with a request to create two separate native applications for Android and iOS platforms that would function on one back-end system. Also, the client developed an interesting and unique concept for calendar synchronization algorithm and decided to rely on our specialists to transform it into a viable business product that would help its users arrange meetings and events in the most convenient way.
When we started working on this project, it was clear that we weren’t the first who tried to help the client with his mobile app idea realization. Our specialists were asked to evaluate three existing back-end variants; however, we offered to write an entirely new one, which allowed us to move a lot further in this platform development than our colleagues from the side. The application also had to include a voting functionality for event creation, and data analysis and processing capabilities that would make the process of event creation most convenient.
Synchronization is challenging even for top specialists. The core idea of the platform and its algorithm is achieving fast and high-level synchronization of different calendars from different sources (i.e. Google Calendar, the ones on user’s mobile devices, app calendars, etc.). By using a combination of Google API Client, Pyramid framework capabilities and skills of our developers, we achieved incremental synchronization that implies one big synchronization of required set of calendars and following continuous, yet minor syncs of calendars, events, contacts, and other data. By making it incremental, we increased the app’s productivity and enhanced user experience quality.
When it comes to creating software with Python, there are two categories of frameworks – Django and everything else. Since Django’s capacity wasn’t enough to fulfil the application business goals, we decided to use Pyramid as a main framework for implementing the algorithm that makes the system take into account schedules of all event participants. This technology implemented a functionality minimum while the required domain-specific functionality our back-end developers created themselves. Even though they had to write more code, Pyramid usage helped to create the server-side part of the system that fulfills its needs.
The client received a back-end part of the system written from scratch that ensures the work of his unique algorithm. Even though our team didn’t create both native applications from the beginning, we managed to find and take some parts developed for iOS and Android by the previous teams that can be well integrated into the system developed by us. This might seem as bragging, but our team was the first one for the client who successfully implemented the synchronization algorithm and made the system’s business logics work. The project is being in progress, so check this case study for the updates to read more about our progress on mobile development.