6 Scenarios for Testing Beacon Integrated Application
Beacon Testing

What is Beacon?

Beacons are small Bluetooth-powered radio transmitters that can trigger real-world actions by relaying contextual information to nearby smart devices.

Beacon Identifiers

The parameters UUID, Major, and Minor are the Beacons identifiers. These parameters together makeup iBeacon’s unique identifier and plays a key role in beacon deployment.

  • UUID: The purpose of the UUID is to distinguish beacons in your network from all other beacons in networks outside your control.
  • Major: The major field identifies and distinguishes a group, for example, all beacons in on a certain floor or room in your venue could be assigned a unique major value.
  • Minor: The minor field identifies and distinguishes an individual beacon, for example, distinguishing individual beacons within a group of beacons assigned a major value.

Beacon Application Developed by Vmoksha

Vmoksha developed a beacon integrated iOS application that assists users to discover the nearest meeting room in their office on preferred date and time.

How does it work exactly?

Beacons were fixed in the meeting rooms. We have assigned a single UUID to the group. It will notify users the nearest available meeting rooms first just by referencing the UUID. The application developed scans for beacons and displays the availability of rooms with date and time. The user should choose and book the convenient room and can invite people from the contact list to the meeting.

Android iBeacon


  • App installation on the iOS device
  • Beacons to place/fix in the meeting room (Used Kontakt beacons)
  • Internet connectivity should be on
  • Bluetooth (BLE) has to be activated in the mobile device

Testing the Beacon Application

For testing the application, we used two beacons to book the meeting room either by date and time or availability of particular meeting room.

Search by date and time: The app allows a user to set the time slot of a meeting for a minimum of 15min with no maximum limit. When we set the preferred date and time in the app, the app displays a list of rooms with the nearest room first, followed by the succeeded one.

Search by availability: The app allows users to search for availability of a particular meeting room and enables them to book that room when it is unoccupied.

To test the beacon application, we followed the following steps:

  1. Installed the app on multiple iOS devices (iPhone 6, 6+, iPad)
  2. Attached  beacons  to different rooms
  3. Followed various test scenarios

We have followed several scenarios while testing the application. Here, I have mentioned the major 6 test scenarios that we followed during the testing.

Scenario 1: Book a room based on date and time and send invite

Case 1: Device connected to Wi-Fi and Bluetooth

  • Select the date and time
  • The app displays a list of rooms with the nearest room first
  • Select the room and invite people to attend meeting

Result: App should allow booking of a room and inviting people

Case 2: While booking the room, disconnect mobile device from the Wi-Fi

Result: App should display the error message ‘please check the network connectivity’

Case 3: While searching the room, disconnect the Bluetooth connectivity

Result: The app should display an error message as we need Wi-Fi to get the status of the meeting rooms and availability. BLE is required to navigate and identify the meeting room using Beacons.

Scenario 2: View rooms based on available timings of the specific room and send invite

  • Connect device to Wi-Fi and Bluetooth
  • Select the ‘search by available meeting room’
  • The app displays the available timings of the specific room with the nearest room first
  • Select a room and invite people to attend meeting

Result: App should allow booking of a room and inviting people

Scenario 3:  Book a room that was already booked

  • Connect the device to Wi-Fi and Bluetooth
  • Book the ‘room 1’ on May 10th, 2017 @10:00 A.M
  • Again try to book the same room for the same date and time

Result: In the available room(s) list, it should not display the ‘room 1’

Scenario 4: Book a room for the past /present/future date and time

Case1: Book a room for the past date and time

Result: App should not allow the booking of a room for the past date and time

Case 2: Book a room for present date and time

Result:  App should allow the booking for present date and time

Case 3: Book a room for future date and time

Result: App should allow the booking for future date and time

Scenario 5: Book a room while mobile is in airplane mode

  • Connect the device to airplane mode
  • Make sure the device is connected to Bluetooth and Wi-Fi
  • Book a room either by Search by date and time or Search by available room options

Result: App should allow the booking of a room

Scenario 6: Book a room when mobile battery is draining (charge less than 20%)

Result: App should allow the booking of a room


  1. At times, the nearest available room was showing next in the availability list.
  2. Beacons not working:
    • Battery is not properly placed
    • Battery might be discharged

3. User calendar is not mapped to the app to see whether he or she is available to send the invite.


