Friday 6 October 2017

Artificial Intelligence - Transforming the face of Retail experience

Artificial Intelligence: 
Artificial intelligence technology takes some huge data set as an input, processes it through AI algorithms (say neural networks) and then produces a model as an output which can provide answers like a real human. So in layman term it is like a human brain knowing some behavior/ trait about someone and then acting accordingly at proper time and location. 
Artificial Intelligence in Retail: 
Think as a Retailer? Wouldn’t it be great if you know Demographics, Shopping behavior/Trend and need of a customer who has just walked in your retail outlet or on online site on a fly? It would be easier to showcase the customized best possible products and offers for the customer in order to encash the opportunity. Even as a Customer, I would be very happy if I am presented with everything which I am in need for as that would save my time in decision making and shopping enhancing my shopping experience. 

This is exactly what Artificial Intelligence does for your Retail. 

Below shows some of the recent example in Retail Industry where Artificial Intelligence is used: 

Amazon Go: 
Technology behind the concept of Amazon Go includes “computer vision, sensor fusion and deep learning.” Using a mobile application, customers will scan their smartphones at a kiosk when they walk into the store. The store’s technology, which the online retailer calls “Just Walk Out,” automatically detects when products are taken from or returned to the shelves and keeps track of them in a virtual cart. When customers finish shopping they will simply leave. Shortly thereafter the company will charge each customer's Amazon account and send a receipt. 

AI can also be supportive in many other retail units likes: 
  • Store Location Selection 
  • Optimization of Product Mix 
  • Optimizing Supply Chain 
  • Virtual Mirrors, Gesture Recognition, 
  • Visual Listening 
Conclusion: 
Any information and knowledge is always helpful and if received during correct time and place can turn out into an opportunity. AI helps in providing Accurate and on the fly information. Considering this AI is surely to stay and positively transform the face of Retail.

About Author:
Saurabh Kane is a consultant in Systems Plus Pvt. Ltd. Within Systems Plus, he actively contributes to the areas of Technology and Information Security. He can be contacted at: saurabh.k@spluspl.com

Thursday 5 October 2017

Need for Business Analyst and activities involved

Why do we need Business Analysts?
In today’s IT sector Business analyst play an important role. Business analysts play key roles in the project lifecycle, and ensure that the final solution meets business objectives. Business analyst are those who will always be working on artefacts which is deliverable of a part of the SDLC. The role changes as the SDLC goes through the cycle.

For any Business Analyst the biggest challenge after getting a project is, how to start and from where to start or what should be created and how to complete the project successfully. 

To help with all questions, here are some of the key techniques for a successful business process analysis.

Roles and responsibilities of BA –
Requirements are core of developing IT solutions. Defining, analyzing and documenting requirements evolve from business analyst’s creative process. Some roles are as follows-

Extract requirements –Requirements play a key part in IT. Incomplete /improper requirements usually lead to project failure. A business analyst needs to determine a project’s requirements by extracting them.
Organize requirements –The business analyst must organize requirements into related categories to manage and communicate them. Requirements are sorted according to their source and applicability. Proper organization prevents project requirements from becoming overlooked, and leads to optimum use of time and budgets.
Simplify requirements – The business analyst emphasizes simplicity and ease of use but especially during implementation. Business analysts identify and avoid extraneous activities that do not solve the problem. 
Verify requirements –The business analyst is most knowledgeable about use cases and other diagrams, therefore they continually verify the requirements and reject implementations that do not advance business objectives. Verifying requirements is done through analysis, test and inspection.
Managing requirements – A formal requirements presentation, review and approval session occurs, where project schedules, costs and duration estimates are updated and the business objectives are revisited. Upon approval, the business analyst transitions into requirements management activities for the rest of the IT solution life cycle.
Documenting- Business analysts spend a fair amount of time documenting what they learn and observe, and the results of their analyses. She/he takes the time to consider the best ways to document specific types of information, whether as text or visual form (charts, graphs, illustrations, etc.).

Diagrammatic way of presenting BA role-
Conclusion:
Whether you currently work in IT or a related field, if you’re a leader in your organization and want the chance to pursue the opportunities presented by the business analyst career path, it is a great time to start planning. With business analysis training, one can obtain the core skills that businesses need to advance.

About Author:
Ayushi Guda is a consultant in Systems Plus Pvt. Ltd. Within Systems Plus, she actively contributes to the areas of Technology and Information Security. She can be contacted at: Ayushi.Guda@spluspl.com 

Unit Testing using xUnit

Unit Testing is a level of software testing where individual components of a software are tested. The purpose is to validate that each unit of the software perform its required functionality properly.

In Software development Unit Test methods are written to test the code internally while the code gets executed, it makes the development Test driven. Below is the flow diagram that shows how test method works:
The above diagram makes the flow of unit test execution very clear. So now, we’ll discuss our topic Unit testing using xUnit framework.

xUnit framework helps in writing test methods in .net. The xUnit test runner contains the program entry point to run your tests. Dotnet test starts the test runner using the unit test project you've created.
Below is the basic example to write xUnit Unit test for .net Service:

using System;

namespace Number.Services
{
    public class PrimeService
    {
        public bool IsPrime(int number)
        {
            if (candidate == 1)
          {
            return false ;
          }
            throw new NotImplementedException("Please create a test method");
        }
    }
}
 Each Test method should group these functional sections as shown in the test method below:

1 Arrange all necessary preconditions and inputs.
2 Act on the object or method under test.
3 Assert that the expected results have occurred or not.

using Xunit;
using Number.Services;

namespace Number.UnitTests.Services
{
    public class PrimeService_IsPrime
    {
        private readonly PrimeService _primeService;

        public PrimeService_IsPrime()
        {
            _primeService = new PrimeService();
        }

        [Fact]
        public void ReturnFalseForValue1()
        {
            //Arrange
            var number = 1;

            //Act
            var result = _primeService.IsPrime(number);

            //Assert
            Assert.True(result, false );
        }
    }
}
 The above test will pass as the code in the actual method returns false and we are also checking that if the result is false.

The [Fact] attribute indicates a test method that is run by the test runner. Eexecute dotnet test to build the tests and the class library and then run the tests. 

The above example does not contain dependencies but if the code has dependency on other layers of the project the best practice is to MOQ the dependencies and then test the code.
The above diagram shows how the Mocking is different. MOQ is basically a nuget package that you can use to mockup any dependency. MOQ is the only mocking library for .NET developed from scratch to take full advantage of .NET Linq expression trees and lambda expressions, which makes it the most productive mocking library available.It also supports mocking interfaces as well as classes.

You will get an idea of MOQ in below example. Here, I will explain how we write test methods and mock up dependencies.

namespace Products.Controllers
{

public class ProductController : Controller
    {
        private readonly IProductRepository<Product> _productRepository;

        public ProductController(IProductRepository<Product> productRepository)
        {
            _productRepository = productRepository;
        }

        [HttpGet]
        public IActionResult GetAllProduct()
        {
            var data = _productRepository.GetAll().ToList();

            return View(data);
        }
 The above controller method is dependent on repository layer. So to write test method in such scenarios we need to use MOQ framework, as used in the below example:

 using Moq;
using Xunit;

namespace Products.Tests
{
    public class ProductController Tests
    {
        private ProductController _productController;
        private IProductRepository<Product> _productRepository;

        [Fact]
        public void IndexActionReturnsProductList()
        {
            //Arrange
            var products = GetProductList();
            var mock = new Mock<IProductRepository<Product>>();
            mock
                 .Setup(x => x.GetAll())
                 .Returns(products);

            _productController = new ProductController(mock.Object);

            //Act
           
              var data = _productController.Index() as ViewResult;
              var result = (List<Product>) data.Model;

            //Assert
            Assert.Equal(4, result.Count);
        }

