Giter Site home page Giter Site logo

20180505_awt-project's People

Contributors

hajeong-noh avatar uempfel avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

uempfel

20180505_awt-project's Issues

Build statistics endpoints

/api/campaigns/{campaignId}/statistics showing statistics of a campaign

  • Number of peaks in the started state (0 annotations)
  • Number of peaks in the annotated state (1 or more annotations)
  • Number of peaks with at least 1 or more rejected annotations
  • Number of conflicts (see definition below)

List of annotated peaks. Selecting one peak in the annotate status, the page shows:

  • The data of each annotation
  • The creator of each annotation

List of annotated peaks with one or more rejected annotations. Selecting one such peak, the page shows:

  • The data of each annotation
  • The creator of each annotation

List of conflicts of the campaign. The conflicts are the annotations where the PeakValidity inserted by one worker disagrees with the value inserted by another worker.

  • For each peak with a conflict, the page shows number of annotations with positive PeakValidity and number of annotations with negative PeakValidity

Create new Campaign

As a Manager,
I want to create a new campaign,
so that I can upload my peak data.

  • Should get feedback if the operation was succesful
  • Status of the campaign should be "Created"
  • Details of the campaign's data should be shown if the upload was successful
  • Should receive a notification if the upload failed

Close campaign

As a Manager,
I want to close a campaign,
So that no more new annotations can be entered.

  • Feedback if the operation was successful
  • Feedback if the operation was not successful
  • Page should be redisplayed in "Closed" state

Review GET campaigns endpoint for workers

Right now, a worker only gets the enrolled campaigns back.
How can he access all available campaigns?

Possible solution:

  • query parameter ?enrolled=true for enrolled campaigns
  • return all campaigns WHERE NOT enrolled AND STARTED as default

Build annotation endpoints

  • GET /api/annotations Showing a list of annotations
  • GET /api/annotations/{id} Showing a single annotation for a specific peak
  • POST /api/annotations Creating a new annotation for a peak
  • PATCH /api/annotations/{id} Manager accepts or rejects annotation

User Sign In

As a user,
I want to sign in
so that I use the platform.

  • Password should be hidden on the screen
  • Give feedback if the username or the password is wrong

See statistics of a campaign

As a Manager,
I want to have an overview over the statistics of a campaign,
So that I can control it's status and progress.

  • Number of peaks in the started state (with 0 annotations)
  • Number of peaks in the annotated state (with 1 or more annotations)
  • Number of peaks with at least 1 or more rejected annotations
  • Number of conflicts

  • List of annotated peaks
    Selecting one peak in the annotate status shows:
  • Data of each annotation
  • Creator of each annotation

  • List of annotated peaks with rejected annotations
    Selecting one such peak shows:
  • Data of each annotation
  • Creator of each annotation

  • List of conflicts
    For each peak with a conflict, the page shows:
  • number of annotations with positive PeakValidity
  • number of annotations with negative PeakValidity

User Sign Up

As a User,
I want to Sign Up for the service,
So that I can use the paltform.

  • Username should be unique
  • Feedback if operation was succesful or not
  • Enter password twice for confirmation
  • Password should be hidden
  • E-Mail address must be a valid address
  • Radio button to select the role "Manager"

Worker Add Annotations

As a worker,
I want to add annotations
so that I can provide a correct information about peaks

  • 2D or 3D page map with colored markers is shown on the page
  • Selecting a peak in the map shows all the data about the peak and a form for editing peak data.
  • Worker can check 'valid' or 'invalid' on the peak data
  • If it's valid, the worker can specify an elevation, name and localized names
  • Worker cannot edit other worker's annotations
  • Worker can create only 1 annotation for a peak
  • A peak marked as invalid by a worker can still be annotated by other workers

Selecting a peak in the 2d or

3d map shows all the data about the
peak and a form for editing peak data." means that the worker can edit the peak data or just annotations?

Load data NOT to annotate into campaign

As a Manager,
I want to upload data NOT to be annotated into a campaign,
So that I can provide additional information to the Workers.

  • should get feedback if the upload was successful
  • should get feedback if the upload failed

Assumption according to Requirements:
The manager has a data file in the correct format containing peaks (already validated or from a reliable source)

Load data to annotate into campaign

As a manager,
I want to upload data to be annotated into a campaign,
So that Workers can annotate the peak data.

  • should get feedback if the upload was successful
  • should get feedback if the upload failed

Assumption according to Requirements:
The manager has a data file in the correct format containing peaks (already validated or from a reliable source)

Worker Sign Up

As a worker,
I want to sign up
so that I can create annotations

  • There is a field for confirming password again
  • Username should be unique
  • Password should be hidden on the screen
  • E-mail address should be validated
  • Radio button for choosing a role (Manager or Worker)

Fix query for PeakConflicts

The query for Peak conflicts does not return the right count of isValid and !isValid for each Peak. It just returns the count of conflicts for each Peak

Manager Sign In

As a Manager,
I want to sign in,
so that I can access and manage all the campaigns I created.

  • Password should be hidden on the login screen
  • Feedback in case of wrong credentials

Reject annotation

As a manager,
I want to be able to reject an annotation,
So that I have control over the annotations i regard as valid.

Set campaign status to "Started"

As a Manager,
I want to set the status of a campaign I created to "Started",
So that the Workers can see the campaign and enroll.

  • Should provide feedback if operation was successful
  • Should provide feedback if operation failed

Build user endpoints

  • GET /api/users/{id} Getting information for a single user and signing in
  • POST /api/users Creating new users (Managers and Workers)
  • PUT /api/users/{id} Updating user information

Change the state of "toBeAnnotated" on file level

Right now, the state of "toBeAnnotated" can only be changed for a single peak.

It should however be changed on file level and ONLY if no file with the opposite state has been uploaded for the same campaign

see #18

Build peak endpoints

  • GET /api/peaks Showing list of peaks depending on the role
  • GET /api/peaks/{id} Showing a single peak
  • POST /api/peaks Uploading new peak data for a campaign
  • PATCH /api/peaks/{id} Changing the "to be annotated" status (ATTENTION: only if the associated campaign is in CREATED status)

Build campaign endpoints

  • GET /api/campaigns Showing a list of Campaigns depending on the role
  • GET /api/campaigns/{id} Showing an individual Campaign
  • POST /api/campaigns Creating new campaigns
  • POST /api/campaigns/{id} Worker enrolls in a campaign
  • PATCH /api/campaigns/{id} Setting the status of individual to 'Started' or 'Closed'

User Log Out

As a user,
I want to log out
so that I can ensure others do not use my account

  • Logout button should be accessible in every view
  • Logout page contains login button

Column accepted_by_manager always false per default

An annotation is initially always false. When we check the number of rejected annotations for the statistics endpoint, this leads to wrong results.

possible fix: use Boolean wrapper class and initialise with null

Show peak markers on a 2D Map

As a Manager,
I want to have a 2D Map with peak markers,
So I can have an overview over the map data that I uploaded for a campaign.

  • Green marker for not to be annotated peaks
  • Yellow markers for to be annotated peaks without annotations
  • Orange markers for to be annotated peaks with annotations
  • Red markers for to be annotated peaks with one or more rejected annotations
  • Clicking on a peak shows its details

Worker Enroll Campaign

As a worker,
I want to enroll in campaigns
so that I can add annotations on peaks

  • The page lists started campaigns which are not opted by the worker
  • The new row should be added in the table 'works_on'

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.