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

e.g.:

~/django-find-my-device$ ./manage.py fmd --get-location --device-id 2gvp8d --password your-password

Start hacking:

~$ git clone https://gitlab.com/jedie/django-find-my-device.git
~$ cd django-find-my-device
~/django-find-my-device$ ./manage.py
...
(findmydevice) run_dev_server

There is also a docker dev. setup, e.g.:

~/django-find-my-device$ make up

Notes:

  • The app will not accept self-signed certificates! So you need to use non-https URLs for testing.
  • Django dev server and docker compose will bind to 0.0.0.0:8000 by default! So it's accessible from other devices in your network!

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:

This is done by update_fmdserver_files.sh script.

versions

  • dev
    • TBC
  • v0.3.2 - 10.08.2022
    • Bugfix to small database fields
    • Test project auto login only for /admin/ requests
  • 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.4.0.tar.gz (1.5 MB view details)

Uploaded Source

Built Distribution

django_fmd-0.4.0-py3-none-any.whl (1.6 MB view details)

Uploaded Python 3

File details

Details for the file django_fmd-0.4.0.tar.gz.

File metadata

  • Download URL: django_fmd-0.4.0.tar.gz
  • Upload date:
  • Size: 1.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.11.9

File hashes

Hashes for django_fmd-0.4.0.tar.gz
Algorithm Hash digest
SHA256 72948d4913918df0553ea05d1cef4f89f0295f1966fc78b26fad209daf7ba0b7
MD5 3b55ac7cb0cd58a83e0ef5c397b73e06
BLAKE2b-256 ed6cbf63ef3b4ea3b6732465f30af8547905a60260e2a66e517106658b368531

See more details on using hashes here.

Provenance

File details

Details for the file django_fmd-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: django_fmd-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.11.9

File hashes

Hashes for django_fmd-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3457188d45848745bee993e737cf68e6ff5c359683468fd3af1a24a5e53a6845
MD5 20d0a4d464028c39fe87f43d5912d3f2
BLAKE2b-256 e7764896240ee8dc5eb62ed788c29bef6b21d7846f89ece2242f7f618dccbb66

See more details on using hashes here.

Provenance

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