In brief
-
01
Kind of tool
Node JS platform for web development based on Java Script
-
02
Where we use it
VPN app for a large entertainment service
-
03
Tasks we solved with this technology
Configured the process of payment acceptance
Created a mechanism for collecting statistics
Reduced server load
-
04
Results for client
50,000 downloads of the app on Google Play in the first three months
6+ platforms on which the app works
Fast, 6-month application development period
Project: VPN app for a large entertainment service
Our client is the largest content provider in Canada. One of its projects is an entertainment service: more than 40 million published videos and 350 thousand users online every day.
Users of the service from some countries had problems with access: they could not watch content due to blocking. OrbitSoft solved this problem. We developed a VPN-app for six different platforms, which resulted in a substantial increase in the number of customers for the service. Read more about the development process in this case study.
Why we chose Node JS for development
We got involved in the development process after a previous contractor had failed. The program was slow, the payment system wasn’t working correctly, and there were numerous repeated fragments and bugs. At our planning stage, we made decisions regarding which technologies to keep and which to replace.
We decided to keep Node JS for the following reasons:
- Asynchrony combined with an event-driven approach. It’s convenient to program interactive applications that depend on user actions.
- The large library of Java Script components simplifies development. The libraries are constantly evolving, and new ones are being created regularly.
- More than 500,000 Node opensource solutions/packages allow you to create any kind of functionality.
- V8 engine. Compiler allows you not to lose speed in developing large applications.
What tasks we solve with Node JS
We use Node JS for the server part of the app: the tool allows the app to perform multiple tasks simultaneously and not to hang. Rich library of components and open-source solutions provides an opportunity to modify the application functionality to the business tasks.
We set up payment acceptance in the app. To use the app, the user connects a subscription. Payment is deducted every month after the 7-day free period.
The logic of accepting payment was unfortunate in the app — before choosing a tariff, the user had to create an account. This put a lot of people off: users didn’t want to enter personal information before the y knew the cost of service.
To make the app more accessible to customers, we changed the payment logic — you can now subscribe to the app without creating an account. This made the app more accessible to customers.
Set up the collection of statistics. Our client analyzes the behavior of its users: which videos are popular, which are not, the age of users viewing the content, how often they view content, and so on. Analyzing this behavior allows the company to constantly improve the service for their customers, thereby increasing revenue.
We set up statistics collection, and report creation, using Node JS.
Protect data from fraudulent attack. Any programming tool has its own vulnerabilities, and hackers and fraudsters can use them to steal user data, content, or development data. We took Node JS vulnerabilities into account when creating the application. As a result, data and code are safe.
Results of working with Node JS
The app was launched in the App Store in August 2020. We released the updated and corrected version just six months later, in January 2021. With all the modifications and improvements, the project took about 10 months.
The application can be installed on 6 different platforms: iOS, MacOS, Android, Android TV, Fire OS, and Windows.
It has been downloaded and installed over 250,000 times.
Technical block
Windows: All versions starting from Windows 7
- Integrated development environment: Microsoft Visual Studio 2019
- Design development: Microsoft Expression Blend
- Programming language: C#
- Windows Presentation Foundation (WPF)
- NET Framework 4.7.2
- WiX toolset to create an installer
iOS
- Programming language: Swift
- iPhone, iPad
- Minimum version iOS: 12.0
- Libraries: Firebase (Analytics, Messaging, DynamicLinks), Google IDFA Support, Facebook SDK, Lottie, Toast-Swift, PlainPing
- Build system: CocoaPods
macOS
- Programming language: Swift
- macOS
- Minimum version macOS: 10.14
- Libraries: Lottie, Toasts, PlainPing, SRTabBarController (with changes), CustomSegue, CustomButton, FLOPageViewController
- Build system CocoaPods, Swift Package
Android
- API level 21+
- Android, Android TV, Fire OS
- Phones, tablets, TV
- Programming language: Kotlin
- Patterns used: MVVM
- Libraries: Firebase (Cloud Messaging, Analytic, Crashlytics), Google Play Billing Library, Leanback, AndroidX, Lottie
Frontend
- React.js
- Vue.js
- WordPress
Backend
- Node.js
- TypeScript
- NoSQL (MongoDB)
Libraries
- Express.js;
- moment.js;
- Mongoose.js;
- jsonwebtoken.js.