CASE STUDY

Native Ads

Dedicated development team corresponding to the stack of technologies and customer requirements

Solution

Web Development

Industry

Internet & Direct Marketing Retail

PROJECT DESCRIPTION

Native Ads provides advertisements with relevance to the content being viewed or read. It is a marketing platform based in Canada but working with clients from all over the globe. Their main goal is to build a better web by removing disruptive display ads from every website on the planet and replacing them with beautiful and consumable native ads. To achieve it, they aim to supply publishers with powerful tools and responsive widgets. The client applied for a team of skillful developers to Computools. After negotiations we were ready to offer them experienced developers and a Project Manager, who coordinated the project from our side. During the whole project we were in touch with the clients coordinator and reported all the time

The final product is divided in lots of services

Not all architectural decisions made by the customer were correct

Different programming languages was required for each part of the project

The final product needs some maintaining

A global AdTech project

Сovers a large part of marketing networks

Offers several unique services

Already has a prepared development plan

Business Process Mapping

01
Described

The development plan was proposed by the client in the early stages of negotiations. After careful study, our specialists proposed several significant amendments that strengthened the project and the final product

02
Modeled

In order to complete the project in time and with all the necessary developments, we suggested complementing the team with another developer whose knowledge and skills were necessary.

03
Planned

As soon as the key issues of the project were resolved, the PM created an internal map of tasks and distributed them among the project participants. We started to work on the product

Digital Platform & Technology

The stack of necessary technologies was predetermined by the customer and conditioned by the technical features of the project. Since we worked on a multitasking global platform, it took deep knowledge and experience of work with several programming languages ​​at once

Computools
Project Manager
Team Lead
CLIENT
CTO
Operations Manager
Communication
PHP

PHP (Hypertext Pre-Processor) is a server-side web programming language that is widely used for web development. PHP is dynamic and works in combination of HTML to display dynamic elements on the page. It can be used with a large number of relational database management systems, runs on all of the most popular web servers and is available for many different operating systems

Yii Framework

Yii is an open-source platform and provides the developers with the fastest option for building large-scale web applications. It is seamless in nature and gives a faster performance and the most suitable to create e-commerce frames, content and data management system and forums

Phalcon Framework

Phalcon has a compiled code, and there is no interpretation. It provides lower overhead for the model-view controller (MVC) based applications. The speed is way better than any other available framework

Node.js

Node.js has been regarded as a full-stack JavaScript for serving both the client and the server-side applications. Important benefit of Node.js are running speed of the code much faster, which in turn increases speed of any framework. Besides its core competencies, Node.js consists of a prosperous, open source community that has dispatched many great modules, making the Node.js applications successful

Redis

Redis is an open source, in-memory and key/value NoSQL database. Known to be an exceptionally fast in-memory database, Redis is used as a database, cache and message broker. It supports five data types: strings, hashes, lists, sets, sorted sets and two special types of data - Bitmap and HyperLogLog

Scala

Scala's complex features promote better coding and offer a performance increase. Functions, macros, and tuples are just a few of the advancements Scala offers. Scala incorporates functional programming and object-oriented programming into a powerful language

AngularJS

AngularJS is an open-source framework that addresses the challenges of web development processes, it is a framework for web apps. It is also one of the most powerful front-end frameworks. Angular framework allows the use of HTML as the template language and allows the extension of HTML’s syntax to express application’s components in a brief and clear manner

jQuery

jQuery is the most outstanding cross-browser javascript library compiled for the ease of client-side scripting of HTML. It helps to simplify and standardize interactions between JavaScript code and HTML elements. JavaScript allows websites to be interactive and dynamic, and jQuery is a tool that helps streamline that process

JS

JavaScript is one of the easiest, versatile and effective languages used to extend functionality in websites. It helps in on-screen visual effects and processing and calculating data on web pages with ease. It also provides extended functionality to websites using third party scripts among several other handy features

CSS

CSS is a language used to detail the presentation of a web page's markup language such as colors, fonts, and layout. One of its key benefits is the way it allows the separation of document content from document presentation. CSS also saves a lot of time, particularly when maintaining a large site. In particular, by using external style sheets the styles across a whole website can be updated by updating a single document

HTML

HTML or Hyper-text Mark-up Language is a globally accepted programming language for formatting web pages. Through HTML, the look and appearance of images, links, headings, text, page layout and just about every element of a web page can be formatted. Of all the web programming languages, HTML is the most search engine friendly. Creating SEO compliant websites using HTML is significantly easier than any other programming language

MySQL

MySQL is globally renowned for being the most secure and reliable database management system used in popular web applications. MySQL features a distinct storage-engine framework that facilitates system administrators to configure the MySQL database server for a flawless performance. It comes with the assurance of 24×7 up-time and offers a wide range of high-availability solutions, including specialized cluster servers and master/slave replication configurations

MariaDB

