A cross plattform project for android and ios to log events offline everywhere and sync them to sensor. Developed with flutter.
A cross plattform project for android and ios to log events offline everywhere and sync them to sensor. Developed with flutter. A short how to use can be found below documentation/README.md
## Minimum Concept
- Config page: Select the collection and get corresponding devices, get all event types. Store all this to a local configuraion.json file.
## Concept
- Config page: Select the collection and get corresponding devices, all event types. Store all this to a local persistent configuraion.
- Add Event Page: Allow selection of a device and adding a new event with all details. Add button adds the event to the staged events. Fields are not cleared but kept as they are.
- Staged Event: Show all entered and not yet uploaded events. Allow modification of all fields here. Alternatively show all events including uploaded once.
- Log page: Allow selection of a device and adding a new event with all details. Add button adds the event to the staged events. Fields are not cleared but kept as they are.
- Staged Event: Show all entered and not yet uploaded events. Allow modification of all fields here.
- Synced Event: Show all uploaded events. Optionally filter by device.
## Questions:
- How to store not uploaded events locally? Dumping jsons to a file?, ObjectBox, SharedPreferences,
## Local Base Data Concept
- The configuration.dart age widget is used to get the online available information for available
devices and event creation.
## Local Data Concept
- The configuration widget is used to get the online available information for available devices and event creation.
- This includes: All collections, All devices part of a selected collection, Event operation types
- This "base data" is required to provide the dropdown menu options on the addevent.dart page.
- This "base data" needs to be stored persistently, so that it is available also offline!
- This "base data" is required to provide the dropdown menu options on the addevent page.
- This "base data" is stored persistently, so that it is also available offline!
## Add Event Page
- Usw Switch for automatic GNSS and Time update.
- Show "now" time button only if GNSS is disabled. This button shall fill the timestamp with the current utc time.
- Add stores the event to a local sql database
- A slide switch activates GNSS locationing. A field shall signal the GNSS status "no fix" or "x m presision". The fields lat, long, elevation and timestamp are updated automatically if GNSS is enabled.
- Input validation is done according sensor.awi.de Free Text: "a-z , A-Z , _ , 0-9 , ,(Comma) , ( , ) , + , - , . , :" -90 => Latitude <=+90-180 => Longitude <= +180 Elevation: any numer
## View & Sync Page
- Events added on the addevent.dart page have to be stored locally persistently. They can be displayed in the view
events widget. Each event has a flag which shows if the event is already exported to sensor.
Shall exported events be displayed here? Slide switch to also show exported events?
- Functionality to export events locally for backup in the field!
- Events added on the addevent page are stored persistently (sql database). They can be displayed in the view
events widget. Each event has a flag which shows if the event is already exported to sensor. A slide switch allowes to show all events?
## Configuration Page
- Switch to select if Mission or Collection based.
...
...
@@ -39,21 +30,9 @@ A cross plattform project for android and ios to log events offline everywhere a
- Button "store Collection devices locally"
- Select a Mission from the new Sensor-Mission-Management to get a set of devices.
- Username und passwort. "Test login on store even if not required here"
- Functionality to export events locally for backup in the field!
## GNSS
- Switch on add event page which activates GNSS locationing. A field shall signal "no fix" or presision in meter.
The fields lat, long, elevation and timestamp are updated automatically if checkbox is checked.
@@ -527,4 +527,5 @@ class _AddEventPageState extends State<AddEvent> {
}
}
//TODO: show an allert dialog to notify the user that the event has been added.
//TODO: The app shall prefill the label with a configurable prefix and optionally a running number. E.g. prefix: (PS122.3-4_) running number: 1 label = PS122.3-4_1