Beacon is a low cost, low powered and low energy Bluetooth device that uses low-frequency for transmitting weak signals to other Bluetooth-enabled devices. When people pass through the beacon integrated meeting room the app will detect the nearby available meeting room.

Performance Test of Web Application using Apache JMeter

Apache JMeter is one of the best open source tools for Load and Performance testing. It can be widely used for a variety of applications. In this blog, I would like to share how to do the performance and load testing of a web application using JMeter Recording Tests (GUI mode) on Windows Operating System. Before that, I would like to share about Apache JMeter features and installation process.

Apache JMeter Features:

  1. It has the ability to load and performance test many different applications, server, and protocol types such us HTTP, HTTPS, FTP, TCP, Web Services, etc.
  2. It allows to recording scripts, building, and debugging.
  3. It has compatibility with Windows, Linux, Mac OS, etc.
  4. Complete portability and 100% Java purity.

Downloading and Running Apache JMeter:


JMeter is a pure java application. It requires the system that is compatible with java and a fully compliant JVM 7 or higher version. Download and install Java Development Kit (JDK 7 or higher) from here.

Downloading JMeter:

  1. Download the latest version of Apache JMeter x.x from here.
  2. Choose Binaries file and either zip or tag file to download the JMeter

Configure JMeter

Running JMeter:

There are three modes to start JMeter

GUI Mode: It can be used for recording test script and running their script to JMeter itself. Run the Jmeter.bat file for Windows system and JMeter file for Linux. These files are found in the bin folder. After that, JMeter GUI will appear.

Command Line Mode (Non-GUI): For load testing, use this mode to get optimal results.

Server Mode: For distributed testing, use this mode to run JMeter in Sever on the remote node and control the servers from GUI.

Test Script Recording of Web Applications

Steps to Configure JMeter:

#1. Go to apache-jmeter-3.1/bin folder and start the jmeter.bat (Batch) file.

Configure JMeter

#2. Select “Test plan” on the Tree

Configure JMeter

#3. Right click on Test Plan and go to Add > Threads (Users) > Thread Group

Once Thread Group is added, configure the JMeter.

Jmeter configuration

Above figure shows JMeter configuration for 10 users, 5 seconds ramp-up and 1 Loop count.

Number of Threads: The number of users going to hit the server. Ramp-Up Period: Time given for each user to hit the server. For Example:

  • 100 users, 50 seconds ramp-up – start with 1 user, each second 2 users added
  • 100 users, 100 seconds ramp-up – start with 1 user, each second 1 user added

Loop count: Execute the same process ‘N’ number of times continuously and increase the loop count value.

#4. Right click on Thread Group and go to: Add > Config Element > HTTP Request Defaults

Jmeter configuration

Add the following three things to this window.

Server Name or IP: Server Name or IP is nothing but URL of the website on which you have to perform the load test.

Port Number: Add the default port number 8080 to the Port Number field. To change the number, edit it under Global settings.

Protocol: Here you can mention your required Protocol, http or https. Don’t mention as in Caps.

#5. Right click on Thread Group and go to Add > Logic Controller > Recording Controller

Jmeter configuration

You can watch recorded samples of your actions while you are browsing the web applications. Each Https request will be recorded.

#6. Right click on Thread Group and go to Add > Config Element > HTTP Cookie Manager

To use cookies on your web application, add HTTP Cookie Manager to the Thread group. Test Script Recorder #7. Next, select Workbench. Right click on Workbench and add the Recorder: Add > Non Test Elements > HTPP(S) Test Script Recorder

JMeter Proxy

Check whether the port 8080 is open or busy in your system. If it is busy, you should change to the other port number that is always open in your system. On HTTP(s) Test Script Recorder, click the Add button in “URL Patterns Include.” Enter “*”. It has to record everything.

To restrict any image types and web pages while recording the scripts, we need to enter the pattern in “URL Patterns Exclude” which is not being recorded in JMeter.

Example patterns: .*\.png .*\.html .*\.jpg

#8. Right click on “HTTP(S) Test Script Recorder” and Listener: Add > Listener > View Results in Tree.

JMeter Proxy

We need to add at least one Listener in the workbench so that we could see results of JMeter while recording. In JMeter, there are many listeners to view results. We can generate the report in Graph or Table.