MariaDB is an open source relational database management system (DBMS). MariaDB is based on SQL and supports ACID-style data processing with guaranteed atomicity, consistency, isolation and durability for transactions. Among other features, the database also supports JSON APIs, parallel data replication and multiple storage engines, including InnoDB, MyRocks, Spider, Aria, TokuDB, Cassandra and MariaDB ColumnStore

MongoDB

MongoDB is a document-oriented database. Data is organised as JSON documents (rows equivalent) with fields (columns equivalent) which are grouped into collections (tables equivalent). It has certain advantages: flexibility (lack of rigid structure), good fit for modern JavaScript frameworks (direct use of JSON), big data processing and real time statistics/data analysis

System architecture

Specification

To perform this project, we have developed a specification. We always strive to complete tasks for 100% without budget or time losses, so we carefully monitor the implementation of each task at each stage

Project goal: to build a global marketing platform divided into several independent parts (services). Stages:

1. Making a list of small and large project tasks. 2. Drawing up a plan and distribution of tasks for the project. 3. Preparation of individual parts of the platform. 4. Work on individual services, connecting databases. 5. Development of a prototype of the finished platform. 6. Testing. 7. Elimination of bugs. 8. Approval of the intermediate prototype by the customer. 9. Refinement of the platform to fit all the requirements.

COMPUTOOLS TEAM

To perform the tasks of this project, we carried out a rigorous selection among our employees. The team was made up of professionals and engineers whose skills are best suited for all tasks. We try to provide our customers with high-quality service, so the development team is always accompanied by a talented and experienced Project Manager

Team Lead
Oleg Svet
Business Development Manager
Komarov Vladyslav
Developer
Eldar Kostin
Developer
Evgen Malahov
UX Designer
Valeriy Panchenko
UI Designer
Sergei Shmatov
Project Manager
Ivan Kachan

BACKSTAGE

Thanks to a well-established internal communication a productive collaboration between the team members was provided. Each type of meetings, face-to-face brainstorming, video or audio-conferences, helps to achieve the main goal of the project

Dev meeting
Well-coordinated collaboration at all stages of the coding and testing process increases the pace of the development. This works especially well when our software engineers cooperate closely with their client counterparts
Brainstorming
To find a really innovative solution, our engineers meet at brainstorming sessions. It stimulates creative activity and each participant has an opportunity to offer as many options as possible, including the most fantastic ones. It helps to hit the necessary ideas and solutions
Feedback
At the end of each sprint, we conduct team discussions and arrange feedback sessions. By exchanging opinions and emerging ideas, our developers find truly innovative solutions, improving their personal efficiency and the efficiency of the entire team

Internal Communication Flow

The internal communication system always consists of several key elements that ensure stable and uninterrupted work of the entire team. We used Trello for setting tasks and monitoring their implementation, and Skype for solving urgent issues. The Project Manager held conferences and meetings with developers to find out the team’s needs and difficulties while working on the project

Project Management Methodology

Kanban is a process designed to help teams work together more effectively. Kanban offers a systematic approach to identifying opportunities for improving efficiency. Plus, Kanban is a practice, so teams can leverage its principles in their everyday work instead of having to stop what they are doing to focus on a new improvement initiative. Kanban is based on iterative work, or work that is done in small segments so as to reduce the amount of re-work should any changes occur. For this reason, customers of a team practicing Kanban can provide honest feedback and request changes during a particular iteration while preserving the timeline and keeping the budget in check

PROJECT TIMELINE

1 week
2 weeks
12 months
1
Background
Defining Scope
  • Working on a prototype scheme
2
Strategy
Planning
  • Developing a strategy
  • Delegating tasks
Teamwork
  • Brainstorming
  • Applying innovative solutions
  • Building a prototype
Tests
  • First series of tests
3
Implementation
Developing
  • Introducing the prototype to a consumer
  • Discussing the prototype
Testing before launching
  • Series of tests before launching
  • Working on bugs and important issues
Implementation
  • Launching and implementation of the platform

Design Development

The customer provided us with a ready-made platform design for refinement. The designers, who were a part of the team, made the audit of the prototype, added the necessary edits and proposed several more innovations that increased the platform's usability for the client

Computools
Project Manager
UI Designer
UX Designer
CLIENT
CTO
Operations Manager
Communication

CODE DEVELOPMENT

Since the main task is to create a composite platform, the developers worked separately on each part, gradually connecting them together. At the intermediate stages, additional testing and debugging of the platform was carried out. We sought to initially stabilize the prototype in order to make only minor amendments in the future

CODE SAMPLE

Scan QR code to find code sample

Or use link below

https://github.com/computools/Dependency-Injection

Implementation On Client’s Side

01 Launch

The customer conducted thorough marketing research to reveal the need of the target audience, select the necessary functionality and usability of the platform

02 Transfer

After complete testing and obtaining approval from the client, we started to transfer the final platform to the servers specified by the customer

03 Education

The customer did not contact us for compiling training documentation or tutorials for clients. Nevertheless, we are always ready to help with this

CONTACT US

Let's talk about your project.
Use the form to drop us an e-mail.

Thank you for your message!

Your request will be carefully researched by our experts. We will get in touch with you within one business day.