Posted on

What is Project CORE?

 
image098
 
Project CORE(Create your Own Recommendation Engine) is one of its kind to learn technologies End-to-End while building live enterprise grade project using the right tools from scratch. While having an experience in more than just one technology is essential, with Project CORE you will gain experience, in-depth and step-by-step understanding of how things are done in enterprise projects of present and future.
 
With focus on modularization in current Industry Standard, we have included all the technologies which are in demand and necessary to make a powerful and scalable enterprise grade application and put them in front of you, the way you will be working with these.
 
Project CORE is hands on course on End to End project development and run, which will give you all necessary insights on how to go from
 

  • Ideation to Design
  • Design to Development
  • Development to Deployment
  • And Deployment to Delivery.

 
You have experienced the on-demand content on our platform and many other platforms but for the first time, you will experience live project development with us on Project CORE.
 
Use case of Project CORE:

 

 

1.1 Functionality of the Use case
 
The use case is divided into two parts
 

  • Sales and Commerce End
  • Enterprise End of A FMCG Company

1.1.a Sales and Commerce end

 

image033

 

Let’s discuss about Sales and Commerce first
 
In Sales and Commerce end, our user is marketing manager who wants to take a Smart decision with the help of Machine Learning to a huge product data set which comprises millions of products (a Big Data).
Functional Scenario
 
“A Big e-Commerce Platform decided to bundle items together based on the co-products. The main idea is to bundle (combining the items in one package) together. If Product A is sold frequently with product B then selling A and B together will increase the sales. Also if A is a top selling product then it will increase the sales of B as well. Marketing team will also run few advertisement campaigns on this bundling and the marketing manager who has to take this call, his whole promotions depends upon this.”
 
Now comes the first challenge, there are lot of products in an e-Commerce company and they can bundle lot of items together finding the most optimal item which need to be selected is a major challenging task.
 
image035
 
image037
 
For more important reasons, they will be spending a lot of marketing coverage and showcasing the bundle on the first page and if the selection is sub optimal then the return of the decision can be questioned.
 
So the process of decision making needs the help of Big Data Analytics and Machine Learning. Machine Learning algorithm will go to all product list one by one and find out what are co-products i.e. what are the products which sells together. Also in this case as the numbers of products are too much the processing might need big data tools.
 
Now let’s talk about the UI that we are going to create for marketing end in this project. The wireframe for the UI is as below which is created in Moqups which is here.
 
image039
 
1.1.b Technicality of the UI
 
The UI is made with D3JS and Angular4. The UI is built with
 

  • Web frame – Which holds the graph.
  • Graph – Which shows the product node which is linked with other similar product nodes.
  • Tables – Which shows the products which are linked to it.
  • Slider – To Zoom in and Zoom Out
  • Drop Down – To Select the View

 
We have used here Angular4 for the front end which is to be used by marketing manager and team to brainstorm the product.
 
Main technical reason to use Angular4 is:
 

  • Angular4 is Open-Source and Made by Google®
  • The App made with Angular4 are much more responsive
  • It has huge list of components in its library
  • Ability to integrate with third party Libraries is much better with Angular4
  • It is lightweight which means the size of final application is smaller

 

  • Initially when we fire up the App from marketing manager point, we will have bundle Items view. Here we have a D3JS Graph where the top selling elements will be shown initially
  • If we click on any one of the node, it will show the item’s co-product these co product are the items which are most frequently sold with the current item and are found by machine learning
  • We see in the table the average sales rank of the item and sub item.
  • We select the item bundle which has a better sales rank.
  • We send the new selected bundling information to the production end so they can take care of sudden peak of demand of the bundled item.

 

image035

 

1.1.d Functionality for Machine Learning and Big Data
 
The marketing manager backend will have a huge amount of data to find out which items are co-products and this is both a big data and machine learning use case. For machine learning we are going to use Collaborative Filtering algorithm. It uses Hadoop Spark ML Library features which separates the complete data into smaller chunks and then processes it in the Cluster Mode. We will be using REST API to expose the data that will be consumed by Angular4 and D3JS to Visualize it.

 