Add Listeners: Right click on “Recording Controller” > Add > Listener > View Results in Table. Right click on “Recording Controller” > Add > Listener > Summary Report. Right click on “Recording Controller” > Add > Listener > Graph Results.

#9. Finally, click the “Start” button in the Script recorder window. Then the JMeter Proxy server will start on your system. When the JMeter starts, ApacheJMeterTemporaryRootCA.crt certificate will be created in the bin directory. Click OK and continue.

JMeter Proxy

Configure JMeter

Configure Browser to use the JMeter Proxy:

We will use Firefox to test the application. For this, we need to do the following proxy setup in the browser.

Steps to Configure Mozilla Firefox with JMeter Proxy:

  1. Open the browser. At that time, don’t close the JMeter window.
  2. Click Menu button from the Navigation bar.
  3. Choose “Options” menu.
  4. Click “Advanced” tab on the left and then select “Network” tab.
  5. Click on “Settings” button in the Connection section.
  6. Choose “Manual Proxy Configuration.”
  7. Type HTTP Proxy as localhost or enter IP Address of your system and then set port as 8080 (Check whether this port is free. If not change the port)
  8. Check “Use this proxy server for all protocols” option.
  9. Click “OK” button
  10. Click “OK” button again.

Now your browser is configured with JMeter Proxy server. Refer the below image to configure the Firefox browser.

Jmeter configuration

Now everything is configured and ready to start recording the user actions in JMeter.

Record the Script:

Before starting the recording, ensure that JMeter was started in your system.

  1. Open Firefox browser and type the URL of your application then hit enter.
  2. Do the actions whatever you want to test in the application.
  3. Now go to JMeter and click “Recording Controller” in the Thread Group. Here you can see the script for whatever actions you did in the browser.

Jmeter configuration

          4. Once you are done with the actions in the browser, click on “Stop” button of the HTTP(S) Test Script Recorder window in JMeter.

Run the Script:

We are ready to run the recorded script. Save the test plan. Run the Test Plan:  Press Ctrl + R (or) Click “Start” button.

While running the script, at the top right corner, a green color square box will display. Once it is completed, the box will change to Grey.

 Jmeter configuration

View Results:

Click on “View Results” in Tree under the Recording Controller.


Click on View Results in Table.

Configure JMeter

Click on Aggregate Graph > Graph

Configure JMeter

Click on Summary Report.

Configuring JMeter

In JMeter, we have to save recorded scripts in different formats like JMX, CSV, etc. We can upload the recorded script files to third party online load testing tools and get detailed and optimal results from there.

Online tools for load testing:

  1. Blaze meter  -> https://www.blazemeter.com
  2. Redline13  -> https://www.redline13.com
How to Test Native App Performance using Apache JMeter?

In my previous blog, I have elucidated how to test web application’s performance using JMeter. Here, I would like to share how to test mobile app’s performance in JMeter.

JMeter records mobile application requests on HTTP(S) Script Recorder and it has features to prepare and run our mobile application performance test scripts. All we have to do is to configure JMeter and Mobile device. In JMeter, we can test both iOS and Android native applications.

Steps to Configure JMeter:

  1. Go to apache-jmeter-3.1/bin folder and start the jmeter.bat (Batch) file.
  2. Right click on “Test Plan” > Add > Threads User(s) > Thread Group.
  3. Right click on “Thread Group” > Add > Logic Controller > Recording Controller.
  4. Right click on “Thread Group” > Add > Listeners > View Results in Tree.
  5. Add HTTP(s) Script Recorder to Workbench by selecting Workbench > Add > Non-Test Elements > HTTP(s) Script Recorder option.
  6. Add Port value as 8080 and click “START” button in script recorder. The JMeter proxy will be started on localhost.

Next, we need to configure the mobile device as per the following steps.

iOS Device Proxy Configuration:

  1. Go to Settings > Wi-Fi option. (Note: Network should be same for both Mobile and Laptop/Desktop).
  2. Click on the Connected network.
  3. Select “Manual” option from HTTP Proxy.
  4. Set ‘Server value as system IP address and Port value to 8080 as per JMeter setup.
  5. Now start the application on the device and its each request will be recorded in JMeter.

 Android Jmeter

Android Device Proxy Configuration:

#1. Go to Settings > Wi-Fi option.

#2. Press and hold on connected network and Click ‘Modify Network’ option.

#3. This will open advanced settings from where we can modify Proxy.

#4. Change the Proxy to Manual.

