Technical Details of the Application

Product Requirements

An organisation will be able to create an account with AtRoom. The account registered with AtRoom will be created with an email address associated with the organisation, and a password. The account will have the organisation's billing information associated with it to pay AtRoom's monthly fees.

Users of AtRoom can create an account to view maps that are not accessible to the general public i.e., maps belonging to a private organisation. Users who expect to use AtRoom consistently can sign up using an email associated with the organisation and a password. Guests to an organisation can also access the organisation's private maps: This can be done via a QR code provided to them by the organisation. Users trying to access a public map, i.e., a map associated with a library, university etc., will not require an account to view the map, and can access it through a link provided by the organisation.

AtRoom can accept floor plan images in an accepted format (e.g., jpg, png, pdf) which can then be converted into an in-house designed structure for graph representation. Once organisations have uploaded a suitable floor plan and gathered the appropriate geographical data, the website will provide a responsive "drag-and-drop" type feature that enables the organisation to fine-tune the geographical representation of the requested building on a map. While many organisations may only have one building, they wish to be represented on AtRoom, the website will allow organisations to upload geographical data and images for multiple buildings.

Furthermore, it is the organisation's responsibility to provide timely and accurate information about the internal structure and layout of their buildings. In the context of AtRoom, this requires organisations to manually edit the automatically generated graph nodes corresponding to rooms, doors, staircases etc., and confirm the correctness of these. Only once these steps have been completed can AtRoom generate paths requested by end-users.

End users of AtRoom expect to be directed from one location to another in the same building, possibly spanning multiple floors. After a path to the target location has been identified, the website will display the path generated on a visual map, provide step-by-step instructions on how to reach the target location, and provide the users with the ability to revisit steps if necessary. Additionally, the website will cater to the accessibility requirements of all end-users by allowing them to declare any accessibility requirements and options. An example of this would be a wheelchair user requesting that staircases or tiered hallways are not included in the paths generated for them.

System Architecture, Technologies, and Associated Limitations

AtRoom is a website and therefore utilises the key technologies of web development, namely HTML, CSS, and JavaScript 1. The website's user interface is implemented with Vercel's Next JS 2, an open-source framework to simplify the process of building and hosting web applications. In terms of storage facilities, AtRoom utilises Google's Firebase, a cloud-based database 3 that allows for real-time synchronisation of data between users. Firebase is well maintained and whilst very easy to use, it is still powerful enough to meet AtRoom's storage requirements. As always, technology is never perfect and as such, there are risks involved in taking advantage of external tools. If Vercel or Google were to suffer a server outage, this would mean that AtRoom would be unable to function as normal due to the lack of storage access or even hosting issues, which would render AtRoom unusable. Furthermore, if either service's data were to be breached, this would have a direct consequence on AtRoom for two different scenarios: Firstly, end-user data such as email addresses and passwords could be compromised. Secondly, as organisations have the option to keep their floorplans private and only accessible to selected visitors, a Firebase data breach may result in these plans reaching those that were not intended to see it.

AtRoom utilises machine learning to automatically generate maps from the floorplans uploaded by organisations. Due to the nature of machine learning, issues with the automatically generated maps are to be expected from time-to-time: Machine learning can have detection issues and fail to accurately detect structures such as doors and walls. Unfortunately, machine learning cannot label the rooms for the user and there is no way to know if a room that has been detected is disability friendly, a computer room, a lift, etc. If the organisation is not satisfied with the automatically generated map, they can also create the map themselves on AtRoom using their floor plan as a base. Pathfinding with AtRoom is handled by algorithms we have implemented, allowing users to find a location in a building using the fastest path possible from their starting point to their target location. However, the number of nodes on a floor plan may affect the algorithm's performance: if a map contains tens of thousands of nodes the algorithm may take time to process it which may result in a slightly decreased performance when generating a route from node to node. AtRoom is also not responsible for updating the map if changes need to be made, e.g., if a lift breaks down or if a toilet is temporarily out of order. This applies to any other issue that may cause users to be directed on a path that is unusable.


  1. HTML, CSS, and JavaScript: HTML provides the structure of a website, CSS changes its appearance and JavaScript makes the website more interactive

  2. NextJS: a framework we are using to build our website

  3. Cloud-based database: the database is stored and managed on an external server