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.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.0.tar.gz (214.2 kB view details)

Uploaded Source

Built Distribution

django_fmd-0.3.0-py3-none-any.whl (250.7 kB view details)

Uploaded Python 3

File details

Details for the file django-fmd-0.3.0.tar.gz.

File metadata

  • Download URL: django-fmd-0.3.0.tar.gz
  • Upload date:
  • Size: 214.2 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.0.tar.gz
Algorithm Hash digest
SHA256 3f37abb95baf8c31ee002fdd92a664f9c39b4482e9018006ba07c245557975df
MD5 e96ac40d487911c2ee0cc04853a4930e
BLAKE2b-256 602751231ceb0c786e64e8fc0c0310a4e9739f7aad7e032d06decd56e309ff04

See more details on using hashes here.

File details

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

File metadata

  • Download URL: django_fmd-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 250.7 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 037ef14461161555d0d842a10038d52a1d8eff012a6ec005bddddff1dbf0ad45
MD5 bf4432edbc3a221517bb0dd457248f6e
BLAKE2b-256 f767ffb1229c83cd89502178d3df83b4f73bd968c66847791e67a5db16093dea

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