🔶 Catch your friends with your phone.
- 👉 Client Explanation
- 👉 Server Explanation
- 👉 Server Deployment
- 👉 Client Deployment
- 👉 ToDo
- 👉 Suggestions & Reports
When starting the APP, the connection to the server is tested immediately and as soon as this fails, an error dialog is displayed. :unlock: Required permissions:
ACCESS_FINE_LOCATION, ACCESS_BACKGROUND_LOCATION, ACCESS_NETWORK_STATE, INTERNET, MANAGE_EXTERNAL_STORAGE, MANAGE_MEDIA
The server is summarized a Flask API, which is communicating with the client. The location data sent by the client is cached for a short time in order to calculate the distance with the other players. Each game is also written to the MongoDB with the players and remains stored until the respective game ends.
The configuration data is stored in the conf.json
-file and can be modified at will. But you should be aware that careless changes can affect the functioning of the server.
When you decided to self host a CatchMe-Service, please follow these points:
🔸 Download MongoDB
-
You can install it at the official website of MongoDB
-
or install PyMongo via pip:
pip3 install pymongo
-
or install MongoDB via the APT-Manager (for linux)
sudo apt-get install mongodb
🔸 Download the repository from github with git and go to directory
sudo apt-get install git
git clone https://github.com/Pulsar7/CatchMe.git
cd CatchMe/backend/Rest-API-Server/
🔸 Install requirements
pip install -r requirements.txt
🔸 Start MongoDB and run server
sudo service mongodb start
python3 rest_api_server.py
The Server should now be reachable on http://localhost:5000. But you can change some configurations in /server/conf/config.json
.
🔹 Download the repository from github with git and go to directory
sudo apt-get install git
git clone https://github.com/Pulsar7/CatchMe.git
cd CatchMe/frontend/Android-APP/
🔹 Install requirements
pip install -r requirements.txt
🔹 Insert the correct API-URL from Server in the config.json
-File
Example (A snippet from the file):
"Server": {
"url": "http://localhost:5000"
},
🔹 Run Client
python3 catchme.py
🔹 Create a package for Android (APK)
git clone https://github.com/kivy/buildozer.git
cd buildozer
sudo python3 setup.py install
buildozer init
buildozer android debug deploy run
- [ ] SHA-256 encryption - all data in database (Server)
- [ ] Improve layout from client
- [ ] Auto reconnecting when losing internet connection (Client)
- [ ] Add docker deployment (Server)
Suggestions or errors are welcome to be 🔗 reported!