Cabo Transfers Deploys New Mobile-First Website In Its Unending Commitment to Serving Its Customers and Travel Partners

Cabo Transfers Mobile Web

Cabo Transfers today announced the release of its revised website to simplify booking and paying for private and group transfers from the San Jose de Cabo (SJD) airport to any of the resorts in the surrounding area. The new website, developed by 14 Oranges, allows customers and partners to book their premium services from a website or smartphone on the go.

PRWeb: Feb 28, 2017, Cabo San Lucas, Mexico

Cabo Transfers, the premiere, private, full concierge transfer and excursion service for visitors to Cabo San Lucas and the surrounding area, today announced the launch of their new website supporting both standard web and mobile browsers. The website allows visitors and partners to easily book and pay for a comfortable and luxurious transfer from the airport to their preferred Cabo San Lucas vacation destination.

Cabo Transfers Web View

In addition to airport transfer services, Cabo Transfers also offers roundtrip private driver services for dinners, trips to the grocery store and excursions to noted local attractions such as Hotel California, the Palmilla Golf Club or Cabo Dolphin Encounters. With more travellers booking their accommodations through services such as Airbnb and VRBO, grocery store trips have become increasingly popular.

The website is designed to simplify quoting, booking and confirmation and provides an integrated payment system for their fleet of vehicles ranging from a Ford Expedition up to a full-sized motor coaches to accommodate any sized group.

One of the more innovative services supported by the website is Cabo Transfers’ new partner booking portal, allowing travel agents, wedding planners and hotel partners to easily book transfer services on behalf of their clients. As a member of the American Society of Travel Agents (ASTA) this service fits tightly into the mission of shared knowledge and access to services between member organizations. The portal will be launched in the 2nd quarter of 2017.

“Our new website shows our commitment to our customers and partners as the safest and most trusted private hired car service serving Cabo San Lucas,” said Mark Diesvelt, the Online Systems Manager at Cabo Transfers, “14 Oranges has delivered an exceptional user website experience in line with this goal, helping us to service our stakeholders on the web or on the smartphone platform of their choice.”

14 Oranges is a leading provider of web and mobile services supporting on-demand services and the uberfication of everything. Supporting web and mobile solutions for the tourism, government and enterprise markets, our customers trust us with their most critical revenue generating and operations management systems.

About Cabo Transfers
At Cabo Transfers, we strive to provide the most elite transportation service in the Los Cabos area. It starts with our luxurious and comfortable vehicles. It continues with our high level of transportation service with our staff. Finally, our competitive rates will showcase why we are able to exceed our guest’s expectations. Cabo Transfers will keep you from worrying about your transportation needs any time you travel to beautiful, sunny Los Cabos. Cabo Transfers is a long standing member of ASTA (American Society of Travel Agents) and the only transportation company in Los Cabos with NLA (National Limousine Association) accreditation.

Contact: Mark Diesvelt, mark(AT)cabotransfers.com

About 14 Oranges
14 Oranges, is a leading provider of turnkey web and mobile application services to support our customer’s key requirement for simple end user engagement and efficient operational management. Headquartered in Richmond, BC with offices in Ottawa and Halifax, 14 Oranges sells its services to governments, retail organizations and enterprises. 14 Oranges’ web and mobile application services brings a mobile-first design approach, enabling our customers’ end users to connect with their organization on-the-go, while they in turn manage their organization from their smartphone. Managers realize an immediate return on investment (ROI) from increased end user engagement and an increase in their organization’s productivity.

The Discount USA Car Rental App and the Uberfication of Everything

Discount USA Car Rental Closeup

Whenever I travel, I find myself inundated with requests to rent a car. Every time I purchase a plane ticket, or reserve a hotel room or visit a tourism website I’m asked if I want to rent a car from a certain provider at a discounted rate, and its never seems to be my preferred car rental agency.

Then when I go to my preferred car rental website, I don’t see that rate offered at that destination, or the car I wanted. I keep feel like I’m missing out! Why can’t I just go to one place and find it all again and get the best deal possible?

This is the frustration the Discount USA Car Rental app has been designed to solve. They have the same discounted rates offered up to all airlines and hotels through their site for all the rental agencies in one place. This allows you to see the best deals and allows you see the best deals available where you are going.

