GNU/Linux, Open Source, Cloud Computing, DevOps and more...

Web application for live onsite and online car auctions

No comments

This was a very interesting project related to the automotive business in which I led a technical team of 4 people in the design and development of a complete software intended for conducting live car auctions both onsite and online in a large industrial building especially conditioned for this kind of events. Unfortunately, despite the beauty of the project and being a startup with great potential and highly talented team of almost 20 people, the application could not finally be used in a real scenario because the company wound up before it could actually start due to various commercial and management issues.

However, at the technical level the application was implemented and deployed completely, fulfilling very satisfactorily the requirements and objectives initially set out. Our application was mainly inspired by the BCA and Autorola car auction softwares, and also others like CarsOnTheWeb, ManheimEurocarBidSubastacarSubasto mi Coche, etc. I humbly believe that we managed to improve them in several ways.

BCA bidding

Full management of real-time auctions

Our main technological challenge was to achieve an auction management system that allowed simultaneous acceptance of bids from potential buyers located in any geographic location through the Internet, as well as from the auction event attendees who bid on-site.

15-FRONTEND-online-car-auction

Online car auction control panel

To accomplish this, a real-time auction engine was developed using websockets and a great optimization effort was made not only on the websockets module but also the entire technological stack involved, from the operating system and network communications to the database and runtime environment. All this to get initial response times lower than 100 ms since a user pressed the Bid now button until that bid was collected by the system and updated the current price and other counters and data of interest corresponding to the car in auction at that time. In addition, all this had to be done with hundreds of users bidding simultaneously, so it was necessary to implement a sophisticated queueing and bidding system able to resolve conflicts between them.

Although those initial response times were fast enough, the system was prepared to further enhance responsiveness when it was deployed in production environment, since the testing and certification phase was done with the bid server located in the eu-west-1 area of Amazon Web Services. In other words, the server was located in Ireland and the bids were made mostly from Madrid and other parts of Spain, which introduced an unnecessary network latency of 50-60 ms which was planned to minimize placing the bids subsystem close to Madrid. Other improvements were planned to achieve the 30 ms response time goal that I planned for the application in production environment.

Multitier architecture

Another project design main goal was to achieve a decoupled architecture that would allow the presentation, business logic and data layers to be completely and effectively separated, so that the same database of cars, auctions, manufacturers, clients, suppliers, etc. could be used both by our auction software and by various corporate and third-party applications such as CRM and sales force, valuation tools, internal management of vehicle entrances, maintenance and exits, mobile apps, different microservices and connected electronic devices (Raspberry Pi) with different missions, etc.

In order to do this, I opted to implement the architecture shown below based on a REST API and the aforementioned websockets to act as an interface between the presentation and business logic layers:

Arquitectura conceptual 3-tier basada en API RESTTechnology base

These are the technologies used to support all requirements stated above:

Technology used
Auction and bid serversEC2 Instances in Amazon Web Services (AWS)
Operating SystemLinux (Ubuntu 14.04 LTS)
Backend/runtimePHP (ReactPHP & Symfony 2.6)
API RESTSymfony 2.6 + FOSRestBundle
DatabaseMySQL 5.6
Web front-endAngularJS 1.3 + Restangular

Auctioneer and scorer posts and room screens

From the beginning it was considered as an indispensable requirement that application’s user interface was fully responsive so that it could be used from any type of mobile device or tablet, as well as in the different equipment used on-site for the auctioneer and scorer posts, and also to display auction information on screens of different sizes distributed all over the venue from which in progress auctions could be followed in real time.

08-BACKOFFICE-auctioneer-screen

Auctioneer screen

09-BACKOFFICE-annotator-screen

Annotator screen

10-BACKOFFICE-room-screen-hd-1920x1080

Room screen

Internal Administration and Control Panel

In order to manage everything happening behind the scenes during the auction event’s day, but also in the days before and after to prepair the session and to manage the sales made, a complete administration panel was made:

01-BACKOFFICE-my-desktop

Home - My Desktop

02-BACKOFFICE-list-of-vehicles

List of vehicles

07-BACKOFFICE-vehicle-edit-form

Vehicle edit form

03-BACKOFFICE-account-creation-form

Customer account creation form

05-BACKOFFICE-account-detail-view-tablet

Client account detail view (tablet)

06-BACKOFFICE-list-of-accounts-mobile

List of customer accounts (mobile)

Public website

As I said at the beginning, in addition to dealing with live on-site auctions, also external bidders should be given access so that they could register for the various auctions available, select and bookmark the cars that were most interesting for them, bid on those vehicles at the same time when they were auctioned on-site and could finally fullfill the complete purchase process of cars once they were awarded to them. For this, a complete public website had to be developed to allow users to perform all these operations:

17-FRONTEND-auction-detail-view

Auction detail view

16-FRONTEND-auction-calendar

Auction calendar

15-FRONTEND-online-car-auction

Online car auction control panel

14-FRONTEND-user-sign-up-form-mobile

User sign up form (mobile)

13-FRONTEND-account-detail-view

Account detail view

12-FRONTEND-user-registration

User registration form



 

About the author

Daniel López Azaña
Cloud Solutions Architect

Entrepreneur, a generator of ideas and restless mind. Passionate about new technologies, especially Linux systems and Open Source Software. I also like to write about Technology News, Cloud Computing, DevOps, System Security, Web Development and Programming, SEO, Science, Innovation, Entrepreneurship, etc.

DanielWeb application for live onsite and online car auctions

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *