Skip to main content

Server for 'Find My Device' android app, implemented in Django/Python

Project description

Django Find My Device

django-fmd @ PyPi Python Versions License GPL V3+

Find My Device client and server implemented in Python using Django. Usable for the Andorid App FindMyDevice by Nnulide:

Get FindMyDevice on F-Droid

Note: For command notifications, you also need to install a https://unifiedpush.org/ app like "ntfy":

Get ntfy on F-Droid

Django "Find My Device" server for YunoHost

Integration level Working status Maintenance status Install django-fmd with 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.:

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 if DEBUG 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.
  • v0.0.3 - 11.07.2022
    • Bugfix store location because of too large raw_date field value
  • 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-fmd-0.3.1.tar.gz (214.3 kB view details)

Uploaded Source

Built Distribution

django_fmd-0.3.1-py3-none-any.whl (250.8 kB view details)

Uploaded Python 3

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

Hashes for django-fmd-0.3.1.tar.gz
Algorithm Hash digest
SHA256 89621bdbed70a09278b4011b759ee29a4e1db5434f0cb482648ff68acae09c9f
MD5 686d6e664be33bcc21d5d4e47f152e4c
BLAKE2b-256 9b19dee6fdb21c237f439a042865b8328827b726370a3c122be6578da4850d3c

See more details on using hashes here.

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

Hashes for django_fmd-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 76f62cb4972d2ef52721b792c9eca70ad6e9daf4f64d64938d6089e81ca473cd
MD5 aa263fc87e6a2f244f8c8a54d15889a6
BLAKE2b-256 d1788694ffc3cb6131640f73755f4ccac3842e030c6027857c923651d1fc1e7c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page