image044

 

1.1.e More about Data
 
For this use case, we have taken data from Stanford University. The data was collected by crawling Amazon® website and contains product metadata and review information about 548,552 different products (Books, music CDs, DVDs and VHS video tapes).
 
For each product the following information available:

  • Title
  • Salesrank
  • List of similar products (that get co-purchased with the current product)
  • Detailed product categorization
  • Product reviews: time, customer, rating, number of votes, number of people that found the review helpful

 

Data Statistics
Data format
Id: 15
ASIN: 1559362022
title: Wake Up and Smell the Coffee
group: Book
salesrank: 518927
similar: 5 1559360968 1559361247 1559360828 1559361018 0743214552
categories: 3
|Books[283155]|Subjects[1000]|Literature & Fiction[17]|Drama[2159]|United States[2160]
|Books[283155]|Subjects[1000]|Arts & Photography[1]|Performing Arts[521000]|Theater[2154]|General[2218]
|Books[283155]|Subjects[1000]|Literature & Fiction[17]|Authors, A-Z[70021]|( B )[70023]|Bogosian, Eric[70116]
reviews: total: 8 downloaded: 8 avg rating: 4
2002-5-13 cutomer: A2IGOA66Y6O8TQ rating: 5 votes: 3 helpful: 2
2002-6-17 cutomer: A2OIN4AUH84KNE rating: 5 votes: 2 helpful: 1
2003-1-2 cutomer: A2HN382JNT1CIU rating: 1 votes: 6 helpful: 1
2003-6-7 cutomer: A2FDJ79LDU4O18 rating: 4 votes: 1 helpful: 1
2003-6-27 cutomer: A39QMV9ZKRJXO5 rating: 4 votes: 1 helpful: 1
2004-2-17 cutomer: AUUVMSTQ1TXDI rating: 1 votes: 2 helpful: 0
2004-2-24 cutomer: A2C5K0QTLL9UAT rating: 5 votes: 2 helpful: 2
2004-10-13 cutomer: A5XYF0Z3UH4HB rating: 5 votes: 1 helpful: 1

Data format Summary:
 

  • Id: Product id (number 0, …, 548551)
  • ASIN: Amazon Standard Identification Number
  • title: Name/title of the product
  • group: Product group (Book, DVD, Video or Music)
  • salesrank: Amazon Salesrank
  • similar: ASINs of co-purchased products (people who buy X also buy Y)
  • categories: Location in product category hierarchy to which the product belongs (separated by |, category id in [])
  • reviews: Product review information: time, user id, rating, total number of votes on the review, total number of helpfulness votes (how many people found the review to be helpful)
  • After parsing the data we will get these details

 
The first column shows the product id, the second column shows User ID and the third column shows the review given by the user.
 
All the operations will be performed on cloud running SPARK on Hadoop’s HDFS which will be hosted in AWS system and Python will be used to write the algorithms and logic here.
 
image048
1.1.2 Enterprise End of a FMCG Company
 
Consider the previous use case, when the marketing manager locks a product and adds it to a bundle. Because, of this extra marketing effort the sales of the product will spike up. Depending on the analysis they might have a prediction of how much sales will spike for that particular selected product. To meet this new increased demand of the products, manufacturing needs to be done fast and in much larger quantity for coming 2 months (the duration until the campaign lasts) and it needs to be updated into the backend which runs the entire production and factory production to the item.
 
This factory can be a separate entity from the e-commerce platform or can also be entirely different company altogether. In this case if the internal company is running on SAP® ERP then the production management team on getting this update will be using MRP – Material Requirements Planning to increase the production. If they cannot meet the requirement upfront then they will update the marketing manager team of e-commerce end so they can select the second best option or save marketing budget. As the material might become out of stock if it is not produced to meet the spiked demand.

 

1.1.2.a A brief about MRP – Material Requirements Planning
 
