Project overview - donovantc/bluxpert GitHub Wiki
bluXpert is a project I did in my BSc IT Hons degree in 2010. Here is an overview of the project:
bluXpert is a mobile expert discovery application that aims at allowing individuals to discover experts within an organization or at a particular event. These experts vary according to the situation or organization but essentially, they are individuals who possess certain skills or specialties. bluXpert makes use of Bluetooth communication technology on mobile devices in order to not inconvenience the user.
To achieve expert discovery, social network analysis is used to analyse the social graphs of a user and the social graphs of those who are in proximity of that user. This allows us to find a trusted path to individuals who can provide useful information or skills for the user.
##Technical overview
bluXpert provides a mobile application that allows employees to create their profiles which includes defining their specialties as well as their desired specialties. The mobile application is developed in J2ME which enables it to be compatible with most devices as most devices support JAVA mobile applications. The Bluetooth system will start on the mobile device which will constantly monitor which employees are within in the current user’s proximity without interrupting the user unless an important person is identified in the proximity. Once a friendship is established between the user and another user on the path to an expert, the path will change and the user will move closer to the expert and eventually reach them.
Most of the processing is handled by the web services in the cloud, of which there is three, UserProfileService, GraphAnalysisService, and ReportingService. The UserProfileService is a RESTful web service which allows for a more seamless communication to occur between the bluXpert mobile application and the UserProfileService, due to the fact that RESTful web services are based on the Web architecture and make full use of the HTTP protocol which eliminates the use of bulky SOAP messages that are exchanged between WCF (Windows Communication Foundation) web services. The GraphAnalysisService performs the social network analysis such as determining the betweenness as well as the trust level of users. The ReportingService provides the administrator desktop application with the ability to view reports based on the connections that have been established in the organisation, as well as reports pertaining to the specialities and which are most desired and available. Both the GraphAnalysisService and the ReportingService are WCF web services which allowed them to be integrated easily with the UserProfileService and the desktop client application.
The desktop client application is developed in WPF (Windows Presentation Foundation) and the displaying of the social graphs was achieved using NetworkVisualiser library. The desktop application can only be used by the administrator and does not affect any of the user’s mobile applications since the desktop application is merely a presentation of the results that are obtained based on the systems usage.