Snaapy

Snaapy

Building a promotional app with ERP features for small and midsize businesses
Marketplace

Marketplace

Our client's request

Noor Al-Sulaiti image
Client's location: Kuwait

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.

Mobile Qatar Kuwait Booking Business Entrepreneur Marketplace

Relevance

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.


 

User Roles

icon
Business admin

The business admin can create business accounts with work details and portfolios and can manage all processes within those accounts, such as monitoring employee workloads and managing appointments and payments. The admin can also promote services on the platform and get notifications about all events.

icon
Receptionist

This is an optional role. Receptionists can manage service providers and appointments in their branches and are responsible for downtime and vacations of service providers.

icon
Service provider

Service providers can manage their work schedules and the services they offer. They can also check appointments, get notifications, and plan their downtime and vacations.

icon
Customer

Customers can create profiles, check businesses in their cities using categories, and book appointments with service providers by choosing a time slot. Customers can leave comments and rate businesses. They also can pay through the platform.

Results

Duration:
November 2015 – present
Team:
Backend - 2 Frontend - 2 iOS - 2 Android - 2 UX - 1 UI - 2 QA - 3 PM - 1
Designed the UX/UI

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.
 

Developed the backend

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.

Developed the frontend

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.

Integrated maps and payments

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.

Developed a native iOS application

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.

Developed a native Android application

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.

Features

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.
 

Gallery

Gallery
Gallery
Gallery
Gallery
Gallery
Gallery

Technology Stack

Backend

Python
Python
Django
Django
Django REST framework
Django REST framework
Twilio
Twilio
R
REST API
Celery
Celery
Redis
Redis
Tornado
Tornado
Geo Django
Geo Django
P
Push Notifications
W
Websockets
PostgreSQL
PostgreSQL
Myfatoorah.com
Myfatoorah.com
Checkout.com
Checkout.com
K
KNET

Frontend

S
SockJS-client
Moment
Moment
GSAP
GSAP
ScrollMagic
ScrollMagic
Gulp
Gulp
C
Cropit
L
Locationpicker
C
Custom Scrollbar Baron
Knockout.js
Knockout.js
Fullcalendar
Fullcalendar
SASS
SASS
Bootstrap
Bootstrap
D
DataTables
jQuery
jQuery

Mobile

Java
Java
Android SDK
Android SDK
A
Android Support Library
D
DataBinding Library
Hawk
Hawk
Timber
Timber
Google Maps
Google Maps
O
OkHttp
Retrofit
Retrofit
Glide
Glide
S
Supporting Right-To-Left Languages
Picasso
Picasso
Google Analytics
Google Analytics
Google Places
Google Places
Google Cloud Messaging
Google Cloud Messaging
Objective-C
Objective-C

See more case studies

Developing a mobile healthcare app for doctor-patient consultations

Developing a mobile healthcare app for doctor-patient consultations

A mobile telemedicine app that makes healthcare more accessible, more convenient, and less expensive

  • Healthcare
  • iOS
  • eHealth
  • TeleMedicine
Developing an MVP that finds the best Instagram hashtags

Developing an MVP that finds the best Instagram hashtags

A mobile application that helps Instagram users find perfect hashtags for their posts

  • Hashtag
  • Android
  • iOS
  • Instagram