Material Requirement Planning (SAP® MRP) is a tool which helps in planning the requirement quantities and schedules of a given material. It not only ensures availability of the material for which MRP is carried out, but also ensures availability of the components (of all the BOM levels) below in the BOM structure.

 

image050

 

Now companies which are running on SAP® are using HANA®, a powerful in memory database and platform to manage high processing load of operation activity, planning and real time control.
 
So in SAP® HANA®, the MRP is done with MRP Live

 

image052

 

Also in HANA® Live we have MD01N to do MRP. This will handle data in real-time and faster. The entire MRP planning sometimes are custom based on the internal processes of the company (FMCG Company that manufactures the product) and Project CORE will cover the detailed step of the entire MRP process too.

 

1.1.2.b Front end of MRP Cockpit
 
The front end of the application will be made using SAPUI5 a JavaScript framework which can render wonderful UX for Production Manager to visualize the raw material availability and take care of the planning part of it in detail.

 

image054

 

The entire application will be made with custom application development utilizing XML views in UI5. The main front end is a tile view where the shortage of the items will be reflected once the API communication comes from the e-commerce end. And the details line item of which material is having shortage is also shown in front end UI once the user press on the tile of Material Shortage which can be result of increase in forecasted demands when the marketing team decides to go for bundling of items with best seller and start advertising campaign.

 

image056

 

1.2 Project CORE Summary
 
Project CORE is kept realistic and the entire application will be made is enterprise grade quality. The main purpose of Project CORE is to expose learner on the tools and techniques and inner working of technologies, which are:
 
1. SAP® HANA®
2. SAPUI5
3. Angular4
4. D3JS
5. Python with Spark on top of Hadoop
6. Machine Leaning with Spark
7. Integration of the entire stack with REST API
 
While working through this app, you will face the same challenges which you will face on your job where you always have less time and by overcoming those challenges you will gain real project experience. After the review of the application which you make, UI5CN will also hand-off Project CORE experience certificate.
 
image058

 

 

 

Posted on

3 Main Psycological Benefits from Project CORE

 
image060
 
First Reason: You learn when you are working on any technology.
 
If you are reading about a technology and looking at learning videos then you are just getting a theoretical idea or knowledge about it. With Project Core, what we intend you to do is get a hands-on on the Platform and on the technology itself that involves all the stacks and how they link and merge together. When your mind is immersed in problem solving, the solutions will stick in your memory and they will be easily accessed when you need them, while working on the project.
 
For example, if you are only focusing on Angular4 or UI5 then, while learning the technologies, you will learn:
 

  • The details involved in creating application
  • How to integrate components
  • What are those components

 

However, in a realistic project, the difficulty level is much higher and the kind of issues you will find are not straightforward. A normal case can be a customer who requires some of the changes in the API on the fly and they are changing the design every time, which leads to inconsistencies.
 
These kinds of problems are never covered in any training and that is what we intend to provide in Project CORE: a vast information on how you are going to work on enterprise project in reality.
Moreover, in an enterprise solution, we might have a number of solutions co-working together, each one with a different stack.
 
You can think this might be a planning issue but, if you look at it, you see that each solution is designed to solve its own set of problems with a particular framework.
 
For example, if you are using an ERP, the portal might be built with JAVA®, the front end might be built with JavaScript and the back end might be in HANA® or SAP® with some data in BI system for visualization. For Visualization only, higher and mid-level management might be using a separate tool like SAP Lumina or Business Objects. For vendor integration, there might be some PHP code running too in some server which sits in a remote location and again, it might be managed by a team which is sitting in your own building which you never knew existed.
 
Second Reason: True learning is experience
 
image064
 
Definition of learning is change in behavior. After taking a video based training on SAPUI5 you don’t see how any web application can utilize the awesomeness of using a JavaScript library which has so many components in it and still the development is quite simple. Unless it is UI5CN’s awesome video content.
 