Apache JMeter

#5. Set Hostname value as system IP address and Port value to 8080 as per JMeter setup.

Apache JMeter

#6. Click on ‘Save’.

#7. Now start the application on the device and its each request will be recorded in JMeter.

#8. Before running the application, make sure that HTTP(S) script recorder was started in JMeter.

#9. Once the application is started, the actions of the script will be recorded under “Recording Controller.”

#10. Once actions are done in the application, stop the script recording by clicking ‘Stop’ button in HTTP(S) script recorder screen.

#11. Now, expand the “Recording Controller” in JMeter. You can view all the Recorded scripts of whatever actions are done in the applications.

#12. Finally, click the ‘Play’ button. It will run recorded scripts as per your Threads setup.

#13. Click on “View Results in Tree”. Here you will see the result of your script.


Solutions for issues while testing the mobile application:

Here are the solutions for the issues that we have noticed while doing the load test in JMeter.

Issue 1

The application wasn’t getting loaded.


The issue is caused because our system was enabled with the firewall protection in security software. This is restricting network connection when setup with the proxy. We have disabled the firewall protection in antivirus settings.

Issue 2

Internet was not working with Proxy on the mobile device when we configure the mobile device and JMeter.


The reason might be that the system IP address is not configured with JMeter properties which mean the current IP address is not added to the JMeter properties file. We have added remote host IP address to property file as per the following steps.

  1. Open the browser and type IP address and Port number that is mentioned in JMeter to check whether it was configured. If browser shows Connect, then it is working fine otherwise if it is continuously loading, then it was not configured. Then we have to follow the below steps:
  2. Open apache-jmeter folder from the local drive and go to the bin folder.
  3. Open “jmeter (.properties)” file and find “Remote hosts and RMI configuration” section on this file.
  4. Under this section, add the system IP to remote hosts with comma delimited and save the file.
A good read on Food Safety Modernisation Act (by Team Ionhaccp)

As per FDA, Foodborne illnesses affect around 48 Million Americans per year, which means 1 in every 6 Americans goes through this. Out of those, around 1,28,000 are hospitalized and for 3000 people every year, foodborne diseases have turned out to be fatal. Most foodborne diseases are caused due to the bacteria, viruses, and parasites contained in the contaminated food reaching the human body system.

Contamination of food can be prevented by setting preventive and quality measures in food manufacturing, processing, and storing. US food Industry is considered one of the largest with sales values amounting to more than 5 trillion dollars in 2015. The need to educate and ensure awareness and safe practices throughout the industry has become a necessity now more than ever. The US Govt enforced FSMA with the intention to modernize and update the Food Safety practices while maintaining compliances with the existing Food safety standards like HARPC, HACCP, GFSI, SQS, etc.

The Food Safety Modernization Act (FSMA) was signed into law by President Barack Obama on January 4, 2011. The FSMA has given the Food and Drug Administration (FDA) new authorities to regulate the way foods are grown, harvested, and processed. FSMA aims at complete prevention of foodborne diseases rather than controlling it. FSMA primarily focuses on these legislations.

Food Safety Modernisation


This rule makes it mandatory for certain domestic and foreign facilities to establish and implement hazard analysis and risk-based preventive controls for human food. The final rule implements the requirements of FSMA for covered facilities to establish and implement a food safety system that includes a hazard analysis and risk-based preventive controls.

Import Safety

The new rule requires the importers of food for humans & animals to perform risk assessments and ensure that the product meets US safety standards.

Enhanced Partnerships

The legislation recognizes the importance of strengthening existing collaboration among all food safety agencies – U.S. federal, state, local, territorial, tribal and foreign to achieve the public health goals. For example, it directs FDA to improve training of state, local, territorial and tribal food safety officials.

Inspections, compliance, and response

FSMA’s rule established mandated inspection frequency based on the risk for food facilities. The Law directs FDA to conduct inspections and to increase the frequency of inspections going forward. The Law gives FDA the right to access food safety plans and records for implementing those plans.

FSMA compliance and the role of Food Safety Apps:

Food Safety Applications designed for Food Safety with HARPC (Hazard Analysis and Risk-Based Preventive Control) compliance allows organizations dealing with Manufacturing, Producing, Processing, Packaging and Transporting of food to plan and execute their operations effectively. Let’s see what a fully fledged Food Safety System can help you in ensuring FSMA compliance.

1. Establish Food Safety Plans

Companies can create HARPC based food safety Plans, Tasks, and Workflows that can be assigned to individuals for approval. Apps allow the users to refer and update the status through the system making it fully transparent.  The app proves as a reference for updated product specs, plans, hazards, and potential risks.

2. Identifying Non-conformances earlier & managing corrective & preventive actions

FSMA stresses on preventing Foodborne diseases rather than controlling. FSMSs (Food Safety Management Systems) like Ionhaccp allows the user to identify non-compliances by cross checking with the requirement and sends alert to the users real time. Preventing non-conformances from happening controls the situation right where it is starting.

3. Maintaining Documentation and Reports as per FSMA Requirements:

All reports, plans, workflows, invoices, etc can be electronically stored and retrieved whenever needed. This will ensure that all necessary documents are readily available for inspections and audits as required by the FDA.

With an efficient Food Safety Management System, you can identify your non-compliances right where it is started and take corrective and preventive actions, ensuring FSMA compliance and overall a very hygiene, healthy and safe product for consumption. 

How We Establish Our Business Through Meetups?


Meetups are a great means to meet local entrepreneurs and enhance business networking. When the best brains meet and discuss their ideas, the amount of knowledge, business opportunities, service offering, advisory, and connections that can be gained is unimaginable. Understanding the potential of participating in events, Vmoksha CEO & Director attended numerous meet ups throughout the New York to network with people of similar mind or interest. The business connections they acquired from attending such meetups have opened doors to different challenges and possibilities to work on.

How we managed to get connections?

We constantly search for Meetups through online tools like Meetup.com and Eventbrite on topics that match with our Industry and service offerings. For the past 3 months, we have attended over 20 meetups related to IoT, Networking, Big data, Women Entrepreneurs, Sports and Entertainment and Food Tech, Health, etc that were conducted throughout the New York.

Pioneers and leaders from different organizations had attended and discussed their views on the current business scenario. We have also introduced and discussed our service specialties and observed that many entrepreneurs were keen to know more about our organization. This enabled us to reconnect with those persons who have shown interest in our products through Emails & Calls. Around 200 new contacts were added to our CRM and through emailing, we were able to be in touch regularly with those contacts.

How Meetups Benefited Us?

  • Got a chance to exhibit our newly developed product, IONHACCP.
  • Discussed and shared knowledge on industry trends, technological advancements, etc.
  • Found opportunities in partnership programs
  • Met industry experts, reconnected with old friends and driven business opportunities from these connects.

Meetups helped in spreading our brand awareness and enabled us to understand the opportunities waiting for us and the channels that we need to focus.

5 Ways We Leverage Grammarly at Vmoksha

Even a perfect writer needs proofreading to avoid the embarrassing typos and grammar mistakes. At Vmoksha, we create plenty of content as a part of our daily deliverables especially blogs, emails, social media engagement, etc. Therefore, to minimize the hassle associated with proofreading, we have integrated Grammarly into our business process and leveraging its benefits for over a year.

Grammarly enterprise benefits

Here are few of our favorite features from Grammarly.

Grammarly for Blogs

As a part of our regular blogging process, our technical writers need to write or proofread several blogs for the company as well as for the clients. Sometimes, while proofreading the content, we overlook minor spelling or grammar mistakes as the context is more important. Grammarly, the most accurate grammar and spell checker is helping us in minimizing the grammatical errors in the content which may distract our readers from reading the blogs while allowing us to focus more on the context.

Grammarly makes blogging easier by suggesting mostly accurate and valuable corrections that we might have unnoticed. It checks for incorrect article usage, wordiness, passive voice, incorrect modifier usage, and other grammatical concerns. It also helps in Vocabulary enhancement by suggesting synonyms for words throughout the article.

Grammarly for Word

The Grammarly add-in for Microsoft Word assists us while preparing technical documents. Our business process includes several technical documentations, manuals, case studies, etc., which needs to be created in the word document for better depiction with images and graphical representation. The technical documentation contains plenty of content and needs a lot of attention and time to check every word and sentence. Grammarly simplifies our work with its precision in finding mistakes we ignored.

Grammarly for Browsers

The Grammarly extension to browsers such as Chrome, Mozilla, and Safari helps us in understanding any blogs, documents, etc., while reading online. The tool features such as thesaurus, and dictionary will provide meanings and synonyms of any word with just a double click and make the sentence more understandable. It also supports with spell and grammar checks on any text editor in your browser.

Grammarly for Emails

Grammarly extension allows us to send emails with confidence for effective communication. Sending error-free emails to clients and customers is the most important part of a business and we are achieving it efficiently through Grammarly.

Grammarly for Social Media

We also leverage Grammarly extension when we are posting and commenting on social profiles such as Facebook, LinkedIn, Twitter, Google+, etc. Grammarly proofreading for social media posts will help us to correct the mistakes before posting which rescues us from the limitations of Twitter and LinkedIn i.e., no edits after posting.

Overall, Grammarly is a tremendous tool that aids every blogger or technical writer with speed over accuracy. However, the premium version has more advanced features such as Plagiarism Checker, Vocabulary enhancement, and Finding advanced issues, which enables you to experience the full-fledged advantages from Grammarly.

Challenges without External Hardware

With the world moving towards Mobility, there are umpteen applications available in the market to capture data. However, businesses have to still largely depend on external hardware scanners to capture data related to identity. Recently, at Vmoksha we developed an application that required barcode scanner integrations. We decided to develop the application using in-app barcode scanners and initiated the project.

Let’s discuss some of the challenges we faced while using the in-app barcode scanners.

in-app barcode scanner


Barcode-scanning applications on mobile devices rely on “display aiming,” which requires a user to find the barcode when it appears on a device screen; align the barcode with a virtual aimer, and keep still long enough for the device to focus, capture, and decode the barcode. This can delay the time taken to decode.

Integration with internal applications

Integration of application with available barcode readers can be tricky especially when customization is required. We tried integrating barcode readers in the app, where a front camera is needed for scanning. Initially, it was difficult to find readers that allow reading barcode from the front camera; but to achieve the required response time was a roadblock due to the quality of the front camera.

Quality of barcode

Almost all the in-app barcode readers fail when the barcode is damaged or distorted. The quality of the barcode degrades as the product moves along the operations or due to wear and tear. The risk of no reads can be reduced with some of the external barcode scanners, which are equipped to read the damaged barcodes.

User Experience

The speed of delivery and ease of use plays a very important role in user experience.

The above-discussed issues will impact the acceptance of the application by the customer. In-app readers would be a good choice from cosmetic aspect but external hardware scanners that can be seamlessly integrated with the application and with better speed are still better suited to bring about positive user experience. Hence, eventually, we delivered the project using external hardware scanners and successfully implemented at the client side.

Role of Scorecard in Prioritizing Feature Set & Positioning our Product among Competitors!

Vmoksha is going to launch a comprehensive Food Hygiene & Safety Management System to assist Food Manufacturers and Processors in maintaining their food safety and quality. We named it Ionhaccp to convey users that our product ensures HACCP compliance, which is a fundamental requisite for food businesses.

We thoroughly understood the requirements from the global food market and designed ionhaccp with advanced features to compete with the current key market players. Considering future trends in food safety, we also integrated IoT technology to our product, which can capture Critical Control Points to prevent food safety hazard. IoT not only simplifies the task of capturing critical data but also gives valuable infographics and sends alerts to user’s mobile devices if anything goes beyond the predefined limits.

Prior to designing our product we have analyzed different feature sets available in the market. During the process of analysis, we have given scores to each and every feature based on the feature significance and availability, which helped us in understanding the weightage and priority of the features.

Let’s see how Scorecard has helped us in prioritizing ionhaccp features & competitively positioning of our Product.

Before we start, let’s know the basics –

What is a Scorecard?

Scorecards have scores (Weights) given for each product features on the basis of their priority. The scoring method helps to rank your features and understand which features are crucial to include in your product. While there are many inputs that ultimately go into a product decision, a scoring model can help the team have an objective conversation.

Why to calculate weightage and scoring?

To have a comprehensive view of major competitors’ products, their feature set, and to identify the potential gap. Arrive at an optimum feature set to gain market share.

What is our approach to achieving that?

  • Identify the key players
  • Identify the key features
  • Comparative analysis of features
  • Develop scorecard

How we Prioritize our Product Features?

Our team has conducted a thorough research online and offline and came up with all possible set of parameters (Features) and top market leaders (Competitors). Next, we have created a table with Competitors Products and listed all features available from all the competitor products.


