Description

This car wash app allows users to find an available car wash service, to book a certain time and day, to calculate the price of the service, to rate the quality of the service, and to contact the consultants in real time chat. You can find and download Sudz app on the App Store.
Implemented features
Registration System
Sudz app has two kinds of users: car owners and car washers. They choose their roles and register via Facebook, Twitter, email, and password.
Public profiles and settings
Depending on their role, they have different profiles. Car owners add the information about their cars and car washers add the information about their service. There are 3 kinds of services.
Geo-location option(map)
Car owners can locate their position and search for requests in a nearby service.
Ordering system
Car owner chooses an appropriate service and a date
Car owner sends a service
Car washer confirms or rejects the request
Car owner drives to location
Car washer delivers the service and confirms completion
Car owner and car washer leave a review for each other
Rating system
Car wash app includes a rating system that allows users to give a rate for the service.
Payment system
Our back-end developers created a payment system with Stripe and PayPal that allows users to pay for the service through the app. The car washer can withdraw money via Stripe to their bank account.
Calculation system
Our back-end developers created a calculation system that allows users to get the amount for the service. The main components that influence the price are the type of car and kind of service required. The information about the car is withdrawn from the user profile, and the information about the service is chosen by the user. Users can manage their price by changing the service.
Chat
The chat function allows users to contact the car washer for any questions.
Push notification
Our developers set up push and email notifications. Car owners get notifications when the order is confirmed and when the work is done. Owners get notifications when the payment is confirmed and when the work is done.
Challenges

Presumably, there could be two problems with the payment system when the service is not provided:
If a car owner books the service but doesn't come;
If a car owner books the service and comes, but the wash service is closed
In these cases, it’s important to identify who should get the money.
In these cases, it’s important to identify who should get the money.
We've solved these problems in advance. They are solved with a PayPal system. All the money is stored in the PayPal service before each side doesn't determine which side was wrong and confirms it. After that, the PayPal system pays for the service to one of them.
Therefore, in cases when a car owner books the service but doesn't come, a client gets 70% of the payment and the company gets 30%.
In cases when a car owner books the service and comes, but the wash service is closed, the client gets a full refund.
Technologies
An app was written using Objective-C language and Cocoa Touch framework. We used CoreLocation and MapKit framework for geolocation features. The back-end of the Sudz App was built using:

Python language and Django framework

Celery (http://celeryproject.org/) for asynchronous tasks

VVSYMQ used a PostgreSQL database and served the application via Nginx and uWSGI

Replication capabilities in PostgreSQL and Nginx allow VVSYMQ to add server instances with ease and provide for easy backups
The application sits behind a Nginx instance, which acts as an uWSGI proxy. The uWSGI daemon takes requests from Nginx and passes those on to an available uWSGI worker, which houses a running copy of the application. Nginx is configured to handle the static files directly.
Budget and timeframe

We can not disclose the development costs of this application. However, development of a similar app of such complexity would take 8-14 weeks depending on exact features and setup. The budget range for such an app is between - $15,000 to $30,000 .