HomeJab is a web application for creating virtual tours of properties designed for real estate agents who want to offer a selective service to their potential customers showing properties they have for sale in a very professional way. The application captures orders from agents, it handles the entire process from obtaining images on property to processing and publishing final videos.
The client was looking for a top talent development team that can commit to a manage his project. The business process integrates different applications (though APIs) into an application designed and engineered for an intuitive user interface. We have started working on defining requirements and analyzing all client’s needs to obtain a detailed document that allows us to proceed with this development.
We've implemented a SPA (Single Page Apps) based on client-server architecture using RESTful API, allowing us to build an AngularJS app (from user's browser) and the Laravel service REST API (from server side). All system information is stored in a relational database implemented in MySQL.
During firsts stages, the app was handling 3 different users roles that allow a basic management and update options of virtual tours, which are done using high res photos, HD, HDR, HD videos and even 3D custom tours. We’ve developed more features like users management, custom emails templates, administration panel, user dashboard and more useful features requested by the client.
The frontend app has been developed under AngularJS to build all user interfaces. This app connect to a RESTful API (backend app) which accesses to the database and provides the information required by the user.
For backend development, we have implemented standard Laravel framework including custom components we have developed to enhance API and web services. Our team designed and implemented all endpoints, working on each action, security layer and automatic testing to make sure we deliver a high quality solution. We integrated tools like PHPUnit and Codeception for this purpose.
For media files, we’ve integrated Amazon S3 storage service to start saving all media files in the cloud. We’ve also integrated a photo editing service via Esoftflow (eWarp API), this manages videos as well. In addition, the online payment service Stripe was integrated to allow real estate agents checkout and pay all their requests online in the app.
Once everything was working smoothly, we’ve integrated a video playback provided by JWPlayer and improved the entire workflow within the application, visual enhancements and performance for handling all heavy tasks through queues of background work. Later, we have also integrated Vimeo services for video playback.
- Laravel 5: The PHP Framework For Web Artisans based on MVC
- MySQL: We defined the database using InnoDB engine for integrity on required tables and MyISAM for faster queries to non-relational tables.
- AngularJS: it has been designed for building web-apps. Include a declarative templates with data-binding, MVC pattern and more awesome features.
- Amazon AWS SDK: Version 3 of this SDK for PHP.
- Amazon S3: Amazon Simple Storage Service.
- Amazon SQS: it makes simple and cost-effective to decouple the components of a cloud application.
- Amazon CloudFront: it is a global content delivery network (CDN) service.
- InfusionSoft: We’ve integrated our app with InfusionSoft CRM throug their API service.
- Stripe: Stripe is a payments platform for modern commerce.
- eWarp API: An Esoftflow service solution.We have integrated it using JSON-RCP.
- JWPlayer: JW Player provides the world's most popular video player with over 18 billion monthly streams.
- Composer: Composer is a tool for dependency management in PHP. It allows you to declare the libraries your project depends on and it will manage (install/update) them for you.
- Bower – Gulp – Sass – Grunt – Yoman: Great technologies that make things easier to manage packages installed on our development, test and even production environments.
- Bootstrap – GoogleFonts – JQuery: These are great framework to build fully cross-platform and mobile-friendly UI.
- Codeception – PHPUnit: Automatic testing software