Skip to content

evagutfel/BTH_campus360_app

Repository files navigation

Campus360

Android CI

Introduction

This app aims to bring a clear overview of BTH to it´s users. It will feature accessible routes as well as the quickest possible route the user can take to get from one place to another. This app is made for everyone, from visitors to students, it´s function is appealing to anyone who finds themselves lost in BTH.

Home page UI Search for room UI

Architecture Overview

The app has a Model-View-ViewModel (MVVM) pattern to keep the code organized:

  • View (User interface): Everything seen on the screen (how the app looks and reacts to changes). Composed of Jetpack Compose functions (e.g., PathScreen, HomeScreen). These components are responsible for the UI display and capturing user input.
  • ViewModel (bridge): It connects the screen with the data. It remembers which rooms were selected so the information stays ready when changing screens. It receives navigation parameters (start and destination rooms) from the PathScreen via the setRooms() method and preserves this state for the NavigationScreen.
  • Model (data and logic): It contains the list of all rooms and the logic to find them. The InMemoryRoomDao handles room searching and data retrieval, managing the Room and POI domain objects.

Architecture Diagram

User Stories

# As a I want/need to so that Acceptance Criteria
US1 As a user, I want to search for a lecture room by name or number, so that I can arrive on time without confusion. Return the building letter and pin on a map
US1 As a user, I want to search for a lecture room by name or number, so that I can arrive on time without confusion. Return the building letter and pin on a map
US2 As a user, I want to filter locations based on their type, so that I have an overview of all meeting rooms. Have attributes for all rooms, filter based on that in a list
US3 As a user, I want visual navigation instructions for a location, so that I know in which direction I have to go. Use icons (arrows, clocks, etc) instead of language
US4 As a user, I want to explore points of interest like the library or cafeteria so that I can experience campus life. Have “POI” attribute that is a popular meeting place (Starbucks machine, EXPEN, etc)
US5 As a user, I want to search for all rooms on a floor so that I can familiarise myself with all the rooms After specifying a building, view all its floors and lecture halls floor by floor
US6 As a user, I want to be able to search with different arguments so that I can specify if I’m wheelchair-bound, in bad weather The path taken needs to take the arguments into account
US7 As a user, I want to know where the lifts and ramps are so that I can navigate BTH if I have an ability impairment Use icons and detailed descriptions
US8 As a user, I want to know the capacity of the place I want to arrive at so that I can distinguish visually if I am in the correct location upon arrival Have a categorical (S,M,L) representation of capacity for all rooms

Development Status

Track the development status of the app.

Use [ ] for not implemented [x] for implemented.

[x] US1

[x] US2

[x] US3 poorly but it is implemented

[x] US4

[x] US5

[x] US6

[ ] US7

[x] US8

How to Use

Build

Open the project in Android studio. Go to Build -> Generate App Bundles or APKs -> Generate APKs. Android Studio will compile the app and tell you where the APK file is located (usually in app/build/outputs/apk/debug). Now you can install the APK on your Android device.

Test

./gradlew test --rerun-tasks

Running UI tests requires API33 or below, otherwise conflicts occur within, so UI tests are being run on a PIXEL5, API33

Run

  1. Start an Android emulator.
  2. Click the green "Run" arrow at the top of Android Studio.
  3. Select the target device.
  4. The app will now compile and be launched automatically on the selected device.

License

This project is licensed under the MIT License – see the LICENSE file for details.

About

During my Erasmus in Sweden, in Blekinge Institute of Technology (BTH), I had a course: Mobile Application Development. It's main project was to develop a mobile app to navigate through BTH, "Campus 360". This is what my group and I developed (Eva Moore, Linus Andersson and me). [This is not the original repository, it belonged to the proffesor]

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages