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.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.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3457188d45848745bee993e737cf68e6ff5c359683468fd3af1a24a5e53a6845 |
|
MD5 | 20d0a4d464028c39fe87f43d5912d3f2 |
|
BLAKE2b-256 | e7764896240ee8dc5eb62ed788c29bef6b21d7846f89ece2242f7f618dccbb66 |