        private IQueryable<Product> GetProductList()
        {
            var product= new List<Product>
            {
                new Product
                {
                     Name = "Car",
                     ProductCode= "0986",
                },
                new Product
                {
                     Name = "Scooter",
                     ProductCode= "0945",
                }             
            };
            return product.AsQueryable();
        }
   }
}

In the test method above, we have mocked the ProductRepository and its method GetAll() and instead get data from private method GetProductList() and do the testing and checking the result for controller layer only.

Conclusion: In this way, you can write test methods for all layers of project (i.e. Controller, Services, Repositories, etc.) by mocking the dependencies. Test driven Development helps to make development more bug free and xUnit framework makes it much easier. Hope with this blog you get an overview of writing test methods using xUnit and MOQ.

About Author:
Shivangi Verma  is a consultant in Systems Plus Pvt. Ltd. Within Systems Plus, she actively contributes to the areas of Technology and Information Security. She can be contacted at: Shivangi.Verma@spluspl.com 

Wednesday 4 October 2017

Persistent Link in SharePoint

As we all know,

SharePoint is very well known for content management and for content sharing.

This time let’s talk about one of the rarely used feature of SharePoint.
“Document ID Service”

Let’s talk about one of the scenario to understand the importance of feature.

Scenario:
We have process set up in HR as new joiner joins company, after induction that person has to fill up one form as employee details and upload it on intranet portal to ‘New Joiner’ document library.

This will trigger one workflow and sends email to HR team with that document link within it.

One day, while HR member accessing documents from ‘New Joiner’ document library accidently one document got misplaced to another folder by him during drag-drop action.
He was not sure where did he dragged that document. At other end, link mentioned in email notification was pointing as ‘Document Does Not exists’!😢

HR team discussed this scenario with us to search that document as that was critical one.

We did manual search within folders and finally found that document, everyone was happy☺

Sometime PAIN become originator of IDEA!☺  

This scenario made us to think on, can we create a link for such documents that will remain same even after document location changes within site?

Persistent Link?☺

Yes we can !

Solution:
There is feature available at site collection level call “Document ID Service”.

This is made up for same purpose that we were looking.

On Activation of this feature it starts to assign Document ids to documents within site collection.

Kindly refer this link to configure this service: Click Here

After configuration it will take some time to assign document id for all documents.

After document ID assignment, document property will look like:
Now, let’s see how we can generate Persistent Link for this document?

There is generic format to construct link , just we need to follow it:


e.g :

And you are all set!☺

This url acts as permanent link for that document.

We can configure our document link within workflow email notification based on this one.

Even though document get rename or its location changes within site collection, document link remains same.

There are some limitations that we need to consider.
Limitation:
1) This is workable only if document move within same site collection.
    Outside site collection move, this link will not work.
2) Under certain circumstances the Document ID is not always maintained. The      following table summarizes these exceptions.

Action
Result
Tried to send a file from one library to another using the ‘Send To’ command (in same SharePoint Site)
Document is considered a copy and a new document ID will be assigned.
Tried to copy a file between two libraries using file explorer view
Document ID not preserved
Tried using the Copy command in “Manage Content and Structure
Document ID not preserved
Cutting & Pasting a file between two SharePoint libraries using file explorer view
Document ID preserved
Tried using the Move command in “Manage Content and Structure”
Document ID preserved

About Author:
Vishal Himane is a consultant in Systems Plus Pvt. Ltd. Within Systems Plus, he actively contributes to the areas of Technology and Information Security. He can be contacted at: vishal.himane@spluspl.com

Friday 15 September 2017

Document Analysis for App Support

Document analysis is an elicitation technique used to gather requirements. It is also the study of the existing document and the information relevant to the current application support process so that one could have better understanding of the process. Business analysts can gather requirements from stakeholders using questionnaires, interviews, or facilitating sessions. The objective of Document Analysis is to gather details of the key functions such as business rules, business entities, and business attributes that needs to be updated. Document Analysis includes various strategies such as analyzing the business plans, keeping records of contract details, training guidelines for the process, customers review, suggestion logs and the existing system specifications. Identifying and implementing the strategies will result in improving requirement gathering for the process and the documentation format.

Documents for App Support Process can be analyzed on the basis of various aspects:

Statement of Work(SOW):
Statement of Work (SOW) is the work agreement between the client and the service provider. This includes Expected services from the vendor, quality of the service provided, and conditions for the availability of the services, RACI (Responsible, Accountable, Consulted, and Informed) for the service provided, escalation procedures and cost for the service provided. It covers the work requirement for the process, addresses the performance and design requirements. 
Some of the commonly addressed key areas for SOW are:
  • Purpose of the SOW: It defines the liabilities, responsibilities and work agreements between client and the service providers. This document can include functional requirements or non-functional requirements. 
  • Scope of work: It is a process which includes how the work will be divided and who is responsible for completing the work. 
  • Scope of work can be categorized into two types:
    • In Scope: This section describes about the activities which will be performed in this scope. For e.g. If we consider an application support process, we would prefer Query management, User management etc. 
    • Out of Scope: This section describes about the activities which will not be considered in this scope. 
  • Timelines: This specifies the allowable time for projects, such as start and finish time, number of hours that can be billed per week or month, where work is to be performed and anything else that relates to scheduling.
  • SLA: Service Level-Agreement (SLA) describes the level of the services expected by the client from the vendor for the process. This determines the response time that needs to be given to a particular request. The severity levels with a defined response time is mentioned in the scope of work. For e.g. There can be different levels such as High, Medium and Low which would have a response time as 5hour, 1 day and 2 days respectively.
  • Payment Schedule: Payment Schedule of SOW includes the bills to be invoiced and payment to be scheduled for the work done by the supplier.