However, what you will get in return is information and more information. We already have Google where entire world’s information is available free at your disposal and one does not need to be another Google. So, what is it that one needs to do? From our experience, in any learning process, end result should be experience because if you are learning without examples it will just be theory. When you are implementing those concepts in projects to solve a real life problem, you will gain experience. While you implement your information into practice, you will not see the seamless blend of the inner working if you have never done it before. And these are the small things which will take a lot of time. According to 80-20 rule, 20% of the concept takes 80% of time and 80% of the concepts take 20% of the time.
 
The major part of the time should be spent on learning the implementation, how libraries work internally and where they don’t.
 
Also in the same terms, unexpected bugs that can take hours to solve, which you might never have heard of while acquiring the information, are common while you try to implement. These are mistakes that result into experience, so why not acquire the experience in first place.
 
For example, if you are going to install a third party plug-in to your visualization and later on you find that it cannot handle real time data streaming, the code will need to be updated and will suboptimal as it could have been done in a better way.
 
These mistakes can only be avoided if you are aware of the framework with a hands-on working on large projects that cover a vast scope, rather than just creating a to-do app or hello world app.
 
Third Reason: Real life problem solving involve working on multiple things
 
image066
 
In real life projects, most of the systems we build are a combination of multiple tech stacks, solution interfaces and is more complex to integrate them than just to develop or build.
 
Imagine you are making a big building, the major work not only involves building the individual ceramic, glass, doors, elevator or balcony but how it fits together to form a solid building. Each part should be linked with other with solid linkage otherwise chances of mishap can come anytime.
 
In enterprise systems as well, the software is the central nerve. If it does not coordinate properly, then the business gets impacted. At the end, it is not the fault of the individual parts, which might have been built with quality, but the integration and connection of the parts that make the entire business RUN.
 
Imagine if you logon to your most favorite e-commerce store that always have your kind of products. The UI is awesome and you want to buy the yellow T-Shirt, which you saw last time in your nearby store, and now you are getting an 80% off on it. You cannot believe it is happening. You click on the prime for next day delivery and suddenly you realize that the payment gateway is down. The offer is ending in 2 hrs and you cannot believe that because of the payment gateway error you won’t finish your transaction, losing the opportunity of the week. Does it sound familiar? This is the reason why big companies hire experienced developers and pay them well so that they can make money by ensuring the business is always running.
 

Posted on

Development tools and Platforms for IoT

IoT Development tools and Platform

IoT Development Tools

 

To get started, you will need a platform for the product development. There are lot of IDE available for IoT. But the most used IDE are Arduino IDE (by Arduino Open-Souce Community) and Eclipse IoT.

 

Arduino

 

arduino_official_Logo__

It is an Open-source prototyping platform, Arduino is based on easy-to-use hardware and software. Arduino is a hardware specification for interactive electronics and a set of software which includes an IDE and the Arduino programming language. It also contains few basic examples to get started.

 

Eclipse IoT

 

iot_eclipse

 

Eclipse IoT provides the technology needed to build IoT Devices, Gateways, and Cloud Platforms. Eclipse IoT is an ecosystem of companies and individuals collaborating to establish an Internet of Things based on open technologies. This collaboration helps to completely focus on the development, promotion and adoption of open source IoT technology. Many of our members provide a wide range of projects and services built on top of Eclipse IoT technology.

 

IoT Hardware Platforms

 

Intel® Galileo Board

 

IntelGalileoGen2

 

It is a fully open-source hardware and designed specifically for developers, students, educators, and DIY electronics enthusiasts, the Intel® Galileo Gen 2 board is Arduino* is certified with a software environment for advanced computing functionality.

 

Arduino UNO

Arduino-Uno-TH-1front

Arduino UNO is the most popular board to get started with Electronics and Coding. In most cases, you can use this board even without the need of Bread Board.

 

Arduino Nano

 

Arduino_Nano_V3.0

 

Arduino Nano is a breadboard-friendly board based on the ATmega328 with nearly the same functionality of Arduino Duemilanove, the Arduino Nano can be powered via the Mini-B USB connection.

 

Arduino Pro Mini

Arduino_Pro_Mini_(2)

