Closure Reports

Migrating a Sports Application from .NET to Node.js

SYNOPSIS:

Team span: June 2015 to February 2016
Duration: 8 months
Technology: JavaScript (ECMA5), Node.js (Express.js), AngularJS 1.4, Couchbase 4, Elastic Search, Facebook SDK, HTML 5, Bootstrap 3
Development Manager: Haseeb Ahmed
Engineer: Jahanzaib Aslam
Reason for closure: Successful Project Completion

vteam #434 helped out a client with the need to revamp his sports application’s legacy system in the .NET framework. The application in question lets adventurers research, review and share over 80,000 outdoor sporting adventures, across 120 sport types, in 100 countries. To make the application more scalable with added functionalities, it needed to be shifted to the Node.js (Express.js) platform.

Since the web (website + admin panel) and mobile applications were sharing the same API calls, the client didn’t want to re-develop these apps after migration. vteams engineer Jahanzaib Aslam had to retain the API response structure as per existing, defined, standards in the old API. Additionally, the client wanted improved performance of his application across all platforms, along with system analysis, software design, coding, integration and testing.

Solution

At first, the data migration script was developed from MSSQL to Couchbase. It was difficult to migrate SQL database to NoSQL as Couchbase didn’t have any stable module in Node.js at that time. After that, Jahanzaib migrated the complete RESTful API as per requirement.

The legacy system was revamped to a new system. Jahanzaib’s efforts eliminated 65% of the previous code, with an overall new code base reduction of about 50% and achieved a substantial increase in performance improvement; 3x to be exact. The following modules were developed for added functionalities:

  • Developed Web Service by using JavaScript, Node.js (Express.js) framework and Couchbase 4.1
  • Developed Image resizing and cropping modules to edit new and already added images
  • Prepared API documentation using Swagger
  • Integrated Elastic Search to achieve performance
  • Developed Admin Panel using Angular.js, jQuery, HTML5, CSS3 and Bootstrap
  • Deployment of applications (web and mobile) on AWS, Microsoft Azure, Heroku and Digital Ocean
  • Auto-Deployment using Docker scripts
  • Auto-Git Control (add, commit, push, pull) using Gulp (a JavaScript task runner)
  • Continuous Integration for source code using GIT
  • Developed demo cases to test the application’s functionalities automatically
    .

Conclusion

The outcome was a new application with excellent performance and stable, less error-prone services at the front-end. All modules and features were completed within the estimated time along with proper QA. The client was delighted with the successful completion of the project. He also commended the team’s performance throughout the project.