This app, developed by 14 Oranges for Discount USA Car Rental joins the world of “on demand” apps also discussed as being part of the “Uberfication of everything” trend. It’s the idea that consumers what to a single place to go and find the rock-bottom best price for good service, and it should be turnkey and as frictionless as possible.

Package deals for hotels, airlines and car rental agencies made sense at one point because of the literal friction involved in making bookings in the 70s and 80s. There was friction on your fingers while you leafed through paper catalogs filled with star rated hotels at travel agencies. There was friction from squirming in an uncomfortable chair at the travel agent while they booked your airline ticket through a 900 baud connected reservation computer. Then, after an hour sitting in the stale coffee infused travel office in rayon pants, a self-inflicted form of friction mind you, if the package offered you an orange Ford Tempo with roll-down windows as your air conditioning option, you took it just to get out.

Now with hotel and airline reservations literally available within seconds through on-demand discount airline and hotel apps, it makes sense to have a standalone rental app that also gives you the best deal without any of the packaged entanglements.

Because nobody wants revisit trauma caused by that family trip to the Florida Everglades in that orange Ford Tempo with no AC!

The Status of PHP Frameworks Laravel Lessons Learned

Bam! Emeril

PHP, started by Rasmus Lerdorf back in 1994, has become one of the most popular server side scripting languages thus far The name actually came from “Personal Home Page” as it was originally conceived as a set of tools to help Rasmus track hits to his personal resume. I first started off as a Classic ASP developer back in the late 90’s and when one of my first employees introduced me to PHP, I was hooked; so many useful utilities came for free and it had a very quick learning curve. As a self taught web developer, it was an absolute no brainer to start using PHP.

php-med-trans

Apparently I wasn’t the only one who thought this, as PHP grew rapidly to power more than 100 million websites worldwide. PHP has gone through a number of iterations with the most current being version 7 (Note: Version 6 was skipped when version 7 showed so much promise) The big benefits of php7 have been the speed improvements, you can find Lots of info on this link here.

If you have worked with PHP before, I am sure you can attest to its ease of use and are likely well versed in it’s frustrations as well. It’s really easy to write bad, and I mean REALLY bad code using PHP. Think of a functions.php file containing 10,000 lines of code, and you know where I’m going!

Along came frameworks.

A framework, as the name implies, is a structure on which to build. In the case of php Zend, the company behind PHP, they have had an open sourced framework that has been available since 2010. A framework provides developers with a few important things.

First it provides a general structure for your application. Second, it provides some guidelines for how to write your application. And finally it provides lots of useful utilities, classes, template engines, etc.. Some frameworks are full featured with everything you could ever want (and then some more than you want) while others have carved out their niche by slimming down and offering just the basics. Most frameworks offer some method of bolting on new features or tools as required and many now include baked-in testing tools.

We have evaluated the use of frameworks for a number of years and have even gone so far as to create our own here at 14 Oranges. It was pretty bare bones and ended up being difficult to maintain. We have since opted for the use of two different frameworks. Slim framework and Laravel. I discussed the Slim framework in a previous blog here

https://www.14oranges.com/2016/05/creating-an-api-fast-with-slim-framework/

But today I would like to discuss what the modern frameworks are offering up to full application development. I will refer mostly to Laravel as it seems to be the most popular framework these days but much of what I will describe is likely true for other frameworks as well.

Barrier to Entry

The learning curve for php, as mentioned above, is pretty not steep. If you are a logical person with some basic knowledge on coding you can probably learn to write a simple database driven application in a few days. Now leverage a framework and you can certainly do the same in less time. That being said the first time I tried to use a php framework I banged my head against the wall for days just trying to figure out where to put stuff. This was a number of years ago and I can attest that things have definitely improved.

Modern popular frameworks have large active communities that will answer questions quickly and are have code bases that are well documented. Laravel has done one better and has added a large number of video tutorials that help make learning the basics a snap for a noob.

Naming Confusions

One of the things that does create a bit of a learning curve is the naming of the framework components. Many of the patterns used in frameworks may be commonly used names by hard core programmers, but for a lowly web developer these names can get confusing fast.

