Campus Map

This section features everything concerning the indoor positioning and navigation that is planned.

Implementation

In wintersemester 2021/22 this feature is going to be implemented. The position is going to be determined by scanning a QR code via the integrated scanner in the app. Each QR code is stored within a SQL Database and includes attributes such as (id, longitude, latitude, level, color). QR codes will be inserted by uploading an excel file into the repository. Afterwards a CI-job will run through file and check whether it has to update the datebase.

If you are interested in the implementation, lets dive into it with following quicklinks:

  • <Android>

  • <Backend>

  • <iOS>

Functional Requirements

functional requirements of MAPI
CM-1 Map

Priority

high

Status

determined

Involved stakeholders

Development Team

Implemented in

backend 1.0.0 , android 1.0.0, ios 1.0.0

Dependency

CM-2, CM-3, CM-4

Description

The frontend shall display an interactive map of the campus. This map shall consists of building outlines, rooms, doors, stairways, streets, and Points of interests.

Note

Currently only available for O27.

CM-2 Search

Priority

high

Status

determined

Involved stakeholders

Development Team

Implemented in

backend 1.0.0 , android 1.0.0, ios 1.0.0

Dependency

Description

The system shall allow a user to search for rooms, buildings, points-of-interest and nearby points of interest shall be displayed at the top of the list.

CM-3 Points of interests

Priority

high

Status

determined

Involved stakeholders

Development Team

Implemented in

backend 1.0.0 , android 1.0.0, ios 1.0.0

Dependency

Description

By default, all POIs shall be shown on the map. The user shall be able to toggle POI categories in the map settings. Point of interest are: Cateferia lecture halls bus stops toilets

CM-4 Navigation

Priority

high

Status

determined

Involved stakeholders

Development Team

Implemented in

backend 1.0.0 , android 1.0.0, ios 1.0.0

Dependency

CM-4.1, CM-4.2, CM-4.3, CM-4.4

Description

Navigation between a start and a end point

CM-4.1 Positioning

Priority

high

Status

determined

Involved stakeholders

Development Team

Implemented in

Dependency

CM-4.1.1, CM-4.1.2, CM-4.1.3, CM-4.1.4, CM-4.1.5

Description

A user’s device shall be located by scanning a QR Code within the app. A QR Code scanner within the map feature shall be implemented. After scanning the QR Code the longitude, latitude and level will be retrieved from the backend. The backend is communicating with the QR Code database. This attributes will be used to show/draw the location (of the device which scanned the QR Code) on the map within the app.

CM-4.1.1 QR Code Database

Priority

high

Status

determined

Involved stakeholders

Development Team

Implemented in

Dependency

CM-4.1.1.1, CM-4.1.1.2, CM-4.1.1.3

Description

It shall exist a QR Code table which stores following attributes: (id, longitude, latitude, level, color).

CM-4.1.1.1 QR Code spreadsheet software file

Priority

high

Status

determined

Involved stakeholders

Development Team

Implemented in

Dependency

Description

Updates on the QR Codes database will be managed by a spreadsheet software file like Excel. Each QR Codes owns its seperate line with its attributes in seperate colums. We decided to use a spreadsheet software file because QR Codes will be managed by member of the Development Team and therefore saves implementation work. A CI job shall apply all changes after an upload of the spreadsheet software file.

CM-4.1.1.2 CI Job

Priority

high

Status

determined

Involved stakeholders

Development Team

Implemented in

Dependency

Description

After merging the branch with the updated spreadsheet software file to the main branch the CI job shall be triggered. The CI job shall be defined inside a .yml file.

CM-4.1.1.3 Extra Software/Script printing templates for QR Codes

Priority

mid

Status

determined

Involved stakeholders

Development Team

Implemented in

android 1.0.0

Dependency

CM-4.1.4

Description

Implementing a software/script that provides printing templates for the QR Codes. Shall not be implemented in the UniApp itself. Shall communicate via the Backend API with the QR Code database.

CM-4.1.1.3.2 Export to pdf

Priority

mid

Status

determined

Involved stakeholders

Development Team

