A VikeLabs project meant for navigating around UVic

Related tags

Miscellaneous maps
Overview

Build and Test

maps

This is a VikeLabs project meant for navigating around UVic. It's structured as a multi-module gradle project with an api server and a web app (in api and app respectively). You can find out more about the details of those modules in their respective README.md's.

Running

You can run the backend with gradlew api:run and the frontend with gradlew app:run. This should install dependencies you do not already have, so it may take a while first time! Sadly, due to issues with halting (darn Turing), we cannot run both in a single gradle command. gradlew run will run the backend api and wait for it to end (which it doesn't) then run the frontend app.

Testing

You can test everything at once with gradlew test. Or individual projects with gradlew app:test or gradlew api:test

Building

You can build both projects (producing an optimized app and a jar file) with gradlew build. Similar to testing and running, you can build the individual projects with gradlew app:build and gradlew api:build

Deploying

Two Dockerfiles (api.Dockerfile and app.Dockerfile) are tested every push. They run optimized builds and as a result are the best way to deploy the app in a long-running environment.

Some notes on gradle

You can of course run everything here without gradle, you may want to directly run npm commands for example. I would recommend against it as there is a carefully curated dependency graph for tasks with gradle whereas for npm you are on your own. As a result of this if any mentioned gradle commands fail for any reason beyond broken code, that is a bug and should be filed as such

Comments
  • Openstreetmaps does not have abbrevated names for buildings

    Openstreetmaps does not have abbrevated names for buildings

    Students are often given class names such as DTB instead of David turpin building. Opensreet maps has an abbr_name tag for buildings yet for most uvic buildings these are unfilled. This is a tracking issue as I add the data to openstreetmaps (help is appreciated!). all the info needed is here https://www.uvic.ca/search/maps-buildings/index.php#ipn-building-directory. I'm going alphabetically:

    • [x] A
    • [x] B
    • [x] C
    • [x] D
    • [x] E
    • [x] F
    • [x] G
    • [x] H
    • [x] I
    • [x] J
    • [x] K
    • [x] L
    • [x] M
    • [x] N
    • [x] O
    • [x] P
    • [x] Q
    • [x] R
    • [x] S
    • [x] T
    • [x] U
    • [x] V
    • [x] W
    • [x] X
    • [x] Y
    • [x] Z
    help wanted 
    opened by MarcusDunn 4
  • style searchbar

    style searchbar

    currently the search bar is the default HTML text input. Someone with a better eye than myself should design and implement a mobile-friendly search box.

    feature frontend 
    opened by MarcusDunn 2
  • gave up and removed routing. :(

    gave up and removed routing. :(

    Removed routing. It was very complex to implement and there was little to no support for routing by foot. If we think this is a super important feature I can take another stab at it, but I think it's more important to have stuff like "wing support" to navigate to individual wings of buildings and eventually rooms.

    opened by MarcusDunn 1
  • Database

    Database

    In order to allow for more dynamic queries we needed to move away from the overpass API, this PR adds a Postgres database that is populated with UVIC's OpenStreetMap data using osm2pgsql.

    This has an added complexity cost as the project is now considerably more difficult to build - docker is more or less a necessity. I've updated the documentation to hopefully alleviate this.

    The main actual code change is removing the network-based overpass queries and their respective caches and replacing it with a database-based data provider. I also reworked how to swagger component naming is generated in order to avoid naming conflicts. (which is why this PR seems to touch a million files).

    Resolves #29

    opened by MarcusDunn 1
  • create a PostGIS database for our area of interest.

    create a PostGIS database for our area of interest.

    currently, we cache a single request to the openstreetmaps query engine, this will not scale well as we add features and need more dynamic queries. We should set up a database containing all the mapping data from around UVic.

    opened by MarcusDunn 1
  • Frontend search

    Frontend search

    Added a very simple connection to the backend for searching, there are some things to do before this should be considered complete.

    • [ ] bundle icons and display on search
    • [ ] show when there were no results found

    As a separate PR we should make the backend search faster. Currently, we hit overpass every time which is a speed disaster.

    opened by MarcusDunn 1
  • Investiage Users being asked location multipule times

    Investiage Users being asked location multipule times

    Currently, if you don't check "remember my decision" we prompt the user every time we try to update their location. We probably don't need to do this. Although we may.

    • [ ] Determine if spamming users is needed.
    • [ ] If not (which I suspect is the case) fix it.
    bug frontend 
    opened by MarcusDunn 0
  • Deal with case when user doesn't allow access to their current location

    Deal with case when user doesn't allow access to their current location

    Right now every time we try to fetch and display the location of the user but access isn't allowed, we get an error every time the interval goes off (every 2 seconds). I think we need to terminate that interval once the error first arises so we don't keep trying to fetch the location

    frontend 
    opened by lbare 0
  • Fix user's current location pin

    Fix user's current location pin

    As of now, I believe a pin is added to the current location of the user every 2 seconds but they accumulate meaning if the user walks across campus they will leave a trail of pins. Maybe each time a pin is added we remove the previous one

    frontend 
    opened by lbare 2
Owner
VikeLabs
We're a group of students building and testing software products at the University of Victoria
VikeLabs
Tutorial For openJDK 11 and AGP 7.0.0+ | Tutorial Multi Library Android in 1 Project | Groovy

jitpack-library-guide For openJDK 11 and AGP 7.0.0 + Please read every single note for detail Tutorial Click Here Kotlin DSL Click Here Repository for

Faisal Amir 7 Dec 10, 2022
File Picker for KMP project. Works for Android/JVM/Web.

KFilePicker File Picker for KMP project. Works for Android/JVM/Web. Setup Add Jitpack maven { url

Tlaster 7 Nov 11, 2022
This project is an investigation of Hystrix in the Kotlin language

from-paris-to-berlin-circuit-breaker Technologies used This project is an investigation of Circuit-Breakers in the Kotlin language ?? ?? ?? ?? ?? ?? U

João Filipe Sabino Esperancinha 3 Dec 8, 2022
Using Resilience4J, this is a Demo project which uses a Library as background and manages all its requests.

Using Resilience4J, this is a Demo project which uses a Library as background and manages all its requests. This library can rent books online and the usage rate is extremely high. There is a reactive way to access, which is the one normally used, but sometimes, the system needs a bit of help from an old machine running a non-reactive MVC Spring application using JPA. Let's make this in Kotlin and find the best solution!

João Filipe Sabino Esperancinha 2 Jan 10, 2022
Android App development internship project to create woman home screen for clothing company The Swastika.

Android App development internship project to create woman home screen for clothing company The Swastika.

Shradha Suryawanshi 2 Jun 12, 2022
A template project that builds a SDL application programmed in Zig to Android from scratch

A template project that builds a SDL application programmed in Zig to Android from scratch

Matheus Lessa 11 Jul 19, 2022
ArduinoJava - A project that uses the JSSC library

ArduinoJava este es un proyecto que utiliza la libreria JSSC para connectarse al

null 0 Jan 24, 2022
Starter-Android-Library - Starter Android Library is an Android Project with Modular Architecture.

Starter-Android-Library - Starter Android Library is an Android Project with Modular Architecture.

OpenBytes 1 Feb 18, 2022
vShell (Virtual Shell) — a successor of Termux project which provides an alternate implementation of the Linux terminal emulator for Android OS

vShell (Virtual Shell) — a successor of Termux project which provides an alternate implementation of the Linux terminal emulator for Android OS

null 2 Feb 1, 2022
An Android project to showcase a multi-brand design system.

Table of contents Introduction Structure Architecture Implementation Testing Roadmap Introduction This is an Android showcase project based on Pokémon

Guilherme de Sá Christovão 3 Mar 10, 2022
UpSchool Capstone Project - Course selling application with MVVM, LiveData, DataBinding, Retrofit, Room Database, Navigation Component, Adapter, Firebase Auth, Picasso, Lottie

UpSchool Capstone Project - Course selling application with MVVM (Model, View, ViewModel), LiveData, DataBinding, Retrofit, Room Database, Navigation Component(NavGraph, BottomNav), Adapter, Firebase Auth, Picasso, Lottie

Sena Çelik 5 Dec 21, 2022
A simple NoSQL client for Android. Meant as a document store using key/value pairs and some rudimentary querying. Useful for avoiding the hassle of SQL code.

SimpleNoSQL A simple NoSQL client for Android. If you ever wanted to just save some data but didn't really want to worry about where it was going to b

Colin Miller 389 Sep 25, 2022
A simple NoSQL client for Android. Meant as a document store using key/value pairs and some rudimentary querying. Useful for avoiding the hassle of SQL code.

SimpleNoSQL A simple NoSQL client for Android. If you ever wanted to just save some data but didn't really want to worry about where it was going to b

Colin Miller 389 Sep 25, 2022
Gradle-i18n-plugin is meant for generating a JSON file with internationalized texts, based on a Google Sheet.

Gradle-i18n-plugin Gradle-i18n-plugin is meant for generating a JSON file with internationalized texts, based on a Google Sheet. The plugin assumes th

Acto ApS 2 Oct 11, 2021
An Android App meant to use NFC technology to communicate with and emulate RFID tags

An Android App meant to use NFC technology to communicate with and emulate RFID tags. Built by Niklaas Cotta & Jordan Whiteley, for CIS 433 WI22.

Niklaas Cotta 0 Jan 29, 2022
An android application meant for providing source code for medium blog.

ShoppingList-Widget In this tutorial-guide we will be exploring the use of Android-App Widgets and how can we parallelly use them with databases like

Siddharth Singh 4 Oct 16, 2022
Simple metrics exporter HTTP server for Prometheus meant to be used for private Discord servers.

Discord Prometheus Exporter Simple metrics exporter HTTP server for Prometheus meant to be used for private Discord servers. Thanks to the creator of

Subham 2 Nov 29, 2022
FireApp is an open-source project that is built around Firebase Products, especially for learning purposes

FireApp is an open-source project that is built around Firebase Products, especially for learning purposes. This application is written entirely in Kotlin using Android Architecture Components and MVVM architecture pattern. You'll see in the code of this repo, how Firebase Products are working together.

Alex 45 Dec 18, 2022
Android Studio project wrapper around the Elixir TodoApp Desktop app to run on Android including the Erlang runtime

TodoApp Android: An Android Sample App This Android Studio project wraps the Desktop Sample App to run on an Android phone. How to build & run Install

elixir-desktop 78 Dec 10, 2022
A lightweight wrapper around SQLiteOpenHelper which introduces reactive stream semantics to SQL operations.

SQL Brite A lightweight wrapper around SupportSQLiteOpenHelper and ContentResolver which introduces reactive stream semantics to queries. Deprecated T

Square 4.6k Jan 5, 2023