As shown in the table above, we categorized the features into different heads. Narrowing the features was based on factors that impact Operational Efficiency. Following are the factors that determine the success of an effective product.

  • Functional
  • Technical
  • Architecture
  • Support
  • Licensing & Documentation
  • User Experience
  • Pricing
  • Security
  • Market Share


Figure 1 – Feature & Competitors Representation

Next Step in the competitive analysis is to figure out the list of features available or missing in all the products. Then, we have to identify the list of important features and give them scores. Scores are weightage given to each feature listed based on its operational efficiency or significance.

First, we need to give maximum values to the score column; here we have given value 5 for the features that are inevitable. This means, for any feature which is given a score of 5 is considered of high priority (5 being the maximum score). If a product feature seems of least significance, we gave it a weight of 1 (1 being the lowest score). Based on the maximum values given in the Score column, we gave weights for our competitor’s products as well as our own product for each feature listed under the head. It must be noted that a product expert team after detailed analysis of competitors should give the weightages.

Once all features are given weight on 1-5, our Scorecard table was looking like this. (The data represented in the picture are completely based on our analysis and not taken from any outside sources)


After allocating the proper scores, it’s time to see the total scores obtained for each product listed. Summing up all the scores vertically gave us the total scores obtained by each product. Once it’s done, we were able to find out which player has obtained the maximum scores and see the ranks obtained by each player. This is how our scorecard total looks like after summing up.


Now based on the total scores obtained, we could easily determine the ranks for each product. Hence, we were capable of finding our product’s rank & thereby where our product stands among the competition. Representing scorecard details graphically or tabular format is much easier to understand. Let’s see how we showcased our scorecard details.




Based on our competitive analysis and the scoring, ionhaccp will be able to offer the must-have features as identified in the scorecard and will become one of the top 3 key players in this segment.

Why Vmoksha Switched to MailChimp for Internal Corporate Communications?

Like all Marketers, Vmoksha has become aware of Mailchimp through its high reputation in providing Email Marketing services to clients worldwide. Mailchimp is regarded as one of the top players in Email Marketing services and is a secure platform that allows you to send marketing emails, automated messages, and targeted campaigns. Mailchimp user experience was so great that we familiarized with the tool and conducted campaigns for our clients in no time. The tool helped us to create newsletter designs for our clients and also automate the emailing process, helping us convey the right message for our clients at the right time.

Impressed with the outcome of our campaigns, our management came up with this idea “Why don’t we use it for our internal corporate communications as well?’’

At that point of time, Vmoksha depended on Google Mail Services (Gmail) to send any communication internally, be it New Joinee information, Wishes for Birthdays and Special Occasion, Holidays, Product Launch or other vital information. We sent these emails through a group with all Email IDs of our employees and named it Vcommunique. We follow an approval procedure for Vcommunique requests through our internal ERP and once approved the content is posted in the mail body of Gmail (platform) and sent. There was no option for us to design the template or track the emails sent. Gmail Platform was reliable, but tracking, analytics, and reports on emails sent were not available, at least yet. We moved soon to Mailchimp and are happy that we did because the capabilities and potential of this tool were beyond our imagination. The basic plan has most features suitable for internal communications.

Let’s see how we made the most of this tool.

How Mailchimp transformed our business?

Email Templates

Designing an email template on Mailchimp is complacent than ever before. The wide ranges of themes available and the options to design our own template with images and CTA buttons helped us in reaching our employees with the most alluring design templates that probably increased our number of views than earlier. Thanks to MailChimp! Now our internal newsletters are a way appealing. Here is a template designed for one of our product launches.


Email Tracking

While using Gmail we were not sure of how many opened, read, and subscribed to emails. Again, Mailchimp helped us in tracking details of particular campaigns in the means of delivery status, how many opened, subscribed, click rates, click maps, etc. The tool also allows us to capture geographical information of recipients who opened the mail, as well as the bounced email details.

Mailchimp Campaign


Mailchimp provides detailed reports of campaigns such as number of recipients, delivered date, bounced, open, clicked, unsubscribed, last opened, forwarded, etc. From the reports, we can understand the top clicked URLs, top opened locations, most opened subscribers, and social shares. The tool also has provision to print, email, download or share these reports, allowing reports and statistics to be communicated quickly. The generated reports help us in understanding the enhancements needed to achieve our goals.

Mailchimp Reports


Automation/Scheduling Emails

MailChimp automation allows us to create a targeted series of emails that will be automatically sent when triggered by a specific date, event, or subscriber’s activity. This feature saves us huge amount of time and efforts for sending out recurring or periodical emails. Also, if a particular mail has to be sent during a specific time of the day, Mailchimp will allow us to schedule it.

Dashboard View

The Dashboard view of Mailchimp is very informative as it gives us an overview of the Overall audience for our campaigns in terms of Subscriptions, Bounces, Unsubscriptions, Subscriber growth, and Subscriber sources.

Mailchimp Graphs

Graphs Mailchimp

Dashboard also features Overall campaign Engagement by representing Total Mails Delivered, Opened and Clicked data graphically. It helps us understand our overall campaign details for the past week, a month or even a year.


Mailchimp can be integrated with numerous applications like Facebook, Twitter, Gmail, SalesforceCRM, SugarCRM, Drupal, Analytics and much more, allowing to get leads and share and to track our efforts.

Integrations Mailchimp

These are just a few of our favorite features of MailChimp. It has the power to personalize and automate the marketing and is one of the simplest and easiest ways for better internal corporate communication.

Design Journey of ionhaccp

Logo Design

Designing a strong, coherent product identity is one of the most challenging tasks in graphic design. It is a unique opportunity to create something that will go on to be used in many different places, applications, and designs.

Almost two months back, I was approached by a company to design a promotional website and logo for their new product. This was an exciting and challenging new design project for me.

Product Brief

The initial brief did not fully encapsulate what the product or the business is about. Client indicated that he wanted something that reflects professionalism, quality, uniqueness, and innovation. As a further explanation of what product does, the client wrote, “The product is food safety compliance solution called ‘ionhaccp’ to streamline the process of food and hygiene safety management from farm to fork” and a crisp list of bullet points about product and brand.

Wire-framing and Initial Sketches for Website

With the brand boundaries established, I could move onto getting my fingers dirty. The first step was to create the wireframe of the website. I started with a vertical layout with around five sections in my mind from the story, features, and solutions that product provides. After a couple of iterations and experiments, I finally had the first prototype, which I showed to the client.

ionhaccp logo designwireframing-illustrator

For collaboration, we used invisionapp as all the persons involved can have a look and comment on each element, it makes discussion on project assets really easy and safe at the same time. The first response I got from client, said,

Great job. This is very close to what I am thinking.”

And like with any good design process, tweaks had to be made. Once the website design started coming together, I went ahead with icons, images, typography, other sections and color scheme for the website.

Website Assets

I created a custom icon set for the website and for the color scheme I went with blue as hero color because of its professional, loyal and pleasing nature. Choosing the shades of blue was the fun part and of course created some other palettes too for variations.


and for the color scheme I went with blue as hero color because of its professional, loyal and pleasing nature. Choosing the shades of blue was the fun part and of course created some other palettes too for variations.

ionhaccp design

For typography, the first option given by me was Niveau Grotesk. The fonts are based on geometric forms and because of its straight architecture; it has a “punch” in big sizes but is very legible in smaller sizes and longer texts—in print or on screen.

Logo Design

The next stage was creating the logo. The challenge that I had when creating the ionhaccp logo was trying to incorporate different modules of the application and trust me, there are so many starting from IOT, data analytics, big data, machine learning and auditing to food hygiene and much more, other than a just a tablet application.

So the big question was what symbol is going to represent this product?

I started with rough sketches on paper and then experimented with them on the computer.

ionhaccp logo designEastern 0%

Eastern 0%

There were multiple iterations for logo unlike website design as the client’s idea of how the logo has to be was not in-tune with my perception. To work around these challenges, I decided to go for a minimalistic approach of using wordmark instead of symbol. Again, I started to scribble down ideas and then booted up Adobe Illustrator to test out a range of type treatments, ranging from thin and modern sans serif to cursive and slab serif fonts.

logo options1 logo options2

Continuous ideas and concepts developed the logo into five possible concepts, which were then sent to the client. The client seemed to have liked one of those but not completely satisfied. I created color variations of it for darker and lighter background to put on the website as it was going to be live soon.

ionhaccp logo design

Even if you have a strong concept, if you cannot execute the design well according to client’s expectations, then the logo can and will be a failure. Hence, the process of logo creation goes on…