For applications where space is a major issue, this board comes to quick rescue. Available in 3.3 V and 5 V versions, powered by ATmega328, Arduino Pro Mini is for semi-permanent installation in objects or exhibitions. The board comes without pre-mounted headers, allowing the use of or direct soldering of wires.

 

Operating System

 

Raspbian

 

Screenshot_54

 

There are distributions for the Raspberry Pi aimed at IoT, but the quickly maturing Raspbian is still the best. It’s the most popular and one of the most widely used IoT platforms. Developers can rely on numerous projects and tutorials for help.

 

IoT Platforms

 

AWS

 

AmazonWebservices_Logo.svg

 

AWS is a subsidiary of Amazon.com and provides on-demand cloud computing platforms to individuals, companies and governments, on a paid subscription basis with a free-tier option available for 12 months.

AWS is a subsidiary of Amazon.com and provides on-demand cloud computing platforms.AWS IoT cloud platform to connect devices in a seamless and secure manner and interacit with cloud applications and other devices. With the ability to support billions of devices and trillions of messages, AWS can process and route messages to AWS endpoints and devices securely.

 

IBM Watson

 

IBM_Watson

 

Watson is an IBM supercomputer that combines artificial intelligence (AI) and sophisticated analytical software as a “question answering” machine.With IBM Watson, you can enable cognitive computing features in your app using Language, Vision, Speech and Data APIs. This API makes it simple for developers and offers a host of different services. With Watson’s featured APIs, you can build chatbots understanding natural language and deploy on messaging platforms and websites, on any device. You can also rapidly build cognitive search and content analytics engine.

 

Azure

Windows_Azure_logo

 

Microsoft Azure is a cloud computing service created by Microsoft for building, testing, deploying, and managing applications and services through a global network of Microsoft-managed data centers.

With Azure, you can integrate your existing devices and systems with IoT solutions specially designed for your business thus helping get insights to transform your business. Azure provides flexibility in connecting devices and operating system that is already being used by you. Azure’s common pre-configured solutions help accelerate IoT projects and stay ahead of the competition.

 

 

Posted on

5 reasons why nodeJs is so popular

Node.js_logo

Node.js outshines other web applications by replacing websockets with revolutionary push technology. You would ask, what is so unique about it? Well, we finally have cutting-edge web applications with two-way, real-time connections where both the server and client can build communication, allowing them to exchange valuable data. Now this is in stark contrast to our conventional web response paradigm where only the client initiates communication

Node.js server technology is used to create and run a wide variety of web applications, and is quite similar to what Ruby On Rails, Spring Framework and ASP.NET does. It leverages JavaScript as the main language, which is a lightweight built-in web server and has a plethora of Plugins managed via the Node Package Manager (NPM), allowing you to custom-build your applications to meet your needs. It may sound like any other good web technology, but it has certain features that make it a popular choice among developers to build a wide spectrum of web applications.

Here are the top 5 reasons why nodeJs is so popular nowadays:

1. Node.js is superfast

Node.js is primarily a JavaScript runtime that is powered by V8, developed by Google for use in Chrome. V8 has the ability to compile and execute JavaScript at lightning fast speed, mainly because it compiles JavaScript into a native machine code. In addition to this, Node.js has a magical event loop, which is a single thread performing all I/O operations in an asynchronous manner. In Node.js, when an application has to perform I/O operation, it sends asynchronous tasks and callback action to the event loop, and then continues to perform the rest of the program. On completion of sync operation, the event loop automatically returns to the task to execute callback. This is much unlike traditional looping, which consumes a lot of memory and is exceptionally difficult to execute. Thus, reading/writing to file system, network connections, and to the database is executed very fast in Node. It allows developers to build fast and highly scalable network applications that are capable of handling bulk amounts of simultaneous connections having high throughput.

2. High Performance

