Git Product home page Git Product logo

lucy-web's Introduction

Invasive Mussels BC

This API currently supports the Invasives Mussels BC iOS app only. A new InvasivesBC inventory and database for the creation, treatment, and report on BC Invasive plants and animals can be found here.

Introduction

Invasive species are non-native plants and animals whose introduction and spread in British Columbia cause significant economic, social or environmental damage. This application tracks the observation, treatment, and monitoring of invasive Quagga and Zebra mussels in the Province of British Columbia. This project is part of the Species and Ecosystems Information System Modernization (SEISM) program.

Table of Contents

  1. Audience
  2. Getting Help or Reporting an Issue
  3. How to Contribute
  4. Architecture
  5. Project Structure
  6. Documentation
  7. Requirements
  8. Setup Instructions
  9. Running the Application
  10. License

Audience

This API is intended to be used by the Inspect iOS app where Inspection Officers and Admins can submit Shifts and Watercraft Inspections. Users with a valid IDIR can login to the Inspect iOS app, but only users with the following roles can access and submit data:

  • inspectAppOfficer
  • inspectAppAdmin
  • admin

Getting Help or Reporting an Issue

To report bugs/issues/features requests, please file an issue or contact the Sustainment Team.

How to Contribute

If you would like to contribute, please see our contributing guidelines.

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

Architecture

This application uses PostgreSQL (with PostGIS) and TypeORM. Containers are built using Jenkins pipelines and Docker. Our environments run on an OpenShift container platform cluster.

Project Structure

.config/                   - Whole application configuration
.jenkins/                  - Jenkins build config
.storybook/                - Storybook tests for the client
.vscode/                   - IDE config for Visual Studio Code
api/                       - TypeORM API codebase
└── openshift              - OpenShift deployment specific files
└── openshift/tools        - Files related to tools such as SchemaSpy
app/                       - Angular Client Application codebase
└── openshift              - OpenShift deployment specific files
CODE-OF-CONDUCT.md         - Code of Conduct
loadTest                   - Load test application
CONTRIBUTING.md            - Contributing Guidelines
LICENSE                    - License

Documentation

Requirements

  • Docker installed.
  • The ability to run Makefile commands, using a command line tool such as GMAKE

On Windows, you may require a tool like Visual Studio Code or Cygwin in order to use the Makefile.

Setup Instructions

Begin by cloning the repository to create a local copy.

git clone [email protected]:bcgov/lucy-web.git

Note: the default branch is dev - more information about branches and deployment here

Create initial local environment files:

  1. Create an empty .env file at the api directory root
  2. Within api/env_config create a env.local file, using env.example as a reference
  3. Update the app secret values in env.local

Note: these files are .gitignored.

Running the Application

Using Docker:

To run all of the backend containers, use the following commands:

  1. cd into the api directory

  2. Run the application containers

make local

or run the application containers in debug mode

make local-debug

This will print additional logging statements to the console, which may be useful when debugging the backend.

Closing the Application

To close and clean the application containers

make clean-local

This will close and remove the containers and images created by either of the above commands.

Note: See the Makefile for the full list of commands.

License

Copyright 2019 Province of British Columbia

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

lucy-web's People

Contributors

amichard avatar amirshayegh avatar andrea-williams avatar anissa-agahchen avatar christopher-walsh22 avatar cvarjao avatar davidclaveau avatar dependabot[bot] avatar fwpushan avatar jakemorr avatar localnewstv avatar micheal-w-wells avatar nickphura avatar popkinj avatar repo-mountie[bot] avatar rstens avatar sam-warren avatar thegentlemanphysicist avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lucy-web's Issues

Identify which fields should be returned for each table

Describe the task
As a developer, I want to know what fields I should be returning in CSV format, So that the user gets what they need and we don't expose more data than necessary

MIKE required to review schema Spy tables

Acceptance Criteria

  • first
  • second
  • third

