I want to know the technical infrastructure and structure of car transportation mobile apps companies such as UBER
Hello! Thank you for your question about the technical infrastructure of car transportation applications. The short answer is that the application needs to have three main technical requirements (mapping, notifications, and payment processing) to be successful, will cost an estimated $30,000 to develop, and that UBER's business model is built upon a limited ownership, partnership with drivers, and a variety of services philosophy. Please see below for a deep dive of this research.
TECHNICAL REQUIREMENTS OVERVIEW
Using UBER as a case study with articles that compared its infrastructure to its competitors, the technical requirements of transportation apps was elucidated. There are three main areas that an application has to develop, or collaborate with existing software and network resources, to create its service: mapping/geolocation, notifications, pricing/payment.
To match a rider to a driver, any transportation application must first determine the location of each user. UBER relies on CoreLocation and Google Location APIs for Apple and Andriod users respectively to accomplish this. The app must then give the driver directions to deliver the rider to their desired location, and UBER uses the framework of MapKit and Google Maps to accomplish this. The company also purchases "mapping technology companies to solve their logistics issues" regarding the integration of mapping software into their technology stack.
Ride sharing applications like Lyft and UBER use push notifications to alert drivers of new jobs, give riders updates on the driver's location, and more. UBER uses Apple push notifications for its users with iPhones, and Google Cloud Messaging for its Android users. Twilio telecommunications powers all of their text messages.
One of the unique features of UBER, and the one that has drawn the most attention, is its surge pricing algorithm. This patent pending technology uses a heat map of demand to adjust ride pricing. It also enables the company to alert drivers of a high density of riders in need of service. During Superstorm Sandy and other events, this change in pricing drew scrutiny from the public.
To handle the credit and debit card payments of the riders, transportation applications need to have the infrastructure to process the payments. UBER has partnered with Braintree, and PayPal's Card.io technology to handle payments on the OS platforms, while Lyft uses Stripe.
THE NITTY-GRITTY OF TECHNOLOGY INFRASTRUCTURE
A list of the stack technologies used by UBER can be seen in infographic form here. The main programming languages of this compary are Node.js and Python, though Java and Google Go are also used for specific applications. The company has structured its programming, data storage, and all other functions to be a "hybrid cloud model" that utilizes a combination of cloud platforms and various data centers. They use more than one data center so that if one fails, all services and information can be quickly taken over by another without causing a blip to users. The newest version of the application has a "new mobile architecture cross-platform compatibility, where both iOS and Android engineers can work on a unified ground. "
The storage and analytics sector of this type of application requires long-term and temporary data memory (UBER uses Cassandra clusters and Schemaless, which was "built in-house on top of MySQLs", respectively), a data warehouse to analyze the information (UBER uses a Hadoop warehouse), and "redis for caching and queuing". Kafka clusters are used in multiplicative for log analytics, and the information is then stored in the Hadoop. For UBER, the data center's operating system is Mesos.
To enable the application's various services to communicate with each other across the company's network, UBER engineers have utilized "a combination of HAProxy and Hyperbahn." The development of the application occurs on either the developers' computers or on virtual machines on a cloud platform. This enables the engineers to use a beta version of the application as they seek to improve it before releasing it to the public. Nagios software is used to monitor the performance of the app.
On the user interface and connection side of this type of app, there needs to be infrastructure in place to hand real-time requests for rides, directions, and payment. For UBER, this is called Marketplace, and has its own data and engineering team behind it. The code for Marketplace uses all four of the programming languages mentioned above to improve communication across the network and platforms, and to build in redundancy as a safeguard against failure. This system needs to be fast to respond in real-time so "engineers use Cassandra and Go more heavily than other teams at Uber". However, Java is used for "web front-end applications". Finally, the web technology of UBER utilizes a "base web server" called Bedrock that has been constructed off the framework of Express.is.
UBER'S BUSINESS MODEL
The ride sharing application has a market share of 25 million rides out of a target market of 55 million rides, and is valued at over $50 billion. Its business model has three main areas that facilitated its success: variety of service options, limited ownership, and partnership with drivers.
UBER offers various levels of service with UBER Black, UBER X, and more. This expands its market size as it can cater to more riders. They have also expanded into other means of transportation (e.g. boats, motorcycles, helicopters). The company varies its pricing, as discussed above with its surge pricing algorithms, to respond to changes in market demands and capitalize on new opportunities.
The company has a mentality of "drivers as partners," and allocates 80% of the ride fare to them as payment. This enables UBER to work with a lack of ownership for its business model so that they do not have to maintain a fleet of cars or worry about insurance costs. They have used this model across various cities and countries with great success, and while they have tweaked a few things, overall they have continued with what works.
When UBER began, they battled, like all start-ups do, for name recognition. Their solution to this problem was "word of mouth among the tech community." This was facilitated by giving free rides to technology events the company sponsored, and then encouraging and rewarding the initial users who continued to use the app. Now, each new city that UBER expands into has a small launch team to utilize similar techniques.
The price point for building a transportation application is based upon both man-hours in writing the program, and in the services used by the application for things such as geolocation. It is estimated that building an app for both the riders and the drivers requires 5,000 hours.
Using the categories from above, that breaks down as follows for the cost of construction:
Mapping/Geolocation: Depending upon the service used, this cost will vary, but an average price is estimated to be $7,000 overall for development time.
Notifications: This averages out to be an estimated total of $3,500.
Pricing/Payment: The cost for this in app development comes to $5,700.
Other costs to consider are user interface to ensure profile accuracy, privacy, and registration ($6,200), and the aesthetic design and usability of the app ($3,000).
In total, the cost to develop an application similar to UBER or Lyft is an estimated $30,000.
Transportation apps require a technological infrastructure that can handle geolocation and mapping services, notifications for both the rider and the driver, and payment processing software. Using UBER as a case study, the specific types of software, hardware, and IT logistics, as well as the company's business model, have been examined. The cost of developing such an app is estimated to be around $30,000.
Thank you for using Wonder! Please let us know if you have any further research needs.