Pros of Document Analysis:
  • Document Analysis plays a vital role in understanding gathered data in order to efficiently plan next course of action. 
  • Obtaining and analyzing documents is often far more cost efficient and time efficient than conducting the research or experiments for the process.
  • Document Analysis can help an individual understand the processes and sub-process in an application support project without attending formal training on the same. Thus, reduces dependability on human intervention.
  • Document Analysis is a beneficial method for research as it can provide supplementary research data. Documents helps in contextualizing one’s research within the process. Documents contains data that are no longer can be observed, providing the details that Business Analyst have forgotten, and can easily track the changes and development done in the process.
  • Documents analysis presents the Business Analyst as a knowledgeable person as he/she gains extensive knowledge from the respective documents in a short span of time.
Conclusion:
Document analysis is very critical in Application support as it is part of each and every Process that is implemented and is in process of implementation.

About Author:
Nancy Jain
 is a consultant in Systems Plus Pvt. Ltd. Within Systems Plus, she actively contributes to the areas of Technology and Information Security. She can be contacted at: 
nancy.jain@spluspl.com

Blockchain

What is the future of technology? We are hearing buzzwords all around with Vladmir Putin saying “The nation with the best and the most advanced Artificial Intelligence technology, they would be the one who would have control over the world”, but today I will not talk about Artificial Intelligence , as we have heard quite enough about it lately with Elon Musk and Zuckerberg fighting over that whether AI would be a boon or a curse for us . But today I’m going to talk about a technology which is currently making waves and will change how the industry would work in coming years for sure. "Blockchain", the technology behind the cryptography currency Bitcoin. 

Many people know it as the technology behind Bitcoin , the cryptography currency, but Blockchain’s potential uses extend far beyond digital currencies.

Currently, for transfering funds ,what happens is people simply depend on a middleman such as a bank , which ensures the transaction between two party is being done successfully. But what blockchain allows is it enables consumers and suppliers to connect directly and perform transaction, removing the middleman , in this case the bank. 

So the question here is now , what the heck is Blockchain?

Blockchain is fundamentally a ledger, a record keeping book. A ledger meaning it keeps the track of transactions taking place , Now what ledger are , they essentially are private, we don’t tend to share that information of transaction with anyone , but what Blockchain says here is that the ledgers would be public and will be accessible and are going to be shared across all people of interest and that’s the foundational aspect of Blockchain , that in the end it’s basically a record keeping system which keeps a track on any transaction taking place between two parties and also keeping the record public .

The next question that arises in mind would be “What about security”? Is it safe? What if hackers try to hack that particular chain of transaction and retrieve data from it? What then?

The answer to this question is pretty convincing as well as one of the main reasons for the breakthrough of the blockchain , What happens is when a transaction goes through , cryptography secures the data and the new transaction are always linked to the previous one’s in the chain making it almost impossible to alter older records without having to change the subsequent one’s. The linking I’m talking about is done by storing “hash”. Each block is identified by a cryptographic hash of that data. The same hash will always result in that data, but it is impossible to re-create data from hash value . Previous block will have the hash of its previous block embedded in it, and so if a new block is added to the chain , the new block would have a field which will store the hash of its previous block and so on. This is the reason its hard to tamper with. Diagram below is showing how hash are stored.
Also as I said there are multiple computers/nodes which run in this network , In order to gain control of the whole system , one would need to gain access to more than half of the computers in the network, then only it will be possible for him to make changes.

Okay after that you’ll probably think , How will this actually work?

Let me explain to you in a very simple language, with a diagram of course 
Have a look at the diagram, it shows the simple flow of how actually Blockchain works-
  • l It simply requests a transaction, that request is broadcasted to Peer-to-Peer network consisting of other computers known as nodes.
  • l These network of nodes validates the transaction and the user’s status using known algorithm.
  • l A verified transaction can involve cryptocurrency, contracts, records or other structured information.
  • l Once verified, the transaction is combined with other transactions to create a new block of data for the ledger.
  • l The new block is then added to the existing blockchain, in a way that is permanent and unalterable, it cannot be tampered with easily.
  • l The transaction is complete.
The concept of Bitcoin is not just record keeping book for transaction between two parties, now the concept has evolved a lot, it’s being used in quite a different ways.

A company named Bitnation, is using blockchain for a different use altogether other then using it in bitcoin , cryptocurrencies. They started a project aiming to decentralize everything. What they are doing is they are providing a digital ID more of an emergency ID card to the victims of the refugee crisis and bitcoin-based credit card which can be used to receive funds from family member and/or friends without involving any bank accounts. This can also be a way of identifying an individual through family relations cryptographically. 

Also many major companies are also trying a way to simplify and also and trying to better understand supply chain, where blockchain can record every step through which your product goes through before you see them at your local store. You can eventually go back and check that the promises they give of Green tea being 100% organic, the price of the product are actually what they should be. It will give a level of transparency like no other.

Blockchain is also being implemented in Music, Fashion industry as well.

So you can just imagine the countless possible scenarios that Blockchain can be tweaked according to our needs. I’m currently researching more on Blockchain as it is quite vaste, will update this blog as soon as I’ve got something new to share.

About Author:
Pranav Harshe
  is a consultant in Systems Plus Pvt. Ltd. Within Systems Plus, he actively contributes to the areas of Technology and Information Security. He can be contacted at: 
pranav.harshe@spluspl.com

Friday 8 September 2017

Importance Of Reports In Application Support

Prior to understanding the significance of reports in Application Support, let us first apprehend the meaning of ‘Reports’ in this context:

“A report is document that contains information in an organized manner regarding the issues handled and the work done in the respective project, over a specific period of time“

As mentioned above, reports can be generated on a periodic basis, by the system administrator or the responsible individual, it can be done weekly, monthly and quarterly or even on ad-hoc requests if the situation demand. It could be in the form of an excel document, word document, PDF file etc. whatever suits the project requirements and the organization’s policies. 

Reports can be extracted from the application that is used for storing the information of the issues and requests raised by the customers. A format is always specified for a particular type of report, it can include different columns, fields containing the needed information, which varies according to the organizations. E.g. A report containing Request ID, Request Type, Request Description, Status etc. A report should be in a well-formatted manner in terms of presentation, easy to comprehend and the completeness of the required information is necessary. 

Keeping a track of information traversing in and out of a project is extremely important. Spending countless hours on wrapping up all the information at the end of the project is a very tedious task which may lead to mistakes and discrepancies. To avoid such problems in a long run, generating reports after a certain time interval, e.g. on weekly basis, helps to maintain the data regarding the work done on a continuous basis, which gives the top level authorities an overview of the on-goings in the project. There can be different levels of depth, at which the information is presented in reports. A report can have a very detailed view of the data or it can just represent the summary of the project giving a bird’s eye view, whichever suits the needs. This will help the top management to stay aligned with the project updates, and take the necessary measures in terms of the resource planning as needed. Reports are not only used for internal compliance purposes but can also be sent to the customer. The reports provided on request basis are called as Ad-hoc reports. These reports, however, do not have a pre-defined format. The fields and columns required here are decided on the details provided in the request by the users. Such reports help the application users to get the required information in a well-defined format which is simple to understand and solves his/her problems or queries. In application support, quarterly reports can include the data regarding amount of efforts, the numbers issues/requests raised, resolved or pending. Such type of segregation of the information gives significant insights into the project. It can include list of users in the application, which can again be segregated into active, inactive, deleted users as per the aspects of the application. Well-arranged information in the form of reports helps the stakeholders understand all the happenings in the project, over a certain period, in a very time efficient and comprehensive manner.

Conclusion:
Reports are a vital part of an Application Support project, as important details regarding the current status of the project are provided. It helps in smooth and easy transfer of information between the various levels of hierarchy of the project team and the organisation, helping every stake holder stay updated with the events and activities happening in the project

About Author:
Shreyas Sagvekar
 is a consultant in Systems Plus Pvt. Ltd. Within Systems Plus, he actively contributes to the areas of Technology and Information Security. He can be contacted at: 
shreyas.sagvekar@spluspl.com

Friday 11 August 2017

SMART Requirements