This is a cut and paste for what shows up when I search for “Creating a facade in Laravel” (bare in mind I had never heard the term facade used in coding before I started working with Laravel)

  1. Create PHP Class File.
  2. Bind that class to Service Provider.
  3. Register that ServiceProvider to Config\app.php as providers.
  4. Create Class which is this class extends to Illuminate\Support\Facades\Facade.
  5. Register point 4 to Config\app.php as aliases.

Ok so let’s step through this really short list and talk terminology.

Number 1, ok so this one shouldn’t require explanation of course.

Bind that to a Service Provider … eh.. Hmmm … ok. So Binding and Service Provider. Logical terms but again hadn’t run into this before … Uhh oh … Now that I’m bound to a service provider I have to register it to the App Config. OK then I have to extend Illuminate. Well you get where I am going with this.

Work with Laravel for a month and those 5 steps are easy-peasy but your first time through it can get confusing.
Framework Benefits

If you are still with me, it means the barrier to entry stuff above didn’t scare you off, so thanks for sticking it out. As mentioned above, Frameworks help you organize your application and give you guidelines and tools to keep it well written and manageable. Frameworks provide this organization following application design patterns one of which is MVC (Model View Controller). MVC has become the defacto standard for PHP frameworks and offers the separation of data (Models) from logic (Controllers) from markup (Views). Laravel takes this a few steps further with the use of an Object Relational Mapping system (or ORM) and Template Engine.

ORM (Object Relational Mapping)

From Laravel’s website.

The Eloquent ORM included with Laravel provides a beautiful, simple ActiveRecord implementation for working with your database. Each database table has a corresponding “Model” which is used to interact with that table. Models allow you to query for data in your tables, as well as insert new records into the table.

Eloquent is the ORM that comes with Laravel and basically it creates an interface between your database tables and the objects you work with in your application. Creating these relationships allows your to write no SQL at all to interact with your database. It allows you switch databases easily and also implement multiple databases into one application. Ie mysql and mongodb.

Interacting with your models is as easy as wiring up your model then using things like.

$user = User::findOrFail($userId);

This gets an instance of your User object, gets all the related data for the user and lets you interact with it.

Want to change it? Easy

$user->name = ‘New Name’;
$user->save();

Bam (did that in my best Emeril Lagasse impression) database record for that user is updated.

bam

Creating a CRUD (Create Replace Update Delete) interface is easy to say the least.

Routing and Resource Routing

CRUD interfaces to a given resource can be implemented so efficiently it’s almost silly.

Check this out..

Laravel utilizes routing. Basically you define what url endpoints your application will listen for and what http methods it will listen to.

So this:

Route::get(‘users/{user}/password-reset’, ‘UsersController@resetPassword’]);

Means this:

Listen for a normal get request to domain.com/users/{userid}/password-reset

And:

Use the method resetPassword from the UsersController

So typically in a CRUD interface you need a bunch of endpoints resembling:

Show a list of all
Show one
Create One
Edit One
Insert One
Update One
Delete One.

So that would be a bunch of routes right..

Nope

Just do this.

Route::resource(‘/users’, ‘Backend\UsersController’);

And it creates them all for you.

Use Laravel’s command line tool Artisan and you can make a controller with all of the endpoints already created for you.

Now don’t get too excited! This is really just boilerplate code with correctly named methods inside a class. But add that to a properly related Eloquent model, and throw in the easy to use out of the box Validation, and you will be creating a CRUD interface that is well structured, readable and, best of all, fast.
What does it look like?

Right right right … Web developers want to see what things look like too.

Ok, so you need to do a little bit of work on this side of things. View files are just html files that allow you to compartmentalize code. But Laravel comes bundled with the Blade template engine. I won’t get into this too much but it’s easy to learn, easy to use and provides an easy way of templating the site.

Bootstrap, Sass, less, gulp, bower and the myriad other things front end developers need can all be implemented providing a great end-to-end user experience. Letting Laravel do all the heavy lifting and providing the application backbone really lets you work well in teams as well. Have a front end developer get familiar with the framework and rolling out an application is a breeze. Have your backend developers use composer and your front end guys use bower along with Laravel’s built in tools to deployment make this all a snap and maintainable.