Implemented in

android 1.0.0

Dependency

Description

An option for printing a range or all templates shall be implemented. (Example: Range 20 - 25 or ALL)

Shall include an export to pdf.

CM-4.1.2 Integrated QR Code Scanner

Priority

high

Status

determined

Involved stakeholders

Development Team

Implemented in

Dependency

Description

A QR Code scanner shall be integraded within the map feature inside the app to read the location.

CM-4.1.3 Open UniApp Ulm links

Priority

high

Status

determined

Involved stakeholders

Development Team

Implemented in

Dependency

Description

When scanning a QR Code not with the integraded QR Code scanner a link within the QR Code shall open the app browser/marketplace on the device. This link is used for marketing purposes and to avoid showing weird stuff to non app users. Every URL has its own parameter which contains the information about the QR Code. Will be continued.

CM-4.1.4 Backend API

Priority

high

Status

determined

Involved stakeholders

Development Team

Implemented in

Dependency

Description

The app shall not be allowed to communicate directly with the QR Code database therefore this backend API shall be implemented to take over the communication. This backend API is only allowed to read data of the QR Code database.

CM-4.2 Draw route path in map

Priority

high

Status

determined

Involved stakeholders

Development Team

Implemented in

backend VERSIONnr. , android VERSIONnr. , ios VERSIONnr.

Dependency

CM-4.2.1, CM-4.3.1

Description

Routes shall be drawn on the map from start to end.

If the route continues on an other level, the route is drawn until the stair/ elevator and continues on the other level. TODO

Maybe the distance between these two points. Routes shall be separated into smaller turn-by-turn navigation steps.

CM-4.3.1 Multi-level support

Priority

high

Status

determined

Involved stakeholders

Development Team

Implemented in

backend VERSIONnr.

Dependency

Description

The routing shall reduce the number of level changes. Therefore it must consider the passages between the different crosses of buildings.

CM-4.3.2 Basic Routing Information

Priority

high

Status

determined

Involved stakeholders

Development Team

Implemented in

backend VERSIONnr.

Dependency

Description

The routing information like which building has passages to other buildings and on which level these shall be stored in an (at least) semi-structured file.

CM-4.3.3 Private Routes and Level prioritization

Priority

high

Status

determined

Involved stakeholders

Development Team

Implemented in

backend VERSIONnr.

Dependency

Description

Level 2 shall be prioritized level for moving of general users. This shall reduce the traffic in levels where offices of institutes are located.

CM-4.4 Handicapped People

Priority

mid

Status

determined

Involved stakeholders

Development Team

Implemented in

backend VERSIONnr. , android VERSIONnr. , ios VERSIONnr.

Dependency

CM-4.4.1, CM-4.4.2

Description

Handicapped people like wheel chair users are not able to use or prefer routes without stairs. Therefore, the routing shall provide an option for them to prioritize and calculate routes accordingly.

CM-4.4.1 Entrances for handicapped people

Priority

mid

Status

determined

Involved stakeholders

Development Team

Implemented in

backend VERSIONnr.

Dependency

Motivation/Reason

As a user I want to select certain types of entrances, so that I can exclude entrances which I would have problems using, for example if I’m not good at taking stairs.

Description

Every entrance shall be categorized based on it’s accessability (autom. door, leveled, other - for example access by using stairs). The user shall be able to exclude types of entrances.

CM-4.4.2 Elevator prioritization

Priority

mid

Status

determined

Involved stakeholders

Development Team*

Implemented in

backend VERSIONnr.

Dependency

Motivation/Reason

As a user I want to be guided to elevators, so that I can avoid taking stairs.

Description

The user shall be able to select whether he wants to switch levels using stairs or an elevator. This shall already be taken into consideration during routing.

CM-5 Android 3D map

Priority

low

Status

determined

Involved stakeholders

Development Team

Implemented in

android 1.0.0

Dependency

Description

Room labels are elevated and given a line to the corresponding room. The labels become invisible at a small zoom level or high map angles. Labels on the map should be in the rooms and not leave them (e.g. when moving the view of the map).