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
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.4.1 - 17.06.2024
- Fix redirects to admin and FMD web page
- Fix packaging: Add needed "requests" dependency
- v0.4.0 - 17.06.2024
- Update to lastest FMD app version
- Update static FMD html/js/css files
- Modernize project setup
- 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 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
Hashes for django_fmd-0.4.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6d73bad1b812d292d0c22a447e987c9addcd94be51f1bdaa84dd9505b1f0f5a8 |
|
MD5 | c33126fc0586398be75cab48a657589f |
|
BLAKE2b-256 | d4828cf98089e97e0b9eeb74785dba1c2d856b726b1f2d5ad063791de8b508d0 |