Would I do it all over again.

Short answer: Yes! PHP frameworks have come a long way in the past few years and the toolset they can provide make code readable, well organized, stable and maintainable. There is very little overhead with getting these frameworks up and running and the little bit of extra work that goes in at the beginning is saved tenfold as the project rolls out into the real world.

Do it. Learn a framework.

Nimble Quotes: Look Smarter, Without Working Harder

I remember finding a copy of my father’s 637 Best Things Anyone Ever Said by Robert Byrne when I was just entering the workforce and consuming these brainy, and often witty quotes, from people as diverse as Hemmingway, Plato and Einstein.

My father used to use these quotes in speeches and talks he’d give to make his audience ponder the wisdom of the wise and famous while he shared the latest business innovation of his firm.

This is the premise behind the service we developed for our customer Nimble Quotes. Nimble Quotes is a web service that automatically tweets famous quotes on your behalf on a random or set time interval. It’s based on five very easy setup pages, that allow you to choose the categories of quotes you want to draw from, the hashtags that go along with the quote, and the pictures and colours to go along with your quotes. No need to leaf through thousands of pages of quotes to find that bon mot … Nimble Quotes has them all.

nimble-quotes-page-3

It’s a set and forget service! So along with your standard marketing tweets sharing your latest news, you get to add in some quotes from your favorite author or historical figure to add some wise words that can capture the imagination of your followers.

That’s because we quote connoisseurs all know … “Imagination is more important than knowledge.” – Albert Einstein.

Creating an API FAST with Slim Framework

We develop API’s very regularly at 14 Oranges, being that almost every app we have developed requires some sort of back end data source. Developing an API is really not a difficult process but there are lots of little things to consider and building one from scratch is just not always the best use of your time. We do about 90% of our server side development in php and have over the past 15 years done everything from creating our own frameworks to using popular frameworks like Cake, laravel, symfony, zend and codeigniter. But up until this week I had always ignored Slim framework. I figured if I didn’t need all the bells and whistles on a project offered by a full featured framework, I would be better just going to my own toolset.

Andrew, one of our developers, mentioned recently he was using Slim for an api related project, so when I had to develop a really quick proof of concept for a client recently, I figured I would take the time to try it out and I thought I would put some notes down for other developers that might be curious. I ended up turning it into a presentation for our company and decided to share my findings here in this post.

I figured I would jump right in and install it, then look at a few examples, write some code and get it working before reading the documentation. I know, I know, RTFM, and I do … eventually. But I am a quick study and manuals more often than not put me to sleep.

My shortcut in this case paid off. I hadn’t gotten to reading the manual yet and my API was working as intended.. So I guess what I am saying is learning curve on Slim is really low.

I began by installing it via composer. You will have to have php installed first to complete this.

On my mac I created a new directory, opened up terminal and navigated to that directory and simply installed composer with this command.

curl -s https://getcomposer.org/installer | php

There are a couple routes to take next. You could install just the Slim framework and go from there or you could start with the slim-skeleton which basically does some of the initial setup for you and points you in the right direction. I went with the basic install but in retrospect I think installing the skeleton would be a better option.

I created my composer.json file containing the following:

{
   "require": {
     "slim/slim": "^3.0"
   }
 }

Lastly installed via composer with:

php composer.phar install

There you have it … took about 1 minute.

I created my index.php file and added some rewrite rules to ensure all requests were routed to this file in an .htaccess file. Lots of tutorials out there on how to do this so I will skip it. Inside the index.php file I had to require the autoload.php file that the Slim installation created, instantiate Slim and get going on my routing. Here is what that looks like.

<?php
 use \Psr\Http\Message\ServerRequestInterface as Request;
 use \Psr\Http\Message\ResponseInterface as Response;
require 'vendor/autoload.php';

The Slim Framework’s router is built on top of the nikic/fastroute component, and its fast and easy to use. Here is what my index.php file ended up looking like with my first route defined, a base route basically just saying you need to authenticate.

<?php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
require '../vendor/autoload.php';
$app = new \Slim\App;
 