What does the requirement means? Basically a requirement is more than an expected outcome of any project. Requirements are generally defined by the customer. Many things we engage in at work and in our lives have requirements. At work you might ask a subordinate to update an existing report with the market data from the previous week. In reality, you have just supplied a set of requirements. In simply gathering the requirements chances of getting ambiguity is high. The information may not be clear and if any changes has to be made then the changes might occur in other document.



So to get rid from this problem SMART framework is used. Now the question arises that what is SMART requirement. SMART is the acronym of Specific Measurable Acceptable Realistic and Time-bound.

SMART framework is a good requirement technique and it should have all the important aspects like consistency, accuracy, coherency, unambiguous and clear. Most of the time the requirement engineer has correct understanding but fail to implement the correct documentation.

SMART is a tool which is used for determining if requirements are well written or not. Description of S.M.A.R.T-

Specific: A good requirement is sufficiently specific if the need is clear enough to be able to determine an appropriate solution. It should not be misunderstood when read by others. 

Measurable: A requirement is measurable if you can prove that the requirement has been realized by use of a test. In other words it can be said that it should be able to verify the completion of project. 

Acceptable/Assignable/Achievable: A good requirement or a set of requirements in terms of form and style are acceptable if the quality demands have been met. 

Realistic: Good requirement is said to be realistic if it can be filled in with feasible and viable solutions.

Time-bound / Time-related: A good requirement is time-bound or time related when there is clear indication of when the requirement must be realized or will be realized. As the name itself suggest that there is a time boundation of when or how fat the requirement will be completed.

CONCLUSION:
This concludes that how SMART can be used in your requirements. Requirements are an important part of setting up the expectations with customer. In the absence of details, the customer will make assumptions in their head. State everything in your requirements. If it is not stated, it is not committed to be completed.

Once you believe that you have a completed the set of requirements, it is a best-practice to review them with your customers. This can be done on paper, or via email, but is a step that should not be ignored. It enforces that both parties review and completely agree on what work is being done and what is to be delivered. Do not always settle for a verbal yes; people forget and then change their minds. By going through this formal step it helps your customer to understand that you are serious about delivering your product that what they need and to do this on-time.

About Author:


Ayushi Guda is a consultant in Systems Plus Pvt. Ltd. Within Systems Plus, she actively contributes to the areas of Technology and Information Security. She can be contacted at: ayushi.guda@spluspl.com

Friday 28 July 2017

All about Hackathon-MMXVII: Amazon’s Echo Dot

WHAT IS HACKATHON? 
Also known as a code fest or hack day is a sprint like event that lasts between a day and a week, in which all entities involved in software development participate and achieve a solution for given problem. It gives the teams flexibility to use various programming languages as well as hardware devices.

WHY ARE HACKATHONS CONDUCTED?
Hackathons prove a ground for every team member to present new ideas. It stimulates the team members to think and act out of the box. Hackathons provide a platform to integrate and boost up problem solving skills and creativity, which in day to day work routine might get stagnant. Also, it is a great way to rejuvenate innovations.

WHAT WAS SCAN-IT HACKATHON 2017 ABOUT?
Scan-IT Hackathon 2017 was conducted on 25th and 26th of May ,2017 with 12 members representing Systems+. Our objective was to add 1 or more skills to Alexa’s skill-set. These could either focus on Scan-IT’s ERP product: Phoenix, or just be utilitarian in nature. 

WHAT IS ALEXA?
Alexa is the brain behind Amazon’s echo dot, which is capable of recognizing voice commands and processing them for further operations. Alexa is capable of processing everything from simple day to day chores to computing heavy calculations. For example, “Alexa, play music”, “Alexa, add apples to my shopping list “etc.

THE APPROACH TO IMPLEMENT THE SOLUTION:
Once we started exploring about Alexa, the possibilities of developing skills were endless. The traditional way to make a skill set is by use of AWS Lambda Function. AWS lambda function is a service that allows execution of code without any use of servers. We built few skills that could send emails and messages using IFTTT: If This Then That. We also explored various possibilities with the use of Node-RED and Losant. We also wanted to try IBM’s Watson which would be interesting as there would be use of 2 AI’s, but could not due to time constraint.

