Project overview

A high-load mobile-optimized catalog of over 100,000 local businesses that provides a single point of access to rich functionality, including a powerful search engine, statistics and user behavior analytics, and more.

The client specializes in providing targeted advertising exposure for small and medium businesses in Latin America through optimized business listings on both desktop and mobile.

Industry
eCommerce
Delivery Model
SLA-driven task backlog delivery (TM-based)
Effort and Duration
10 months, 32 man-months
Technologies
PHP, Front-End, CSS, HTML5, JavaScript, jQuery, Symfony, nginx, MongoDB, PostgreSQL, Amazon EC2, Amazon RDS, Amazon S3, Doctrine 2 ORM, DoubleClick, Elasticsearch, Facebook API, Google API, YouTube Data API

Business challenge

The client’s principal objective was to transition away from a third-party platform they were using and replace it with a bespoke business directory solution that better suited their needs in terms of functionality, customizability, and UX.

The new multifunctional, bilingual system needed to encompass all previously available features — such as business profile management, advertising platforms, and analytics — while implementing new functionality and enhancing mobile user experience. The client was also looking to retain or improve the portal’s SEO ranking and open new ways of monetization.

Oxagile’s differentiators

Oxagile produced an impressive track record of industry-specific BI solutions featuring data discovery, interactive reporting dashboards, mobile BI, and other powerful tools for turning information into actionable insights.

Moreover, previous experience in building an end-to-end ad management service for Google put Oxagile in the optimum position for the required integration of DoubleClick.

Delivered solution

The resulting online business directory is a time-saving source of consumer information and an invaluable tool for businesses that want to expand their digital footprint and gain beneficial marketing insights.

Key features and highlights
  • A catalog of over 100,000 businesses organized by service type and location
  • A powerful internal search engine
  • Improved desktop and mobile UX that underwent meticulous A/B testing
  • Business profile management, including media posting, links to social networks, and discounts
  • Different user roles and permissions, including Administrator, Sales Representative, Content Manager, and more
  • 6 subscription types with various functionality and customization levels
  • An integrated DoubleClick advertising module
  • Exportable reports and statistics (total impressions, profile page views, and more)
  • A custom user behavior analytics module providing easy setup, better performance, and full control over the aggregated data
  • Third-party integrations (Facebook, YouTube, Google Maps, and more)
Data Migration

With the amount of data contained in the old system, a seamless migration process was paramount for the project’s success.

Oxagile’s developers wrote custom tools to migrate the data over a remote API. The team introduced iterative migration, performing in-depth data analysis after every migration cycle and quickly fixing issues as they cropped up.

System Performance

Throughout the project, Oxagile worked on speeding up both individual modules and the system as a whole to accommodate a growing user base:

  • Regular performance testing with JMeter to identify bottlenecks by keeping track of response times, transactions per second, and CPU usage
  • Implementing AWS infrastructure with horizontal scaling capabilities
  • Using Elasticsearch to supercharge the internal business search engine
  • Changing the existing database schema and refactoring the backend to achieve optimal redundancy and fault tolerance

For added robustness, the team implemented failover and load balancing capabilities. Architecturally, Oxagile introduced separate databases for reading and writing. The main PostgreSQL database was made read-only and operates in master-slave replication mode. A standalone MongoDB handles all writing operations for statistical and analytical data.

As a result, the system effortlessly supports 1,000 concurrent users and 50,000 unique daily visitors.

SEO Visibility

The client’s business is heavily dependent on search engine traffic, therefore one of the chief objectives during development was maintaining high SEO rankings without impairing user experience.

First, Oxagile migrated the SEO data and configuration from the old web portal. Subsequent development iterations included rigorous SEO audits, which helped to ensure all SEO requirements were in order with every major release.

The team employed best SEO practices throughout the project, such as rebuilding the XML sitemap for optimum crawlability, validating HTML content to ensure error-free rendering, and configuring redirection after switching to HTTPS.

It was important to the client that pages load quickly, especially on mobile. Oxagile addressed these concerns by eliminating render-blocking JavaScript and CSS, leveraging browser caching, and introducing image compression.

Security

The amount of vital business information processed by the system placed an additional emphasis on security.

The team relied on the Symfony framework security tools: access to particular pages is restricted by a role-based authorization mechanism, passwords are hashed before being stored to the database, any significant system actions are logged for auditing, and automatic logout is performed for simultaneous sessions.

As a means of guarding against SQL injections, the team practiced prepared statements to separate SQL query from the parameters.

Third-party integrations

Oxagile added further value to the product by integrating it with DoubleClick for Publishers. This leading advertising platform streamlines ad campaign management, enables access to premium sites, improves audience targeting, helps to integrate analytical systems, and more.

The portal is easily integrable with other services via third-party APIs as well as by exposing its own custom API endpoints. This gives users the opportunity to synchronize their videos with their YouTube channel, share links on social networks, locate services via Google Maps, or interface with the Salesforce CRM.

Conclusion

By cooperating with Oxagile, the client received a custom, fully-owned business directory solution that features comprehensive functionality, an optimized architecture, and smart UX — all while retaining crucial SEO rankings and visibility across hundreds of thousands of pages.

The solution has been localized to support both English and Spanish and is currently undergoing final internal testing.

After the launch, the client is planning to continue cooperating with Oxagile to make the portal even more engaging, e.g. by integrating the directory with the TripAdvisor review service and enabling business owners to connect to an an external content management system.