Our client's request
The founder of Snaapy asked us to create a platform for promoting small and medium-sized offline businesses – from hair salons and barbershops to car rental agencies, to pet care services.
We needed to create both web and mobile applications as well as a comprehensive admin panel. This client-oriented system would let users book appointments with service providers for flexible or fixed timeslots according to their needs. Clients would also be able to leave comments and rate businesses.
According to Louis Columbus, the Forbes contributor, small and medium-sized enterprises (SMEs) should implement mobile solutions. A mobile platform allows a business to create a marketplace and connect to their customer base.
Service booking platforms such as Snaapy handle appointments made by clients while equipping businesses with enterprise resource planning (ERP) functionality to monitor their employees’ workloads, manage appointments and payments. The Snaapy platform gives insights into a business’s customer base, reveals consumer habits, shows appointment histories, and uncovers general needs of clients, all while accumulating valuable data.
Our team built this project from the ground up, creating a website and native apps for both iOS and Android.
We started with persons and user stories that we wrote together with our client. We used them to create detailed wireframes. At first, we designed the web version and then the apps. We started working on the style simultaneously and took into account the logo Our client wanted to use their existing logo, which predetermined the style and color palette. The overall look of the app conveys the feel of a friendly workspace, and the web application allows businesses to manage complex business processes.
Based on the user tasks and user flows described by our client, we aimed to manage appointments as elegantly as possible. Our main task was to visualize the workload at different levels, from individual employees to the whole branch. The second part of the task was to enable providers to manage new and existing appointments. For better visualization, we seriously customized Fullcalendar library.
We used the Django and Django REST framework to develop a RESTful API server to support the mobile and web applications.
We used Celery to send emails, push notifications, and text messages to users asynchronously.
We built a WebSocket server using Tornado to enable real-time notifications.
We used the DataTables plugin to conveniently display information regarding the branch, customer, service, service type, status, and so on in tables, and used WebSockets to dynamically update this information. We also used the Knockout library to enable dynamic data changes to individual page elements.
For the animation on the main page, we used ScrollMagic and GSAP. This combination allowed us to create a complex animation based on page scrolling that focuses attention on the advantages of the service.
The SteelKiwi development team integrated Google Maps to enable convenient location-based search and built in a push notification service that sends notifications about upcoming events. We also integrated various payment systems such as Checkout.com, My Fatoorah, and KNET to enable in-app purchases. Soon, we plan on integrating the widely-used Stripe payment system.
In 2014, we used Objective-C for the iOS application as it was popular, stable, and met all technical requirements for viewing information about services, booking a service, and paying for it. As Snaapy is an ongoing project, we made use of the MVC (Model-View-Controller) architecture to make the code easy to extend in future.
The Google Maps SDK allowed us to implement all the functionality that the iOS version of the app required in order to show maps and locations of businesses. We created many complex animations on our own without using any third-party libraries. What’s more, we created a multi-functional, easy-to-use daily and monthly calendar for the iOS app.
We developed the Android application using Java and the Android SDK. To enable communication with our backend, we integrated the well-known Retrofit library to send requests and handle responses. Using the MVP (Model-View-Presenter) architecture, we made our code maintainable and scalable. To implement new features going forward, we’ll be using Kotlin, which allows us to write cleaner code and develop more efficiently.
To increase the performance and responsiveness of the app and enable a frictionless user experience, we separated the UI flow and moved all resource-expensive operations into background threads using RxJava. RxJava allows us to effectively manage threads and handle events that come from threads.
Clients can discover businesses in their city on a map with pins.
Businesses can be filtered by category, subcategory, or name. There’s also an option to sort by rating and location. Sorting by location and the Nearest to Me function works in a regular browser.
Snaapy is a marketplace where service providers can create profiles that include detailed descriptions of services they offer, pictures, and hours of operation as well as list all branch locations. Businesses can also respond to comments from clients.
Clients can instantly book an appointment with a service provider at a time that suits them. They can even indicate their address if they want the service provider to come to them and can confirm their bookings using the app.
Snaapy is flexible, allowing service providers to set custom schedules. Even the trickiest schedules can be handled thanks to recurrence rules. Each business can decide whether clients can pick a specific provider when scheduling. Clients can always choose the service they would like. Offering the possibility of choosing is optional on the part of businesses.
The booking system is complex, allowing businesses to set schedules for multiple branches and allowing service providers to list their unique services. Each branch is responsible for setting its own hours of operation. Businesses need to indicate what services they offer, how long it takes to deliver each service, and the price for services. This information applies to the whole business, not just to one branch. Each service provider is assigned to a list of services they provide, which allows businesses to fine-tune their schedules. The system also allows businesses to manage sick leave, days off, breaks, and vacations.
Clients can choose from a variety of payment options within the app, including credit card, KNET, and cash. The great advantage of this system is that it helps businesses manage and track all financial transactions.
Clients can rate businesses after a service has been delivered. Ratings are shown on the preview page.
Businesses can place ads in Snaapy to promote their services. Snaapy is a promotional platform linked to the booking system. For each successful order, Snaapy charges the business a small commission. In case of a no-show, the commission is returned.
There are three business roles in the app: the administrator, who can access every part of the platform; the receptionist, who can manage all appointments; and service providers, who can manage their own appointments.