Additional context

  • E.g., if a user searches for all observations that have occurred in the last 6 months on Vancouver Island, what columns of the table should be returned (there's columns for auditing - do these need to be returned?). How would spaceGeom be returned?

Creation of an Animal Observation record (Web) - Part 1

As a Invasive Animal Specialist, I want to create a basic animal observation record to identify an observed occurrence of an invasive animal within the WEB interface

Additional Context

Part 1 consists on the database constructions of:

a) animal observation database table (see attached image for the basic variables) (exclude the region and affiliation variable). Adopt the same geom structure from plants to accommodate location and geometry
b) invasive animals species table (the dropdown of 125 invasive animals is required - see attached txt file)
c) creation of the "Life Stage" lookup table (see below for the 5 elements)
d) creation of the "Behaviour" lookup table (see below for the 4 elements)
e) re-use the same plant agency table

Acceptance Criteria

  • creation of the main invasive animal observation database table
  • creation of the invasive animals species table
  • creation of the life stage table
  • creation of the behaviour table
  • link to the plant agency table

InvasivesBC Planning research

Describe the task
Review Planning needs of the different InvasivesBC user groups

Acceptance Criteria

  • Define the needs of planning for our application (what won't we do)
  • Review Planning interviews we have done previously
  • Basic framework for Planning workflows
  • Documentation/diagram of "how" planning could happen
  • Review results with User Groups

Additional context

  • Add any other context about the task here.
  • Or here

Create Biological Treatment - Mobile

As a user I can create a Biological Treatment when device offline, and store locally

Additional Context

  • adopt the same database elements from the web version
  • design the input to present as a very compact modal with toggles / drop downs
  • design the collection of the geometry first and once confirmed display the input modal
  • allow the same confirmation / QC components prior to confirm
  • place the entire treatment in an independent "pending" page where the record could be edited prior to sync

Acceptance Criteria

  • Given (Context), When (action carried out), Then (expected outcome)
  • Given (Context), When (action carried out), Then (expected outcome)

Pair Code Review Inspect

Describe the task
review inspect application code to ensure quality with partner.

Acceptance Criteria

  • fix any small issues noticed in review
  • Log Ticket for any large issues found in the review

Additional context

  • Add any other context about the task here.
  • Or here

Submit and upload a created observation - mobile

As an InvasivesBC mobile app user I want to submit and upload/sync a created observation record so that my data is saved to the invasives databse.

Additional Context

  • the initial submit might first go to a pending page from which the user could view/edit
  • is sync automatic ? or manual ?

Acceptance Criteria

  • Given (Context), When (action carried out), Then (expected outcome)
  • Given (Context), When (action carried out), Then (expected outcome)

Test

Test from Mike

Inspect Performance Testing

Describe the task
Research an determine which metrics matter to us in regards to the Inspect Application; check these using Instruments

Acceptance Criteria

  • Research Instruments Tool
  • Determine which measurements in "Instruments" we will consider in performance testing
  • Memory Usage Constant (not growing exponentially)
  • Ensure no Memory Leaks (log any to be fixed)

Additional context

Create record with Waypoint Geometry

As any user, I want to be able to define an observation by defining a path (with a width) that captures the observation along a linear corridor so that observations and treatment observations that occur along roads/rivers can be properly defined spatially.

[REQ 018]

Acceptance criteria:

  • minimum of 2 points required
  • maximum of 20 points
  • requires a width in meters -total meters along the path sum of both sides
  • the process correctly process the test data (attached)
  • the process correctly process the 2 "error" paths (attached)
  • change maximum 20m between 2 points to 200m
  • minimum 1m between 2 points
  • change maximum 200m long to 2000m
  • Points must be sequential
  • The interface must allow the user to enter points and have the map display those points.
  • Upon completion, the user clicks to proceed and the buffer is created and displayed.

Additional Context

Release Inspect application to App Store

Describe the task
get Inspect on the App store so it can be downloaded by our users in production

Acceptance Criteria

  • Application is on app store
  • Compile description of App and screenshots if we need to get it on the app store

Additional context

  • Apple review can take up to 1 week

Create Mechanical Treatment record - Mobile

As a User I can Create a Mechanical Treatment when device is offline & store the record locally

Additional Context

  • adopt the same database elements from the web version
  • design the input to present as a very compact modal with toggles / drop downs
  • design the collection of the geometry first and once confirmed display the input modal
  • allow the same confirmation / QC components prior to confirm
  • place the entire treatment in an independent "pending" page where the record could be edited prior to sync

Acceptance Criteria

  • Given (Context), When (action carried out), Then (expected outcome)
  • Given (Context), When (action carried out), Then (expected outcome)

Extraction of warehouse layer attributes into the observation database

As a Data Entry+ user when I complete an observation I want the system to infer data warehouse attributes based on the anchor location.

Additional Context

  • Related to #261
  • From issue 261 3 data layers are to be referenced: wells (points), Municipalities, Regional Districts.
  • The layer name and attribute fields as described in the comments below.
  • The default state for these variables can be "pending", not as connections to the warehouse may be an issue at any time.
  • In many cases an anchor location may not fall in any warehouse layer reference polygon. If this is the case the attributes get assigned "unassigned"

Acceptance Criteria

  • Once an anchor point has been confirmed with any activity, the system returns the attribute data from the layer-based query (outgoing) into the Invasive record.
  • Web: Wells
  • Web: Municipalites
  • Web: Regional Districts

Ask Andrea for an estimate.

BC Data warehouse data on map

As a Invasives BC Web App user I want to view data from the BC Data Warehouse on the map (layers) So That relay context and information of the surrounding area for a given observation or treatment

Additional Context

  • 3 layers to start with from Data warehouse all on by default (layers to be chosen by Mike)
  • Municipality boundaries, Regional district boundaries, Wells layers
  • there needs to be a separate symbology for each of the layers

Acceptance Criteria

  • Given I am viewing an observation, When I look at the map, Then I can see 3 three different layers displayed
  • Given I am creating an observation, When I look at the map, Then I can see 3 three different layers displayed
  • Given I am editing an observation, When I look at the map, Then I can see 3 three different layers displayed
  • Given I am viewing an Treatment, When I look at the map, Then I can see 3 three different layers displayed
  • Given I am creating an Treatment, When I look at the map, Then I can see 3 three different layers displayed
  • Given I am editing an Treatment, When I look at the map, Then I can see 3 three different layers displayed

End to end testing on inspect

Describe the task
End to end testing on inspect, Jake Jon and Mike to setup session

Acceptance Criteria

  • log any bugs noted in Zenhub

Additional context

  • Add any other context about the task here.
  • Or here

Background view of all existing Invasives records

As user i want to view observations on the map viewport as either an icon or as its actual geometry. I want to be able to toggle off/on the display of records.

Additional Context

  • Toggle off/on the anchor points of the currently selected record set. If a search filter was applied then only that set of records would be displayed. The default symbol and the default state is on
  • Toggle off/on the record geometries of the currently selected record set. If a search filter was applied then only that set of records would be displayed. The default symbol and the default state is on

Acceptance Criteria

  • Given an ON toggle, the display of all records occurs and persists
  • Given and OFF toggle, the view refreshes and no records are displayed
  • During the creation of any feature the display of that feature is always ON regardless of the display settings

Basic Search

As a InvasivesBC Web App User I want *basic search on Observation ID, Observer Name, Species, Jurisdiction, or Agency * So That I can view any associated observations with the given single search variable

Additional Context

  • we only want to search the 5 mentioned variables
  • returns any matching text string from those variables
  • search returns the values matching the variables as a substring
  • case insensitive

Acceptance Criteria

  • Given I type Mike into the basic search, When I hit enter, Then the search results include all records with Mike in one of the 5 mentioned variables
  • Given I perform a search, When I view the results, Then they are displayed in reverse chronological order based on when they were last updated
  • Given I perform a search for "Mike", when I view the results I should see any record with mike included
  • Given I perform a search, when I look at the results, then the results are paginated with a maximum of 10 records per page

Add OWASP Zap to Pipeline

Describe the task
we need to add Zap to our pipeline as an automated security test.

Acceptance criteria:

  • Pipeline deployment works with Zap
  • contact other teams to see how they have implemented OWASP Zap
  • add Tickets for any sfailures found by OWASP Zap

Query shareable with another user

As a user data entry plus users , want to be able to send my query to another user so that they can perform the same extraction that returns the same set of data.

Additional Context

  • Possible solution for MVP: User A copies the URL containing their query, sends it in email to User B ?
  • Rather than "sharing" a query, we might just be exporting & importing, but actual transmission of query is handled outside of app
  • As the query construction would be in the profile table for the current user, if the recipient user is know, could that same query construction just simply be copied to their profile table ?

*Acceptance Criteria

  • Given (Context), When (action carried out), Then (expected outcome)
  • Given (Context), When (action carried out), Then (expected outcome)

Create an Invasive Plant observation Mobile Part 2

Describe the Task
Open an attribute modal with the input fields

Additional Context

  • for fields requiring a typed response, open a on screen keyboard that persists for that specific field input
  • adopt the same database elements from the web version
  • design the input to present as a very compact modal with toggles / drop downs
  • subsequent ticket from #430

Acceptance Criteria

  • All input fields are mandatory and change colour once a valid value is provided
  • Compact in terms of minimal scrolling

image.png

image.png

View saved queries

As I Date Entry plus user, I want to be able to view my saved queries from my profile page so that I can select any query to re-run.

Additional Context

  • saved queries displayed as table on user profile page
  • sorting order - Newest to oldest
  • ability to delete saved queries
  • NO ability to edit/duplicate saved queries (future enhancement)

Acceptance Criteria

  • Given (Context), When (action carried out), Then (expected outcome)
  • Given (Context), When (action carried out), Then (expected outcome)

Capture geometry (box) to support the creation of an observation/treatment of a mobile device

As a general user I want to be able to capture a geometry type (specifically a box location) directly from the GPS of a mobile device and have that geometry reflected as in the observation/treatment record.

Additional Context

  • This is the 2nd of 4 types of collection methods to be made available in the mobile field collection application
  • An initial anchor point for the observation is required
  • The user is required to enter a height (in meters) and width of the area surrounding the anchor point
  • The minimum value is 1.0 meters to a maximum of 20.0 meters
  • A box is generated about that point and an area calculated
  • the resulting anchor point and box appear on the map
  • the number of vertices used to record and draw the box is 4 points (automatically determined)
  • the anchor point should be displayed as a red + and the box as a thin red solid line.

Acceptance Criteria

  • Given a selection to add a point feature, When the selection is made, Then the user is prompted to accept an anchor point from the current device location
  • Given the anchor point, When confirmed, Then the user is prompted to type in a width and height value
  • The anchor point and box are draw accordingly. The user can accept or re-type in a new values.

Note on operations ... If it is deemed easier to simply define a length/width set of lines, or a diagonal then fit a box - that would be fine. The anchor point then automatically becomes the center.

Report a Bug - Inspect

As a user of the inspect application I want to report when something unexpected occurs with the application So That it may be improved and/or avoided in the future

Acceptance Criteria:

  • given a bug is found by a when i press the report bug button then a modal opens with some prepopulated information and it is sent to the API
  • given a bug is found by a user when they report a bug then an email is sent to/received by Mike Shasko

Additional Context:

  • reach out to common services to understand their emailing service

RISO Persona

Describe the task
Create a persona for the RISO user group

Acceptance Criteria

  • Create Proto-Persona using existing team knowledge and resources
  • Persona based on sample of User Group
  • Outlines user Group Needs
  • Outlines User Group Challenges
  • Outlines Current applications in use
  • Outlines Communication Channels
  • Includes Nice Picture and Funny Name

Select multiple observations on a Mechanical Treatment

As a InvasivesBC Web App user I want to select multiple observations when creating a mechanical treatment record So That all of the species I mechanically treated in a treatment area

Additional Context

  • How do we establish the "select" of multiples.
  • not required - Mike to supply test data from IAPP before it can be ready to go
  • Specific fields to transfer to the other selected treatments
  • Future enhancement - confine the list or selection to some distance value.

Acceptance Criteria

  • Given I am creating a mechanical treatment record, when I select an observation it is displayed as selected and the list remains visible for additional selections.
  • Remove the "species" header text
  • Remove the Species title and field dropdown

Create Chemical Treatment - Mobile

As a User I can Create a Chemical Treatment when device is offline & store the record locally

Additional Context

  • adopt the same database elements from the web version
  • design the input to present as a very compact modal with toggles / drop downs
  • design the collection of the geometry first and once confirmed display the input modal
  • allow the same confirmation / QC components prior to confirm
  • place the entire treatment in an independent "pending" page where the record could be edited prior to sync

Acceptance Criteria

  • Given (Context), When (action carried out), Then (expected outcome)
  • Given (Context), When (action carried out), Then (expected outcome)

Implement Metabase

Describe the task
Implement Metabase with our remote database

Acceptance Criteria

  • Given we open Metabase When I look at our Database Then I can see its contents.
  • Metabase has its own link
  • can authenticate using Github to access Metabase

Implement an advanced query

As a Date Entry Plus user I want to construct a database related query based on search and filter parameters so that I can review the output then decide if I want to save that query to my profile for future use.

Additional Context

  • Research task findings:

  • Discuss with Kristin

  • Define an initial query on simpler data columns, ie data range

  • An advanced query based on search and filter parameters is dependent on issue (tba) that addressed the construction of the query interface.

  • The construction of a query must return the results of the query to the interface for review. The user can (optionally) export that query to a CSV file (issue TBA). Saving the query is also optional and not the default.

  • This ticket only addresses the creation of the query.

NOT Ready

  • Mike will provide a working base set of records (100 or so) from IAPP to use to develop / test queries.

Acceptance Criteria

  • tba

Confirm RISO User Journey Map

Describe the task
Create a journey map for the RISO Persona, to describe their work from the office to the field focused on the management of treatments

Acceptance Criteria

  • Draft questions
  • confirm questions with PO
  • Conduct Interview with Claire and Barb
  • Distill results
  • Create artifact which displays RISO Journey

Additional context

  • Government has asked this before and RISOs still feel their role is not well understood, hopefully we can create something that highlights their role.

Export Observation Table with Foreign Keys to Treatments

As a any InvasivesBC user besides Data Viewer I want to export Observation Table with Foreign Keys to Treatment So That I can use the data in other 3rd party environments

Additional Context

  • Match inspect export but for InvasivesBC Observation data

Acceptance Criteria

  • Given I am on the Inventory page, When Click Export, Then a CSV of the observation table is downloaded to your local machine
  • Given I Clicked export, When the CSV is downloading, Then I can see the name of the file includes the date and time

Save/Store a build query

As a Data Entry+ user I want to be able to save and store selected queries to my profile page so that I can reuse commonly used queries and share them with other users.

Additional Context

  • dependent on issue #290 (Implement a query)
  • saved query would be assigned to user profile
  • assign date/some identifier to each query
  • Add a short comment (50 characters to help identify the query)
  • user should be able to view the query results to confirm that query has been built correctly before saving the query
  • the ability to delete a saved query should exist
  • the ability to edit a query is out of scope for mvp

Acceptance Criteria

  • Given that I am creating a query, when I press the "save query" button, ...

create new observation from treatment record

As a Invasives BC Web App user I want to create a observation while creating a treatment record So That I can document I treated what previously hadn't been identified at the treatment location

Additional Context

Acceptance Criteria

  • Given I am creating a treatment, When the species I treated is not available to be selected for the treatment, Then I can create an observation quickly to include it on the treatment record
  • Given (Context), When (action carried out), Then (expected outcome)

Point of Interest feature

As a data entry plus user I want to identify points of interest: To define new well locations, potential blockages (locked gates), or images both in the web and mobile environments

Additional Context

  • Points of Interest (POI) are to be independent collection elements that would be used to record something that would be of interest to the community at large. These might include a new well location, gate, road blockage etc.
  • The initial implementation would focus only on the creation of a point record with a text/comment string assigned to it. The ability to include a photo from a mobile device would be a future enhancement.

Dropdown Features
Well site (actual)
Gate (open)
Gate (locked)
Surface water
Road blockage
No access
Bear/Cougar
Safety concern

  • **Drop-down pros: prevents typos, data more consistent for filtering data later

  • **Drop-down cons: someone has to maintain the list, the person in the field won't have the ability to add a choice to the list when they need to

  • **Consider doing an "open text" field that has auto-complete to get "the best of both worlds"

Acceptance Criteria

  • the user is prompt to enter a point on the live map
  • a popup with both a feature tpye and comment field is present for user input
  • a "clear" and "save" button persists
  • the feature persists on the map
  • the point feature added is sysnce to the DB into it's own table (to be created)

Errors in Create Observation fields

image.pngDescribe the Bug
With the create observation form 2 errors persist:

#1 The Agency list is in reverse order

#2 The "species distribution" field shoulds say "Observation Type"

See attached screen grab

Expected Behaviour
A clear and concise description of what you expected to happen.

Actual Behaviour
A clear and concise description of what you expected to happen.

** Steps To Reproduce**
Steps to reproduce the behaviour:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Screenshots
image.pngIf applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Additional context

Add any other context about the problem here.

Fix Inspect CSV Export

Describe the Bug
the current Export does not show all of the data needed by the users

Expected Behaviour
when we export it should have all data relevent to users

Actual Behaviour
some data is missing and the Journey details data is combined in a way that is not user friendly

Acceptance Criteria

  • Any field that is inputted into the device should have a column on the CSV
  • also include "Created By" generated by DB
  • Journey details should have separate columns for Previous Waterbody and Destination Waterbody
  • Journey detail columns remain concatenated
  • Export includes 'Other' Waterbody
  • Cross Reference Export against SchemaSpy

Screenshots
If applicable, add screenshots to help explain your problem.

Residence of Boat returning wrong field

Describe the Bug
A clear and concise description of what the bug is.

Expected Behaviour
the dropdown contains provinces and states from Mexico/Canada/USA

Actual Behaviour
the dropdown contains 3 countries

** Steps To Reproduce**
Steps to reproduce the behaviour:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Capture geometry (polygon) to support the creation of an observation/treatment of a mobile device

As a general user I want to be able to capture a geometry type (specifically a polygon) directly from the GPS of a mobile device and have that geometry reflected as in the observation/treatment record.

Additional Context

  • This is the 4th of 4 types of collection methods to be made available in the mobile field collection application
  • An initial anchor point for the observation is required ** This is the start and end point of the enclosed shape. It is also the point coordinates used / displayed in the form lat/long AND used as the marker location on the map **
  • The user is required to define a polygon using a stylus.
  • 3 points is the minimum number of points to make a poly (in this case a triangle).
  • The minimum area value is 1.0 sq meters (a 1m by 1m poly) to a maximum of 10000 sq meters (ie a hectare)
  • The anchor point would be the start/end point of the polygon
  • The minimum vertex distance is to be 1.0 meters.
  • The number of vertices used to record and draw the polygon should be capped at 20 points This was a Web constraint ... the mobile GeoJSon probably has no upper boundary. We want to avoid the user creating a highly convoluted shape so and a limit of 20 will constrain their complexity.

Acceptance Criteria

  • Given a selection to add a point feature, When the selection is made, the user is prompted to accept an anchor point from the current device location
  • Given the anchor point, When confirmed, Then the user is prompted to define the polygon
  • The anchor point and polygon are draw accordingly. The user can accept or re-draw the polygon (no edit)
  • Include the dialog box (as per mock up) at the top of the form.

Capture geometry (point) to support the creation of an observation/treatment of a mobile device

As a InvasiveBC Ipad App user I want to be able to capture an observation with point geometry directly from the GPS of a mobile device and have that geometry reflected as in the observation/treatment record.

Geometry Additional Context

  • This is the 1st of 4 types of collection methods to be made available in the mobile field collection application
  • An initial anchor point provided by GPS is required for the observation
  • The user is required to enter a radius (in meters) at that point to a (minimum 1.0 meters to a maximum radius of 20.0 meters (decimeter precision)
  • A circle is generated about that point and an area calculated
  • the resulting anchor point and circle appear on the map
  • the anchor point should be displayed as a red + and the circle as a thin red solid line.

Observation Additional Context

  • adopt the same database elements from the web version
  • design the input to present as a very compact modal with toggles / drop downs
  • design the collection of the geometry first and once confirmed display the input modal
  • allow the same confirmation / QC components prior to confirm

Acceptance Criteria

  • Given the anchor point, When confirmed, Then the user is prompted to type in a radius
  • The anchor point and circle are draw accordingly. The user can accept or type in a new radius.
  • Given a selection to add a point feature, When the selection is made, Then the user is prompted to accept an anchor point from the current device location and/or hit the save button.
  • Once saved, the user moves on to create obs or treatment

Reasonable data warehouse layers turned on by default

As any/all users, I want reasonable data warehouse layers turned on by default in order to provide basic background content in addition to the physiographic map information.

Additional Context

  • Layer 1 Municipality boundaries - dashed red linework, no fill on the polygons
  • Layer 2 Regional district boundaries - dashed purple linework, no fill on the polygons
  • Layer 3 Wells layers - circle symbol with an enclosed dot or line Θ

Acceptance Criteria

  • Display the Muni / Reg at full province
  • For the Wells coverage - display as cluster pins that expand upon zoom - NOT Required
  • The Muni and RegDist layers need to have the linework as dashed red and dashed purple lines (not fill on these polygons)

Capture geometry (waypoint) to support the creation of an observation/treatment of a mobile device

As a general user I want to be able to capture a geometry type (specifically a waypoint path) directly from the GPS of a mobile device and have that geometry reflected as in the observation/treatment record.

Additional Context

  • This is the 3rd of 4 types of collection methods to be made available in the mobile field collection application
  • An initial anchor point for the observation is required
  • The user is required to enter a sequence of points from the anchor along a linear path.
  • The minimum number of points is 2 (the anchor plus 1) up to 20 total points.
  • As each point is captured, the distance to the previous point should be greater than 1 meter for that point to be retained
  • The user is prompted to enter an offset distance that provides width to the path.
  • Minimum of 1 meter to a maximum of 10 meters.
  • A polygon is generated about that waypoint path using that offset to both sides of the path and an area calculated
  • the resulting anchor point and polygon appear on the map. The user can accept or reject the geometry (no edit)

Acceptance Criteria

  • Given a selection to add a point feature, When the selection is made, Then the user is prompted to accept an anchor point from the current device location
  • Given the anchor point, When confirmed, Then the user is prompted to record the waypoints vai on screen capture or stylus
  • The anchor point and polygon are draw accordingly. The user can accept or re-type in a new offset value.
  • Rather than allowing the edit of individual points, the user and reject the waypoint sequence and re-do it.

View record from search

As a InvasivesBC Web App User I want to view a record in view mode when i click on a returned search result So That to confirm I am looking at the correct records and that my search parameters are successfully returning relevant results

Additional Context

  • preliminary vision is that when a search is completed, the results are returned in a table, where each row of the table is a basic summary of the record, with a button/link to view the full record
  • enter text here

Acceptance Criteria

  • Given (Context), When (action carried out), Then (expected outcome)
  • Given (Context), When (action carried out), Then (expected outcome)

Turn on/off map layers from the data warehouse

As a InvasivesBC Web App User I want to turn on and off relevant map layers on our map in the application So That to specify the context which I can see on the map and ensure only the details I need are displayed

Acceptance Criteria

  • Given I am creating an observation or treatment, When I look at the map, Then the map layers are on by default
  • Given I am Creating an observation or treatment, When I turn on/off the Regional districts layer, Then only the regional districts are removed or added to the map
  • Given I am Creating an observation or treatment, When I turn on/off the Municipalities layer, Then only the Municipalities are removed or added to the map
  • Given I am Creating an observation or treatment, When I turn on/off the Wells layer, Then only the Wells are removed or added to the map

Crash Report sent to InvasivesBC Team

Describe the task
we need to automatically send crash report to the API and notify the dev team via email so that we can recognize any critical failures/errors of the application.

Acceptance Criteria

  • if the crash occurs offline the device will store the crashlog locally and when it is back online it will be sent automatically to our API

Additional context

  • Add any other context about the task here.
  • Or here

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.