One of the largest film and TV production companies in the world asked us to refresh, modernize and adapt the previous version of their online shop to meet the challenges of a modern user and dynamically developing technology.

The whole project was made entirely remotely in cooperation with California-based Thought Foundry Inc., a digital innovations company.

Main challenge

The project was so big that the main issue we had at the beginning was to streamline the work. We decided to divide the entire implementation process into stages:

  1. Old and new versions worked in a read-only mode.
  2. Data migration.
  3. Successive launching of functionalities changing the state of the system (creating new accounts, making coupons, direct purchase).

A new system was made in excellent cooperation with Thought Foundry. The size of the project forced a strict division of duties for each team. In TEONITE, we were mainly responsible for the frontend and system integration. Specifically:

integrating backend with exposed API, which was a critical component of the entire project, allowing integration of other applications, e.g., those related to Smart TV or Windows:

  • implementing payment management - based on Braintree Payments,
  • integrating the whole with the taxation system,
  • integrating the system to send physical orders, e.g., DVDs. Building the back office which carried out two tasks:
  • it supported the customer service department in getting the necessary data and supporting store users,
  • it manages the product catalog, Building a web application - store frontend for the end customer.

Process and technology stack

eCommerce interaction architecture diagram

The most challenging were the requirements that we had to implement within 4 months:

  • data integration - a combination of the store with UltraViolet and downloading all metadata,
  • integration with streaming server, payment gateway, tax calculation service, warehouse system, e-mail delivery system,
  • imperceptible and efficient substitution of the system, so that the user does not know about the change,
  • writing a change-resistant code,
  • building a store where only a user from a given country can make purchases.

To do that we used:

  • Python 3.6 - Sanic - we based mainly on its asynchrony - the server worked smoothly, not blocking on numerous IO operations,
  • Django - we chose Django because we think it has the best migration and management system for all relationships in the database,
  • JavaScript - ECMAScript 6,
  • React 16 - it allowed recognizing the differences between the old state and the new one and quick reloading thanks to the mechanism of grouping and performing the operation concerning the priorities.

All hands on board

Working for the company from the second hundred on the Fortune 500 list, was an amazing challenge for us. The project was very extensive, and we did not have much time for implementation - only four months. During the 4 months period, 3 things helped us to deliver the final store: excellent cooperation, great support, and excellent communication with the rest of the team.

Teonite team came to the rescue for a complex, enterprise project and worked alongside us to deliver success. They’re skilled at what they do and integrated well with our team throughout the project.

Timur Insepov, CEO Thought Foundry

Several teams worked on the project, scattered around the world. The highest difficulty was caused by the time difference - that required much more thoughtful planning and monitoring speed of reaction. We communicated between Poland, Great Britain, the USA, and Norway, using well-known and common tools in IT: Jira, Gitlab, Skype. The technology worked here flawlessly, sometimes even helping us to speed up the work - when one team was recovering from work, the rest were doing their job, and the whole machine was moving forward.

We can say that work lasted 24 hours a day.

There is always an opportunity to learn

We love to learn, and we always draw conclusions from every project - that’s how we work in TEONITE.

  1. This time we learned how to work with a very dispersed team, divided by time zones. Fortunately, communication technology is so developed and rich in tools that it is easy to create an advanced system remotely without the need for direct contact.
  2. It also showed us that the YAGNI principle does not always work. In this case, the key to building the project was looking into the future and taking into account the assumption of “Yes. You gonna need it “, because the requirements changed very dynamically and we had to build a system that allowed to make these changes in an easy way.
  3. Once again we have learned that - every successful project is a pass to the next exciting challenges. This time, our “pass” was the UltraViolet (built for Universal Studios, Sony Entertainment Pictures, Warner Bros. Entertainment, etc.).

Lessons learned for the future. The job is done.