Skip to content

Android app for displaying positions of teammates on the map.

License

Notifications You must be signed in to change notification settings

jakubsolecki/Team-Locator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Table of contents:

Team-Locator

Team-Locator is a mobile app developed using Python Kivy framework. The app improves coordination of outdoor games by displaying participants' locations.
There is only android version, no iOS one, sorry.

App is compiled via Buildozer and is using a legacy Mapview library directly imported into project.

Usage

Run python server.py on a computer connected to the network, that has port 5050 opened. Read more in the Server section.

Mobile app

Install teamlocator.apk, then launch app. Allow it to access device's location - without it You won't be able to use Team-Locator.

Setup screen

IP address - IP address of the server.

Nickname - username that will be displayed on the map.

Team / Host code - token for team obtained from Host or a special Host token for game supervisor.

Users

There are 2 types of users:

Host

It is advised for the Host to have access to the server (eg. using Thermux ssh).
Host is the supervisor of the game. Host manages the game, creates required number of teams (1-10), starts/ends game and provides tokens to teams. This person is also the only one able to see all players on the map while having the ability to share own location with everyone or remain transparent.

Quick guide

  1. To become host, one must provide special token obtained form server's console after startup. The default token is /00/ and is hardcoded in the server.py (You are free to change it any time). After filling all inputs the Host can use Host Game button.
    IMPORTANT: If pressing Connect/Host Game buttons doesn't navigate you to another screen it means you couldn't connect to the server. Whether IP and Password is incorrect or port 5050 is closed on server's computer.

  2. Now you can choose whether You want to be visible (Host widoczny) and adjust number of teams. Colors of teams' names correspond to their pins on map. It is worth noting that the Host is always black.

  3. Now click connect.

  4. After landing on the map go to Codes (top left) and provide one token for each team. Each game generates new tokens.

  5. To finish the game go to the Stop (top right). You will be asked to confirm. After Yes, the Host and all players will be redirected to the main screen.

Player

Players can only see their teammates on map. After receiving token from Host just click Connect Game.

Server

Server is the core and allows mobile devices with Team-Locator to exchange data about location. Server (server.py) must be running on a computer with an internet connection and port 5050 opened for global traffic. (Therefore, we recommend running it on some kind of VM server - we used DigitalOcean's droplet with Linux). Script can be run like any Python script, because it relies only on the standard library. Remeber, that you can always access these kind of servers from your phone, using ssh (Thermux is awesome for that!)

Run server: python server.py (be sure to use python 3.x).
Custom host code: python server.py abcd (then host code is "abcd").
Stop server: Ctrl + C in server's console.

Server can handle multpile games but not at the same time. You can run it once and forget about it. Everything else can be configured from app's level.

Demo

Poor quality of gifs is an outcome of very large video files. App itself is very lightweight.

Game supervisor (aka host/admin) functionalities:

Using app as a regular player:

Host role is permament in the game:

You don't stop being game supervisor after leaving and reentering the game.

Contributors:


Jakub Solecki


Patryk Skupień

About

Android app for displaying positions of teammates on the map.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages