Skip to content

Weeks two and three

Unfortunately I missed last weeks blog post so this week I will be catching up on both. Its been over a fortnight since my last post due to me being on holiday for a week, and since then I’ve been working on two different projects.

Last week I worked on fulfilling outstanding tasks on the CLECC research project. CLECC (Creative Learning Enviroments for Compassionate Care) is a web API being developed by iSolutions to be used by health professionals for recording interactions between themselves and patients on hospital wards. The project is late into its development, and my task last week had been to go through and attempt to complete open tasks for the project on Sourcekettle. This week was an interesting experience for me since it required me to interpret and make use of code written by a number of different developers at different times, whilst also requiring me to understand an unfamiliar application’s source code midway through its development. Most of the tasks I completed during this week were usually smaller enhancements to existing features or bug fixes, and I also found several small bugs which I added to the open tasks for the project as I went.

Screenshot from 2015-08-10 09:42:37

Task screen for CLECC project

This week I spent some of my time away from the rest of the web development team, working with Chris Gutteridge on a demonstration project which is intended to be later extended into a more general purpose API. The basic concept was to develop a web application which presents maps of the floor plan for the iSolutions offices in the One Guildhall Square building. The project quickly expanded beyond this when it became apparent there were other team members who were interested in a potential solution for similar problems. For example, Kevin Puplett, another member of the web development team, was interested in a application for displaying current usage of workstations in the undergraduate labs in the Zeplar building. We expanded the project to be essentially an API which could be adapted to different roles, with the aim of initially concentrating on a demo application which could overlay the locations of desks on the fourth floor office of 1GS on a interactive map.

We first needed to produce a collection of datasets which could be used to model the relevant data on the objects we wanted to be able to map in our application, from university sits through to buildings, floors within those buildings, rooms and desks on the floors and ‘resources’ (computers, monitors, etc) which could be associated with desks. The format we used were CSV files, since this was a lightweight data format which we could easily produce initial test data for, but would also be easily expandable in the future. I found later in the project the risks that can be encountered when attempting to produce such datasets by hand, but I was able to fix the problems I had without much issue.

The concept behind the backend code for the application was that for each floor plan which was going to be mapped within the application, the data for that plan would include the longitude and latitude for three known points on building/floor that plan was for, as well as the x and y coordinates of those points within a relative coordinate system. Chris produced a function which would be able to find the longitude and latitude of a given point on the plan where only its x and y coordinates within the relative system are known.

The application itself required a number of libraries to be written ourselves or found online to fufil various tasks it would need to perform. The two libraries I found online or which were suggested to me to use were Papa Parse, a javascript library for interpreting CSV files ( and Leaflet.js (, a javascript and CSS library for embedding interactive maps into applications. Chris wrote a library, asyncset.js, for accessing the CSV datasets themselves and reading them into strings using Ajax, and I wrote the pointlocator.js library which implemented Chris’s point finding function.

Screenshot from 2015-08-10 10:03:09

Example of Leaflet.js taken from the API’s website

The end of the week was spent working to produce a demo that brought together these different libraries and parts of the application after they had all been demonstrated to work independently. This application is intended to be an initial demonstration of the concept for the application, and the code is meant as the basis of what will eventually be a more fully rounded application. Next week I am working on a different project, but hopefully I’ll be able to spend some more time on this application over the summer.

Posted in Uncategorized.

0 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

Some HTML is OK

or, reply to this post via trackback.