PayPal uses Node.js, and has reported doubling the number of requests per-second and reducing the response time by 35%. On the other hand, Wal Mart, the retail giant had a superb experience with Node.js in 2013, when they put all their mobile-based traffic via Node.js on Black Friday, the busiest shopping time of the year. Amazingly, on Black Friday, Wal Mart servers did not go over a mere 1% CPU utilization and yet they deploy with 200,000,000 users online. LinkedIn, the global networking site, moved from Ruby to Node to handle their mobile traffic, and reduced the number of servers to 30 to 3, i.e. almost 90% reduction. The new system was up to 20 times faster. All these figures clearly indicate performance capability of Node.js.

3. JavaScript Everywhere

One of the biggest reasons why Node.js is so popular is because it uses JavaScript as its main language to build web applications. And to be honest, JavaScript is now the only choice to develop web applications in the browser. What more! A new and robust framework is introduced quite frequently to woo developers. With Node.js, JavaScript has literally revolutionized on the server. The language is common to most web developers, and is certainly driving the world today. And according to experts, the trend will not fade away soon.

Since JavaScript is a language that most developers know or have used at some point of time, the transition from another web technology to Node.js is a breeze. This makes it a preferred choice among web developers.

4. It is Lightweight

Typically, Node.js uses a basic event-driven architecture. This means everything executed on it, including every single operation and call, is a series of asynchronous callback. This enables Node to run on a single thread as unlike other web technologies where a new thread is spawned for every client request. This not only makes it light-in-weight, but also forms the foundation of Node’s non-blocking I/O feature.

5. It is Easy to Modify and Maintain

Traditionally built applications become less adaptive and rigid over time as new requirements are fed. Eventually, they start creaking under the stress they were not built for. However, developing new services using Node.js is comparatively easier. With Node, a bunch of small applications is built instead of a single, large application. This allows making changes or adding a new functionality with much ease, without having to make changes deep inside the code-base.

pexels-photo

This post is inspired from another blog written on this topic.

 


 

Posted on

5 good AngularJs framework you must know about

 

AngularJS is one of the most popular and open-source web application framework maintained by Google and a community of individual developers and corporations to address many of the challenges encountered in developing single-page applications.

If you are already familiar to AngularJS and want to turn on some real magic but don’t know the enough resources to spruce up the coding, don’t worry, some developers have adapted a few front-end frameworks to work and support AngularJS. These Frameworks come with some of useful tools and components that help developers to build innovative web applications quickly and easily.

 

AngularJS_logo.svg

 

Below we have gathered 5 Best AngularJS Frameworks you can use for developing your web-applications without much hassle.

 

1. AngularUI Bootstrap

 

Angular UI Bootstrap is built on top of the front-end framework called Bootstrap. The framework contains a set of native AngularJS directives based on Bootstrap HTML and CSS components. Angular UI Bootstrap offers several directives, such as carousel, alert, date picker, dropdown, time picker, buttons and more.

 

2. Ionic

 

Ionic is a powerful front-end framework optimized for AngularJS for developing mobile applications. The framework uses AngularJS directives to support mobile components, tools and gestures made up of HTML5 and CSS3, thus offering rich user interfaces (UIs). Built with SAAS, Ionic offers a free and open-source software development kit (SDK) as well as a library of UI components for designing interactive, hybrid applications for touch devices.

 

3. Mobile Angular UI

 

Mobile Angular UI is a user interface (UI) framework for designing HTML5 mobile applications. It is optimized for AngularJS and Bootstrap and supports powerful libraries like fastclick.js and overthrow.js. The framework offers essential mobile components, such as sidebars, overlays, switches, scrollable areas and more. With Mobile Angular UI, you can design a responsive, mobile user-interface as well as convert desktop web applications to mobile applications.

 

4. LumX
 
7399778412_0de724ac40_z

 

LumX is a fully-responsive front-end framework based on Google material design guidelines and optimized for AngularJS. LumX is built with SAAS, Neat and Bourbon providing customizable application design for smooth functionality and cool features.

 

5. Supersonic
 

Supersonic is a robust user interface framework (UI) for developing hybrid mobile applications. The framework integrates with any REST API (Application Programming Interface) and allows data interaction/modification in the backend. With Supersonic, one can design API-connected mobile applications for iOS and Android.