rajagopal28 / Donna

A smart personal assistant application with an intent to address the indoor navigation problem and to make the work hours interesting. powered by MazeMap and Api.ai

Home Page:https://rajagopal28.github.io/Donna/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Donna - The Smart Office Assistant

Introduction:

     Being in a huge corporate world, we often get lost literally. Yeah, most of the tech giants own huge blocks of buildings and they operate in a seamless way, but being humans we often tend to remember all details of what is where in the real world. On a specific note, being at work which involves lots of floors, partitions, and wings, we often wind up moving across various parts of the mazes that we live across. With smart personal assistants, this can very well be addressed by making our workplace a lot easy to move and comfy to work.

Detailed proposal documentation can be found Here.

Detailed Documentation on Android Mobile App can be found Here.

Detailed Documentation on The contextual data backed can be found Here.

Download the mobile application executable Here

Web Application Architecture:

Architecture

Technical challenges:

      Angular2 - While starting this project I wanted this to be a mobile app as it involves navigation and chat type feature after knowing that native script supported angular2 framwork I felt it would be more fun to learn two techs for a single project. Angular2 was more roubust and structured when compared with it's predecessors.

          Working with MVC was so smooth but I had issues as these framwork are on top of Javascript and I didnot want to host a server just to serve the static files. So I chose gh-pages. Eventhough ng build and deploy commands are out of the box, integrating with gh-pages for a peculiar URL format was tricky. However with npm build tricks based baseref attribute saved the day.

      Bootstrap UI - As I am not a CSS guy I wanted someone to help me with CSS. Initially I was planning to keep the UI light with no sassy components, however I was impressed by ng-bootstrap for angular 2 which had satisfactiorily less number of components as it is still in development.

      MazeMap - I chose MazeMap initially as it was the recommended library in the hackathon guidlines. However I had a small tryout with google's indoor navigation and MazeMap was too simple and easy for a native javascript framework. However problems were rooting when trying to use this in nativescript as a simple javascript library.

      ChatBot - Initially I have started this project by keeping Microsoft's Bot framework and Bot as services but on trying out I found that their QnA bot have no capabilities of maintaining context and ability to extract intent's from the user message. After looking at options like wit.ai and api.ai I found API.ai to be developer friendly in defining intents, actions and training the bot over context with varying actions and contexts.

Up and Running:

      This static site is being deployed to gh-pages powered by git hub. You can visit the site in Here. To run in local follow the steps given in this Link

Major User Flows:

      There are 3 major flows in this app Admin and Session: where we can login or add users, locations, campus, events and announcements. These views are generally used to feed data in to the system and manage them. The contextual backend is just an API backend and these views lets us manage all the data. Chatbot: Essential crux of this app is the chat bot where the authenticated user interacts with the api.ai server and it gets fulfilled for some of the intents by the contextual backend we have created. Maps: Indoor navigation is the essential concept behind this project. It is deeply tied between the contextual backend as it holds the relevant data. The Mazemap library is used for indoor maps and navigation.

Home and Login

Home User Login

Events and Announcements

Announcements Announcements Events Events

ChatBot:

ChatBot ChatBot ChatBot ChatBot

Maps:

Maps Maps Maps Maps Maps Maps Maps Maps

Admin:

There are set of views that are created to manage the contextual data. Please Click Here to View about those Screens.

References:

About

A smart personal assistant application with an intent to address the indoor navigation problem and to make the work hours interesting. powered by MazeMap and Api.ai

https://rajagopal28.github.io/Donna/

License:MIT License


Languages

Language:TypeScript 67.4%Language:HTML 27.7%Language:CSS 3.1%Language:JavaScript 1.8%