$app->any('/', function (Request $request, Response $response) {
   $response->getBody()
   ->write("Welcome to the API. Please authenticate.")
   ->withHeader(''Content-type', 'application/json');
   return $response;
 });

 $app->run();
?>

The use statements at the top of the script are bringing the Request and Response classes in. Slim framework now supports PSR-7, a PHP standard for HTTP messaging. We then setup $app to contain an instance of Slim and add a route. When adding a route to a Slim application you can choose an HTTP request method (POST, GET, PUT, OPTIONS, PATCH, DELETE) or as I have done in this case you can allow the listener to accept requests with any HTTP method.

Every HTTP request has a method that is typically one of:

OPTIONS – a request for information about the communication options available on the request/response chain identified by the Request-URI.

GET – retrieve whatever information (in the form of an entity) is identified by the Request-URI.

HEAD – identical to GET except that the server MUST NOT return a message-body in the response.

POST – used to request that the origin server accept the entity enclosed in the request as a new subordinate of the resource identified by the Request-URI

PUT – requests that the enclosed entity be stored under the supplied Request-URI.

DELETE – requests that the origin server delete the resource identified by the Request-URI

PATCH – requests that the items in the enclosed entity be stored under the supplied Request-URI (not a wholesale update).

SLIM implements each of these methods and allows you to create your own custom methods as well. The methods are not strictly enforced by SLIM so you can work with them as you see fit. You could really throw the other devs for a loop by returning error code 69 on HEAD but I really would not recommend that.

The second parameter for the route method is the callback function which is being passed the PSR-7 request and response objects. A route can look at the request and manipulate the response as required then return the response. Once all of the logic and business stuff is done you run the $app and away we go.

So in about 5 minutes of coding we have our api’s first endpoint operational. Any request to the base url of our API will respond with a 200 HTTP status (default in Slim) with a JSON content type and a response body of ‘Welcome to the API. Please authenticate.’.

Obviously the API the way it stands now is not overly useful but all we have to do is add our routes corresponding to the endpoints of our API and we will have the job done. So here is a full API implementing a really simple Authentication endpoint. Obviously this is not something I would use in the real world but it is a great example of how fast and easy Slim is to use.

<?php
 // INCLUDING THE PSR 7 REQUEST AND RESPONSE CLASSES
 use \Psr\Http\Message\ServerRequestInterface as Request;
 use \Psr\Http\Message\ResponseInterface as Response;
 
// AUTOLOAD UP SLIM
 require '../vendor/autoload.php';
 
$app = new \Slim\App;

 // DEFINE AN AUTH ENDPOINT ACCESSIBLE VIA POST REQUESTS
 $app->post('/auth/',function (Request $request, Response $response) {
   $allPostVars = $request->getParsedBody();
   if($allPostVars['username'] !== "shane@14oranges.com" || $allPostVars['password'] !==password_hash("superSecretPassword")) {
     $app->halt(403, 'Invalid Credentials.');
   }else {
     $token = password_hash ('SuperSecretToken');
     echo json_encode(array("status" => "success", "code" => 1, "token" => $token, "message"=> "App API Success" ));
   }
 });
// DEFINE A TICKETS ENDPOINT AVAILABLE VIA GET
 $app->get('/tickets', function (Request $request, Response $response) {
   if($token !== password_hash ('14Oranges')) {
     $app->halt(403, 'Invalid Token.');
   } else {
      $mapper = new TicketMapper($this->db);
      $tickets = $mapper->getTickets();
     $response->getBody()->write(var_export($tickets, true));
     return $response;
   }
 });
 $app->run();
 ?>

So there you have it. An Auth endpoint listening for username/passwordhash returning a token on success. A tickets endpoint sending back a list of tickets and verifying a valid token. All said and done very quickly. There are lots of useful features that I haven’t illustrated here but the documentation is good and the community is also pretty active so you can pretty easily find the answer you need.

Lots of handy helpers

Slim comes with a bunch of helper methods as well. Pretty self explanatory and easy to use. Here are a few examples.

$headers = $request->getHeaders();

$headerValueArray = $request->getHeader(‘Accept’);

$contentType = $request->getContentType();

$mediaType = $request->getMediaType();

$charset = $request->getContentCharset();

$length = $request->getContentLength();

$parsedBody = $request->getParsedBody();

$body = $request->getBody();

 

My Findings

Slim is small, fast and easy to use. I would definitely recommend trying it out if you are developing an api. Keep in mind that Slim takes a barebones approach to development, though. The routing is basic yet functional, but relies on the developer being able to extend it. The Slim team realize this, and have made it easy to do so, notably with middleware and their use of Dependency Injection.

Templating is available too. Slim ships with support for Twig and PHP-View, but there are many other options as well. There are some very useful organizational tools such as route hierarchy and groupings allowing you to keep a complex API well organized.

I am not about to get Slim Framework tattooed across my back at this point but I know a few guys that might!.image00

3 Reasons Why You’ll Need To Pry the Smartphone Out of My Cold Dead Hands

I remember getting the first iPhone in 2007 and having people actually follow me on the street just to see it live and in colour.  It seemed really strange at the time but it was a sign that technology had dramatically shifted forever.  There were some skeptics in the beginning of the era of touchscreen and a non flip phone but Steve Jobs persevered anyways and look where we are now.

 

iphone.0

Ah, first gen iPhone. Were we ever that young?

 

Smartphones Are Too Much Fun

Working out is my personal hell.  I despise every second of it so anything that will distract me and make it easier is something I’ll gladly jump on. Smartphones come in handy because I can load it up with horrible music and surf the web while pretending I’m anywhere but on an exercise bike.  As much as I adored my old Nokia 8890, my iPhone 6 is so much more useful.  My wonderful Nokia was featured in a Backstreet Boys video, it was still rather useless compared to phones of today. Smartphones today all look alike whereas the earlier phones had some personality and differentiating features (and Nokia had the best UI).  I enjoy scrolling through Instagram when I’m in a waiting room somewhere or checking up on my shark Einstein to make sure he hasn’t eaten anyone.  I can kill hours just surfing the net because it’s the greatest source of entertainment ever and it’s in my pocket.

My favourite cell phone!

My favourite cell phone!

Most Useful Device I’ve Ever Owned

Remember the days (yes, I know how old this makes me sound) when you had to have coins for the parking meter?  Dashing inside a store to get change and then running back out to your car to put the money in (in the rain, it was always raining)?  Those were NOT the good old days for sure.  I love being able to sit in my chair at happy hour and add more money to my parking meter when I get a text from Pay by Phone alerting me that my time is running out. This is the type of technological advancement humanity has been waiting for.  This convenience and simplicity makes having a smartphone something I can’t imagine giving up willingly.  

Another benefit of a smartphone is vast amounts of information at my fingertips.  For example, when I’m cooking and I forget what’s needed in a recipe I can just pull it up on my phone and continue without getting the cookbook.  Plus, my bookshelves thank me for not being loaded down with things I’ll never read.  My old TomTom GPS was great but nothing compared to Google Maps.  The simplicity of not needing to pull over and root around in my glovebox for the GPS is something I never thought would be a big deal but after using directions on a smartphone, it’s a touch of convenience that I appreciate.  Plus, my old GPS would mysteriously turn on in the glovebox and I’d hear an Australian man’s voice suddenly start talking while I was driving alone and it scared me half to death on several occasions.  

Terrifying when it came alive in my glovebox and spoke to me

Terrifying when it came alive in my glovebox and spoke to me

 

Ever been stuck in traffic when the venti Starbucks vanilla bean frappuccino with 2 shots of espresso (seriously, try it) you just finished suddenly hits you?  I’ve been forced to pull into Le Crocodile (thanks for your hospitality!) and throw the keys at the valet while running into the establishment to use their washroom.  Luckily, Charmin has heard my screams and created an app that will show me the nearest washrooms and the cleanest (some even have pictures!).  THIS is what technology and smartphones have done to make our lives easier.  I’m never giving up my phone because then how will I find the nice washrooms?

Improves My Life

Before Google we had to argue and use our brains (gasp!) about trivia and debate who was right or which actor was in a certain TV show or movie.  Now we don’t need to ever think, we can just look it up and save ourselves 20 minutes of arguments and lost friendships.  Smartphones: friendship savers since 2007. To be fair, because we have gotten so bad about this, my friend Erin has implemented a “no Google rule” to some of our debates so we’re forced to figure things out the old fashioned way.  I’m fine with that because I know the answer is in my pocket when we need to look. Plus, I can be wrong and no one will know for sure…  

 

When I was a university student I had my fair share of car repairs and nothing made them more stressful than being stuck somewhere in the dark, without a phone. With a smartphone however, I can look up VW manuals and find out why the coolant light might be on or what type of oil the car needs.  Huzzah! I am now a mechanic!  More importantly, I am able to search for the nearest repair shop, check their reviews and make an informed decision.  

 

Summary

I can use my smartphone to check the weather, read the news, buy Starbucks, turn on my Hue and a million other things.  I don’t want to go back to the Dark Ages of cell phones where Snake was the only game that I could play and I was unable to confirm if Aaron Paul, Bryan Cranston and Dean Norris all guest starred in the X-Files (they did!).  Being connected all the time means I get to choose when I want to plug in.  If I don’t want to answer emails, then I don’t.  A smartphone gives me the tools and freedom to decide what I want to do.  I prefer having the option of standing in a store and price checking something on amazon.com instead of going home to look online. Smartphones make our lives more seamless.

Don’t Want Your Website to End Up Like Ashley Madison? Get Piece of Mind with the 14 Oranges Semi-Annual Website Review

A website is an essential sales and marketing tool that is the face of your company and the first touchpoint for customer interaction. Websites must to be updated and evolve along with your business in order to maintain a fresh look and keep up to date with Google analytics regulations and industry changes.  Mobile searches have outnumbered desktop searches so ensuring a seamless customer experience on any device is a requirement.   

Every year web standards are updated and new methods to build websites like WordPress are developed.  For example, a site that’s several years old may have lots of HTML code so the website will load very slowly.  New coding styles and updates allow websites to be more secure and load very quickly, so take this into consideration for your website update.  Other features such as social media integration and blogs are more of a necessity than trend, but they can easily be built into web updates.

Waiting several years to update your website can lead to updates costing more money or even a complete website overhaul.  Also, with the recent number of high profile hacks, website security is not something to be taken lightly or ignored.  By making bi-yearly changes and updates to your website, you are keeping up to date with new technology, security and best practices.  Staying on top of your website helps catch possible security breaches, build your brand, increase sales and optimize performance.  Don’t let your competitors get ahead of you.

Let the 14 Oranges team evaluate your website with the following criteria:

Site Snapshot

A backup of the website would be created for disaster recovery and stored offsite.

CMS Updates

WordPress or other CMS would be updated to the latest version and related bugs addressed.

Plugin Updates

Plugins would be updated to the latest versions and related bugs addressed.

Firewall Maintenance

Software Firewall would be updated and verified.

Site Review and Code Cleanup

General review of the website and website speed would be performed.

Password Resets

Account passwords would be reset and submitted to you

Minor Changes

Minor content changes could be applied to the website as required to a maximum of 30 minutes.

Contact 14 Oranges today to get started on your website maintenance!

Whitepaper- The Engineer’s Guide to Fleet Management Solutions: Increasing Competitive Advantage and Employee Productivity

If you are part of an organization that has a mobile fleet, you are likely finding it difficult to maximize your bottom line.  Fleets are a necessary part of many businesses, but they can easily become a huge source of financial waste and inefficiency.  However, with an appropriate engineering solution, a fleet can become a productive addition to an organization instead of a financial drain.  Cost cutting, competitive advantage,and ROI are just some of the implementation results of fleet management systems.

14 Oranges has extensive experience with fleet management systems that have a measurable impact on our clients. We are experts at creating a solution that makes sense for your business and will have tangible result on your bottom line.  No company fleet is identical, so no engineering solution should be the same.

DOWNLOAD THE ENGINEER’S GUIDE TO FLEET MANAGEMENT SOLUTIONS WHITEPAPER NOW

 

Forget Tool Belts and Buzzsaws; Levy Watt is the Perfect Accessory for Contractors and Homeowners

Raise The Roof

The construction industry can be rather daunting for most people because it’s difficult to find a good, trustworthy contractor since a friend of a friend of a friend always has a horror story about getting ripped off that makes you run screaming from the whole idea.  These stories are so prevalent that there’s even a reality TV show appropriately called To Catch a Contractor about people getting ripped off for their home renovations, then being forced to hunt the contractor down in order to get the work fixed.  I even Googled ‘home renovation TV shows’ and there was a list of about 25 reality programs that focus on home repair and renovation, so it seems the fix-your-home market is booming.  But given the risk of the construction industry, what could a contractor or homeowner do to mitigate the possibility of things going south?

What's scarier, Adam Carolla or bad home renovations?

What’s scarier, Adam Carolla or bad home renovations?

 

The Levy Watt website is the solution for contractors and homeowners because it offers accountability and transparency for both parties. The website is a clever blend of a project management tool like Trello, and a secure third party bank like Paypal, but it’s tailored to meet the specific needs of the construction industry.  The entirely web based application allows both parties to communicate, manage and resolve issues as well as request, approve, and make payments as required.  Clients aren’t just handing large cheques over to contractors and contractors get payment as agreed upon steps are completed.  There is a channel for dispute resolution so if either party is unsatisfied there is a fair outlet to resolve issues.  All information is recorded on the website and both parties have access at all times to promote complete transparency.

Contractor Recommendations

Contractor Recommendations

The 14 Oranges Solution

14 Oranges decided to divide the project into three parts: a brochure website, a webapp, and an administration portal.  The Levy Watt website is used as a marketing and selling tool in order to promote their image and service.  The Webapp is the second part of the solution because it’s the tool used by the contractors and clients for project management.  The admin portal is the last part of the solution because it’s the backend that’s used, by Levy Watt staff, to manage projects, users, payment and much more.

Contractors and Homeowners Unite

The Levy Watt website allows clients to request specific contractors or ask for recommendations for a contractor.  Additionally, contractors can create projects and assign clients so it works for both parties.
Once the project is created it is still in draft mode. Contractors can add milestones and files so they can communicate with clients by private messages. When a project is ready for approval, the contractor sends an approval request to the client, who can approve or decline the request. Once the client approves the project, the funds get deposited to the project.

Levy Watt will then approve the funds and notify the contractor, who will initiate the first milestone.
Once the project is in progress, the client can request a change order (another milestone or a change to any of the existing milestones) and the contractor will create them. Any change order must be approved by both parties and will allow them to upload new files and send private messages.

Once a milestone is completed, the contractor will send a completion request to the client, who can easily approve or decline with just a message.  The client can approve the completion, or open a dispute.

Disputes are the tool Levy Watt provides for both parties to reach an easy solution to any possible problems that may arise during the course of a project. Both parties must agree to the resolution in order to close the dispute.

If both parties are subsequently unable to reach a solution, Levy Watt will suggest one and if they both still don’t agree, the dispute goes into external legal remediation which will usually lead to arbitration and the project will be placed on hold.

Levy Watt Infographic

The Levy Watt System

A Solid Foundation

Scoping and planning for the Levy Watt project was intense because of the intricate relationships between each section and how they worked together.  After mapping out the wireframes and determining the flow of interactions, 14 Oranges decided to use a custom WP theme which was designed by Zboya Design, that allows Levy Watt to update and control their website content. Providing a superior customer experience on any device was a crucial requirement for Levy Watt, so the entire website is responsive and mobile friendly, thanks to Twitter Bootstrap.
For the webapp, 14 Oranges used bsAdmin which is a bootstrap theme for admin tools and it helped make the contractor and client interface responsive. Since most Levy Watt users will be using phones or tablets, the webapp tools had to be responsive. They are able to upload files and validations with the respective bootstrap uploader and validator. In summary, jQuery, php and a MySQL database are the engine for the Levy Watt portal and webapp.

The Road to Success Is Under Construction with Levy Watt

Taking the risk out of home renovation and restoring peace of mind to homeowners was the goal behind the entire Levy Watt concept.  Having your living space exactly the way you want is every homeowner’s dream but that can be held back for fear of dealing with contractors.  With the Levy Watt webapp, both contractor and homeowner have transparency, clear communication and payment assurance to ensure a smooth transaction process.  Now it’s time to get renovating!

To learn more about how 14 Oranges can assist with making your ideas a reality by creating a web solution or a mobile app, contact sales@14oranges.com