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:
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).