Server for 'Find My Device' android app, implemented in Django/Python
Project description
Django Find My Device
Find My Device client and server implemented in Python using Django. Usable for the Andorid App FindMyDevice by Nnulide:
Note: For command notifications, you also need to install a https://unifiedpush.org/ app like "ntfy":
Django "Find My Device" server for YunoHost
State
Server implementation
What worked:
- App can register the device
- App can send a new location
- App can delete all server data by unregister the device
- The Web page can fetch the location of a device
- Paginate between locations in Web page
- Push notification of commands
Server TODOs:
- Pictures
Client implementation
See demo: https://gitlab.com/jedie/django-find-my-device/-/blob/main/fmd_client_demo.py
What worked:
- Register on server
- Send location to server
- Get location from server
- Delete device on server
Client implementation TODOs:
- A usable CLI
- notification
- Pictures
Start hacking:
~$ git clone https://gitlab.com/jedie/django-find-my-device.git
~$ cd django-find-my-device
~/django-find-my-device$ ./devshell.py
...
(findmydevice) run_testserver
credits
The FindMyDevice concept and the App/Web pages credits goes to Nnulide the creator of the app FindMyDevice.
Currently, we store a copy of html/js/css etc. files from findmydeviceserver/web/ (GNU GPLv3) into our project repository here: django-find-my-device/findmydevice/web/ with the update_fmdserver_files.sh script.
Some external files are added to this git repository, e.g.:
crypto-js
(MIT License) - https://github.com/brix/crypto-jsJSEncrypt
(MIT License) - https://github.com/travist/jsencryptLeaflet
(BSD 2-Clause "Simplified" License) - http://leafletjs.com - https://github.com/Leaflet/Leaflettoastedjs
(MIT License) - https://github.com/shakee93/toastedjs
versions
- dev
- TBC
- v0.3.1 - 10.08.2022
- Bugfix static files for YunoHost
- v0.3.0 - 10.08.2022
- WIP: FMD python client (TODO: Add a CLI)
- Replace the device
UUID
with a short random string - Include external JS/CSS files
- v0.2.0 - 19.07.2022
- Store User-Agent in Device and LocationData
- Implement command push notifications
- v0.1.3 - 12.07.2022
- Remove "@Nulide FMDServer" from index.html
- Lower 'No "IDT"' error log.
- v0.1.2 - 12.07.2022
- Enhance Device change list: LocationData count + last update info and LocationData filter
- Add login page for anonymous users
- v0.1.1 - 12.07.2022
- Fix pagination on FMD web page.
- Deny store locations too often (by
settings.FMD_MIN_LOCATION_DATE_RANGE_SEC
- default: 30sec.) - Display device date in admin in human-readable format.
- Allow
location
delete in admin ifDEBUG
mode is on. - More tolerant
/requestAccess
view. - Enhance
TracingMiddleware
for debugging.
- v0.1.0 - 12.07.2022
- Serve fmd page "index.html" with own view and only for authenticated users
- Enhance Django Admin
- Add optional "name" for Devices (Only for django admin)
- v0.0.4 - 11.07.2022
- Bugfix
logic.js
requests, if installed not in root URL. - Bugfix location view from
logic.js
and undefined variable.
- Bugfix
- v0.0.3 - 11.07.2022
- Bugfix store location because of too large
raw_date
field value
- Bugfix store location because of too large
- v0.0.2 - 11.07.2022
- Support Python 3.7 (for current YunoHost version)
- Setup Gitlab CI pipeline
- Update README
- v0.0.1 - 05.07.2022
- init project
- App can register the device
- App can send a new location
- App can delete all server data from the device
- The Web page can fetch the location of a devi
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file django-fmd-0.3.1.tar.gz
.
File metadata
- Download URL: django-fmd-0.3.1.tar.gz
- Upload date:
- Size: 214.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89621bdbed70a09278b4011b759ee29a4e1db5434f0cb482648ff68acae09c9f |
|
MD5 | 686d6e664be33bcc21d5d4e47f152e4c |
|
BLAKE2b-256 | 9b19dee6fdb21c237f439a042865b8328827b726370a3c122be6578da4850d3c |
File details
Details for the file django_fmd-0.3.1-py3-none-any.whl
.
File metadata
- Download URL: django_fmd-0.3.1-py3-none-any.whl
- Upload date:
- Size: 250.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 76f62cb4972d2ef52721b792c9eca70ad6e9daf4f64d64938d6089e81ca473cd |
|
MD5 | aa263fc87e6a2f244f8c8a54d15889a6 |
|
BLAKE2b-256 | d1788694ffc3cb6131640f73755f4ccac3842e030c6027857c923651d1fc1e7c |