Chat with us, powered by LiveChat

InsightPortal

We enable you to make sure your Online Service works.

CONTACT US

Request for Proposal

#

Purpose of the Application

InsightPortal actively monitors the Internet for news about upcoming releases of Browsers, Operating Systems for desktop and mobile devices, as well as launched mobile devices and provides an aggregated insight into the market showing risks and impacts to on-line services of all industries.

In urgent cases all users get an alert push notification; the benefit being that they can be prepared in advance and internal development and test teams know, which tests should be executed, and when. Additionally, the risk assessment will provide advice for further actions and your staff is informed about latest rumours and trends in the IT market. In short we can say :-

- Speed up your reaction time to environment changes & vulnerabilities

- Save cost and time to keep your employees up-to-date

- Increase customer satisfaction through higher availability and quality of your on-line service

- Don’t loose sales opportunities, because your on-line service is not running properly

What we did: (Mobile Application)

We created Dashboard, where user could easily get access to the last updated news , impact graph, upcoming events, calendar, etc. by just swiping between the screens. We provided a side menu to access the different categories of articles, profile, rumours & trends etc. User could search for any article from any screen.

Dashboard(Graph and Calendar)

Profile and Edit Profile

Advanced Search and Article

#

Software, Share feature, Side menu drawer

Features:

  • Fully swipeable user dashboard.
  • Swipe Gesture to close current screen and switch between screens.
  • Graph to display weekly data
  • Updating the data in background
  • Displaying multiple events on Calendar
  • Displaying Article(HTML data) in proper format in Web View
  • Pagination to show loads of data.
  • Sharing article on Facebook, Twitter, E-Mail.

Challenges Faced:

On a single date, displaying multiple events was difficult. But we used Tapku Calendar and did some brainstorming to implement the feature. There was a problem to handle the tap event on a date and display an event popup, it was displaying two times. But after all, we did this task.

By disabling the line that was executed on end of touches.

  • - (void) touchesEnded:(NSSet )touches withEvent:(UIEvent )event{
  • //[self reactToTouch:[touches anyObject] down:YES];
  • }

Initially we were unable to plot a smooth graph as the values changed with time. When the points were in different positions, plotted points got scattered. But after a deep search and R&D, we could customize it in our own way. By doing correct calculation to plot the points on exact positions.

To customize an HTML page while it was sent through the mail was getting difficult since Gmail does not allow formatting of the content. There were problems in formatting the HTML like Custom font and its size, Justify, spacing, list etc. But after a long run, we could implement it and eventually the HTML got it's formatting done. We proceeded as follows:

  • htmlContent = ""
  • + ""
  • + ""
  • + ""
  • + "" // for justifying the content and
  • // breaking a long word(like URL) into different lines
  • + htmlContent
  • + "";

In one the dashboard screens it was difficult to put a calendar(which itself has it's scrolling) and an upcoming events list(which too had a scrolling feature) below it inside a screen which was required to be scrolled. For the solution, we made our own custom classes to implement the same.

  • @SuppressWarnings("unused")
  • @Override
  • public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
  • if (true) {
  • // Calculate entire height by providing a very large height hint.
  • // View.MEASURED_SIZE_MASK represents the largest height possible.
  • int expandSpec = MeasureSpec.makeMeasureSpec(MEASURED_SIZE_MASK,
  • MeasureSpec.AT_MOST);
  • super.onMeasure(widthMeasureSpec, expandSpec);
  • RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) getLayoutParams();
  • params.height = getMeasuredHeight();
  • } else {
  • super.onMeasure(widthMeasureSpec, heightMeasureSpec);
  • }
  • }

To update the data in the background was a tedious task as the requirement was that the data should always be updated while switching between screens, app going in the background and coming in foreground etc. To implement the same, we did as follows:

  • - (void)applicationWillEnterForeground:(UIApplication *)application
  • {
  • // When app will be enter into foreground, perform selector after some delay to update the data.
  • [[NSNotificationCenter defaultCenter] postNotificationName:kAppInForegroundNotification
  • object:nil];
  • }
  • [[NSNotificationCenter defaultCenter] addObserver:self
  • selector:@selector(updateData)
  • name:kAppInForegroundNotification

To close a screen by swiping right created a problem. After reducing sensitivity and time we had a win- win situation. To correct it we changed the distance and velocity.

  • private int swipe_Min_Distance = 100;
  • private int swipe_Max_Distance = 550;
  • private int swipe_Min_Velocity
#

Complete Flow of the Application:

#
>>>>>>>>>>>