A UK Media Enterprise company has been investigating options to replace their existing online marketplace for selling and purchasing different market researches as well as the time of individual analysts.
The application is a marketplace website where research buyers can register and then log in to buy reports (e.g. in PDF format) and research time and other research sold by research providers. It should be a platform for publishing, selling, buying, negotiating and providing trial access to financial information and analyst time for research providers and buyers. THE PROJECT is thought to be like three independent websites (functionality defined by user type and associated permissions) that have access to the same database and back-end distributed on different servers to increase access speed.
The business goal is to develop a website to replace the existing legacy product which is no longer fit for purpose.
Initially, the customer had only high-level requirements for the future system. So, before starting the development process we’ve conducted a phase of business analysis to better understand the client’s needs.
At the next stage, a high-level roadmap was designed. Based on the roadmap and the technical requirements provided by the customer the delivery team created user stories with necessary requirements elaboration. In collaboration with a product owner from the customer side, we’ve put together the backlog for MVP. In parallel, our designers were working in collaboration with the product owner to create the design concept and after a few iterations, it was approved. During the process, however, we had a few re-designs until final style guide was approved. Since one of the main investors in application venture is Bloomberg Inc, the stakeholders required to follow Bloomberg terminal design patterns.
With the initial design and MVP content, the delivery team started working on the system. The client chooses Scrum as a development process design approach with bi-weekly sprint release cycles, daily stand-ups, retrospectives, and sprint planning sessions.
Based on tech requirements and with productive collaboration with the client’s architect, the team created the system with 3 main modules:
- web front-end application with 2 submodules, based on user types with role/permission system
- Admin web app to manage content and configuration
- API module which allows web app communicate with admin securely
With high requirements to the security level, an ad-hoc security engineer was involved in testing the system on vulnerabilities with grey box testing approach. After a couple of testing rounds, we’ve ensured in the high level of security as there were no major threats.
As the client insisted on using as many 3rd parties services as possible and for some parts of functionality it was required to use particular systems, the team had a lot of challenges. The main challenge was to implement purchase logics, which, based on a number of parameters, would allow or restrict access to the content and even allow or restrict particular actions with the content: view, buy, get free access, etc.
Technology and skills
Back-end: PHP 7, Symfony 3.4, EasyAdmin, MySQL
Redux: Redux Saga, Redux Form, Reselect; Axios, React-dnd, AlgoliaSearch, Lodash
Version control & development tools:
Third-party integrated systems:
- Algolia – https://www.algolia.com/
- Azure Web Services
- HelpScout – https://www.helpscout.net/
- MailJet – https://www.mailjet.com/
With application MVP live, the client started demonstrating the system to potential clients and get early feedback less than 6 months from the beginning of the implementation phase.
Currently, the delivery team is working on system improvements, polishing the design according to recently updated style guides and the increase of application productivity. The software architect is configuring the production environment with the application systems to be soft released within the next month and collaborating with the development team to ensure flawless data migration from the old legacy application.
Meanwhile, product owner, scrum master and other stakeholders are elaborating on more requirements for the future features release, e.g. tender functionality, push notifications etc.