Project Overview

youVerify is built on NML's Lenticular.io platform.

The application calculates a personal profile score by weighting user details in a scoring engine, the user is given an authenticity score out of 100.

When a user wants to sell an item they are taken through a series of steps where they use the smartphone's camera to capture a sequence of cued images that highlight telling aspects of the product.

This is also passed through a scoring engine and given an authenticity score. The seller is issued an online certificate that they can to link to when advertising their product online. This certificate provides a detailed product report, allowing users to make an informed decision when buying goods online.

Technology

Technologies used include:

  • Lenticular
  • Xamarin
  • SQL Server
  • Entity Framework (ORM)
  • Asp.Net Web API
  • Asp.Net MVC 4.

Architecture

Technical overview of the N-Tier Architecture and object oriented design pattern applied to the youVerify solution with the technology stack implemented through the different architectural layers.

Lenticular

Data Access Layer

  • SQL Server
  • Entity Framework

Business Layer

  • Managers and Services to translate Lenticular assets and applications to youVerify specific domain objects

Rating Engine

  • User Rating Engine
  • Product Rating Engine

Lenticular API

  • Web Services Layer
    • Asp.Net Web API
    • Facilitates transfer of JSON domain data via HTTP Services to youVerify Mobile Application and youVerify CMS
  • Security Layer
    • SSL certificate implemented

youVerify CMS

  • Service Mediator Layer
    • Handles HTTP responses and requests, transfers data to and from the CMS
  • Presentation Layer
    • Asp.Net MVC 4
    • Visual translation of data received from Lenticular API Security Layer
  • SSL certificate implemented

Lenticular.io CMS

youVerify leverages off the Lenticular.io CMS in order to control the flow of information displayed on the youVerify iOS mobile application and monitor, approve or reject verifications made by a user.

Customisation of Lenticular

The youVerify application maps to the Lenticular.io functional set with client specific custom development to achieve the required product specification.

The brand owner adds digital assets (products) to the CMS. Lenticular.io supports inanimate objects as base objects of the domain model.

The user (person conducting the verification via the application) adds their review object (the item they are wishing to have verified). The user is requested to map their review object to the product asset on a ‘one image to required image’ basis, which is something that can be configured in the Lenticular.io platform.

The rating, thumb up/thumb down, social sharing and multi user reviews per asset are features that are intrinsic to Lenticular.io

The administrators are presented with an activity stream of reviews that are pending their assessment. The administrator is sent workflow notifications that objects are pending their assessment. The activity feed and notification engine are also features that are intrinsic to Lenticular.io.

Brands

Brands are added by administrators and associated with applicable categories.

Products

Products are assigned a brand, a category and a mobile client display option, allowing for generic products.

Templates

A verification template describes the steps for a user to verify a product. This can either be a photo or serial/model number.

Tells are objects describing product specifics. Templates consisting of a series of ‘tells’ are used to verify the seller’s product against a genuine product.

Templates are created by administrators in the CMS by selecting a product, sequentially entering the tell information and score ratio used when calculating the tell weighting. Tells can be ordered, edited and deleted from templates.

Reports

A verifications created by a user generates a report for administrators to approve or reject.

Successful verifications are notified by email containing two programmatically generated profile images, with the youVerify logo, and a link to user’s verification report.

Unsuccessful verifications are notified by email.

Xamarin

youVerify has been built using Xamarin technology. The use of Xamarin.iOS allows native iOS apps to be created using C#.

There are numerous advantages to using C# to write iOS apps:

C# is a more mature language than Objective-C, and includes powerful constructs like LINQ and PLINQ that allows for the creation of complex code in neater and more concise syntax, but since all the native Objective-C API’s are still available, you get native functionality.

Xamarin also produces Xamarin.Android for the creation of (native) Android apps in C#; furthermore, C# is the native language for Windows Phone development.

