User Manual - PJ-ODS-2021/P2P-Task GitHub Wiki
This guide provides general instructions for users on how to install and use our application.
- There is currently an issue with the ready-made release apk.
- The web version is currently very slow (almost unusable) because our encryption library is very slow in the web.
Please Note: If you don't want to go through the hassle of installation, you can download ready-made binaries from the releases and install them on the appropriate devices. The most recent version of the web app is always reachable here.
Otherwise, follow the instruction on https://flutter.dev/docs/get-started/install to install flutter.
Clone this repository and open a terminal window in the root directory:
- Run
git submodule init && git submodule update
(this project uses the lww_crdt library as a submodule) - Run
flutter pub get
in the terminal to load all dependencies - Run
flutter pub run build_runner build
in the terminal to autogenerate some relevant files - Run
flutter config --enable-windows-desktop
,flutter config --enable-macos-desktop
orflutter config --enable-linux-desktop
to ensure that support for your desktop OS of choice is enabled (also ensure to follow the requirements for your choice explained here) - Run
flutter doctor
to check if everything works as expected
You should now be able to run the example in your IDE (refer to https://flutter.dev/docs/get-started/editor for instructions on code editor setup).
To see which devices are currently available to run the application use the flutter devices
command. This command lists devices where the second column contains the keyword for using the -d
argument.
If you want to use simulators you can follow the instructions of the flutter emulators
command.
To run the app on one of the listed devices, use the command flutter run -d <device_keyword>
. For Windows, for example, it would be flutter run -d windows
.
This section explains every part of the initial user app setup process and their options.
Screen | Description |
---|---|
Database Setup Screen In the database setup screen you have two options. The first one offers you to use either a persistent or in memory storage. The latter one has its data removed after app restarts. Should you choose the former one you can define a path where the data of the app should be stored. |
|
User Setup Screen To provide a more human friendly identifier for other devices you are able to choose a name. In a synchronisation situation this name is displayed on the other devices. |
|
Server Setup Screen By choosing the option yes, the server of the app will be automatically started when the app opens. Thanks to that other devices will be able to connect to this device. If you choose the no option, you will be still able to connect with other devices that have an active server but not vice versa. |
|
Devices Setup Screen In this setup screen you can add other devices you want to be able to sync with. For that to happen click on the provided buttons with the text scan QR code or manually add a device. This action opens the camera or a form to provide the data yourself. All data you need to fill in the field can typically be found on the settings screen of the device you want to connect to. You will still be able to add more device at a later time. |
Here you will find instructions on how to add, edit, delete lists and tasks.
Screen | Description |
---|---|
List Screen The first screen you see after the successful setup from the step before is the list screen. To add a list to this screen click on the round purple button with a white plus in it down below slightly about the bottom bar. |
|
Add List Screen A click on it opens a form where you can put a name for the list. If you are done with that click on the purple button "Create List". |
|
Slideable Options It will lead to a new entry in your list screen which is swipeable by sliding with your finger on the corresponding list tile from right to left. After that, the options for editing and deleting the list. |
|
Task List Screen A click on the list tile from before leads you to the task screen. This is where all your tasks for the corresponding list is appearing. Click on the purple button below to create a new task. |
|
Add Task Screen You now should see the add task form screen. Here you can give the task a title, description and due date. When you did that please click on the purple button with the caption "Create Task" below. |
|
Slideable Options It will lead to a new task in your task screen which is swipeable by sliding with your finger on the corresponding tile from right to left. After that, the options for editing, flagging and deleting is visible. Additionally, the a click on the icon in the upper bar on the right allows you to sort your tasks. |
Here you will find instructions on how to add, connect and remove devices and device locations.
Screen | Description |
---|---|
Devices Screen When you switch to the third tab of the bottom bar, and you didn't yet add a device you will see an empty screen with instructions on how to add a device. Click on the purple button down below. |
|
Add Device Screen You should now see either the feed of your camera or a form for adding a new device. In the former case look at the last screen in this section on how to display a QR code on a device. All fields you can see can typically retrieved from the settings tab of a device. Please fill in the details from a device you want to connect to. |
|
Devices Screen - Device Options When you added a device you should see a tile that contain parts of your provided device details. You can now once click on the yellow icon to make a connect request with the other device or the red bin icon to delete the device. |
|
Devices Screen - Expanded Device When you click on the arrow pointing downwards additional information about the device locations appear. Those are advanced options and in most cases you won't need to handle it yourself. |
|
Devices Screen - Device Location Options Sliding the device location tile from right to left make more options for the location available. Like for the Device you can also connect and delete a device location. Below the slidable tile you find a button for adding more locations. |
|
QR Code Dialog Clicking on the icon on the far right side of the top bar opens a dialog for you. In case your app server is running you will instantly get the QR code displayed. Otherwise you will asked to activate the server or show it without activating the server. Keep in mind that the web version doesn't support the server functionalities because of limitations. The shown QR code is scannable for other devices. |
Some suggestions on how you could test the synchronisation functionality of the app. We assume that you successfully connected at least two devices with each other (for simplicity we will call those devices Device 1 and Device 2). Furthermore, we expect all sync settings to be deactivated and the sync interval set to zero.
- Device 1: Create a list
- Device 2: Pull to refresh in list screen -> Created list from Device 1 should appear
- Device 2: Update the list name
- Device 1: Pull to refresh in list screen -> Updated list from Device 2 should appear
Reuse the available list from Scenario 1 and click on both devices on the list. You should now see a empty task list with instructions on how to add a new task.
- Device 1: Create a task with a name and description
- Device 2: Pull to refresh -> New task created by Device 1 should appear
- Device 1: Update the task by changing the description
- Device 2: Update the task by changing the title
- Device 1: Pull to refresh -> On both devices the updated task with a different title and description should appear
- Problem: After pull to refresh in the task-related screens it won't stop showing the refresh animation
- Solution: Restart the app
- Problem: The app starts with an error (especially the web version)
- Solution: Delete all data by deleting the database or in the web version remove all application data in the browser