RESULTS ACHIEVED: 
We built many skills using different API’s but apart from this we tried controlling computer with Alexa which was an achievement for us. We could browse into computer and ask it to pop up with any folder or application we wanted. The control could be as simple as opening a notepad and filling it with content you wish without use of keyboard. We also built an automation to Phoenix application where we could connect to VPN as well as open the application and browse through a filtered set of entries. Other skills included day to day chores of Alexa helping with shopping lists, booking cab, sending out emails, enlightening us with unknown facts and few more. But the possibilities of developing skills were limitless.

CHALLENGES WE FACED:
Amazon’s echo is a machine that is voice interactive with the user. To make smart use of it, it is very essential to make proper use of technologies which fit the puzzle perfectly. While making applications for Alexa the biggest challenge we faced was that it can’t interpret complex word commands. The voice commands given to Alexa should be crisp and clear to make the most efficient processing. The device needs constant power supply and WIFI connection, which can prove a drawback whilst travelling.

CONCLUSION: 
Hackathon made every participant in our team to come up with creative ideas. Two days of hackathon taught us about team spirit, sharing of knowledge and ideas, interaction with team members, implementation of ideas using various technologies but most of all about Alexa. Within two days of hackathon Alexa had become a part of our team. It was not just a device for us anymore, but a team member itself. Alexa introduced us to the world full of creativity and imagination where any thought could be made a reality like a magic. While designing skills for Alexa we realised that there is a lot more to the world of AI than just automation. It challenged us to think more and beyond boundaries. Last but not the least, it was altogether great and magical experience.

About Author:
Ammara Ansari is a consultant in Systems Plus Pvt. Ltd. Within Systems Plus, she actively contributes to the areas of Technology and Information Security. She can be contacted at: ammara.ansari@spluspl.com

Friday 21 July 2017

User Management In Application Support

User Management in Application Support is a feature which helps administrator to manage users in an application. It helps in creating, deleting and modifying an account for users in an application which helps users in wielding the application as per their requirement. An administrator of an application has the privileges to create an account for users, disable or delete account, modify an existing account etc. Also, the users whose account has been created are given credentials (i.e. Login ID and Password) for logging in to application. If the credentials are not been sent to the user then he /she will not be able to login. Whenever a User management request comes in, then a new ticket is raised on Service Desk based on the request for modification, deletion, creation and also relevant information is filled related to respective request which helps in maintaining records of users and tickets. User Management in Application Support is very much important as it helps in smooth functionality of an Application. If not managed, then there are high chances of intricacies in an application. Also, depending on various circumstances, a user can be given different roles in an application i.e. whether a user can read only or user can edit data etc. This makes the application tenable and secured. In cognisance, it is very essential to give user management rights only to the administrator else it may lead to multiple account creation for one user and also may cause mismanagement of user account. Thus, it is essential having user management in Application Support. User Management in Application Support contains the following:

User Account Creation:
An administrator has the rights to create an account for a new user. It can be created on basis of users first name, last name, email address, unique ID, telephone or phone number, Roles to be assigned which should be specified by the requestor, if available in application then group should be specified. These all fields should be filled as they are mandatory fields for user account creation. If certain fields are not specified by the requestor then a new user account cannot be created. After an account has been created, a user is given login credentials through which user can efficaciously login into application.

User Account Modification:
An administrator has the privileges to modify an existing user account. This modification happens when there is a request for a change in roles, email address, phone number etc. In user account modification, a user account is updated based on contour. For user account modification, user should specify the modification requirements and modification fields. If not specified, then the user account cannot be modified. In user account modification, login credentials are not sent to the user as the login credentials remain the same. Thus, this helps in user management whenever a new role or field is to be assigned to the user.

User Account Deletion:
User Account Deletion is used for disabling user’s account in application. This refers to deleting a user account who is not using application or has left the Company or is no more working in Application Support project. This helps in maintaining precise User accounts in the application by deleting the dormant (Not logged in for a specified period) users. If the dormant user accounts are not deleted then it may cause excess data in application and users can misuse the application causing security breach. Thus, deletion of dormant user accounts helps in maintaining user accounts in Application Support.

Conclusion:
User management contributes to the Application security and maintaining user accounts efficiently. It makes easier for users to access the application or pages they require. It also helps in maintaining user profiles and updating the same whenever requisite maintaining the evidence of each User Management request for compliance purpose.

About Author:
Mikhil Chauhan is a consultant in Systems Plus Pvt. Ltd. Within Systems Plus, he actively contributes to the areas of Technology and Information Security. He can be contacted at: mikhil.chauhan@spluspl.com