Xamarin effectively makes C# the lingua franca for native mobile app development for iOS, Android and Windows Phone. Since the code for all three platforms is written in the same language, code re-use becomes a reality: the business logic of the app is written once, and used in all three platforms. The only customization required is for the user interface, and each UI is created specifically for each platform. The result is an app that not only is native, but also looks and behaves like a native app on each platform.

Camera Overlay

LinkedIn Integration

youVerify allows users to log in with their LinkedIn credentials. Unlike Facebook and Twitter, there is no native LinkedIn integration into iOS. There is also not a set of libraries to facilitate LinkedIn integration into an iOS app (like Facebook and Twitter).

A custom OAuth handler was created to allow users to sign into the youVerify app using their LinkedIn account: following the Facebook/Twitter model, the app switches to Safari and opens the LinkedIn website where the user enters their credentials. The user is then switched back to the youVerify app, and is logged into the app.

Rating Engine

A user’s reputation is based on a rating that is generated firstly for the user-self (personal data verified, verification history), and secondly for the specific product which the user has verified.

User-Rating Engine

User-Rating Engine User Rating will be determined according to two main criteria: the existence of data, and whether that data is verified. There are two main sections to the user rating: account data and social media data.

Firstly the rating engine checks user profile data (i.e. the data entered by user when he registers), it is then put through a validation system checking for existence and property specific validation, for instance, if the email provided by the user is valid. This information is then crosschecked against the users social media profiles. The users geo-location is also crosschecked with the location provided by the user on these social platforms. Extra social media platform specific validation is also completed.

Based on the above a score is generated by the youVerify user-rating engine which is then displayed on the user’s youVerify web report.

Product-Rating Engine

The product-rating engine scores each tell of a template verified by the user individually. Tells are weighted relative to one another making it possible for one tell to carry more importance. These weights are entered in the template section of the CMS. Geographic and date-time information is stored for each tell. A score is awarded if the tell was provided, this means if an image is required, it is taken, or if a serial number is required, it is entered. A further score is awarded if the geographic location of where the tell was input matches the current location provided by the user’s social media accounts.

Based on the above a score is generated by the youVerify product-rating engine which is then displayed on the user’s youVerify web report.

Design

The youVerify iOS application utilises innovative development and UI design technologies, using the latest design and cross-platform development tools to create a rich user interface and a detailed camera workflow.

Development and Design Workflow

Closely integrating the visual design and development process of the app views allows the same designer to visualise the UX and app screens and build the app screens in Xcode using detailed wireframes, reducing the development time.

PaintCode

Most of the visual assets in youVerify were designed using PaintCode.

PaintCode is a vector based drawing program that exports visual elements either as images or as native code such as C#, invaluable when designing assets that need to be dynamically altered. Additionally image assets can be exported as standard and @2x resolution images simultaneously.

Relatively complex graphical elements can be exported to native code and sent to the mobile developer using PaintCode. The developer can then in turn easily animate it by programmatically altering the relevant values in the asset code, as seen on the loader progress bars that appear after a verification.

Reports

Reports A verification created by a user generates a report for administrators to approve or reject. Successful verifications are notified by email containing two programmatically generated profile images, with the youVerify logo, and a link to user’s verification report. Unsuccessful verifications are notified by email.

Responsive Design of Web Report

Web reports are generated using responsive design to create device agnostic templates on a single programmatic short URL servicing both sellers and buyers.

Programmatically Generated Verification Report Profile Images

Once a CMS administrator has approved a user’s verification, a verification report email is sent to the user containing branded images, which can then be used as the main sales-post image on sites like eBay.

To generate the images supplied in the verification report email, two images are required.

 

The first image (Profile Picture) is taken from the list in the verification made by the user using the youVerify mobile application. The second is the user’s profile image taken at the time of registration.

These images are then put through a programmatic youVerify branding process. Images are converted to bitmaps, the width and height of each image calculated. According to these dimensions, positional coordinates of each image are calculated and images mathematically overlaid in the correct position, with a link to the user’s verification report and youVerify branding.

Need a software development partner?

Fill in this form and we will get back to you as soon as possible.