Giter Site home page Giter Site logo

atlasoflivingaustralia / volunteer-portal Goto Github PK

View Code? Open in Web Editor NEW
17.0 13.0 15.0 64.56 MB

DigiVol (Biodiversity Volunteer Portal)

Home Page: https://volunteer.ala.org.au

Groovy 30.42% PLpgSQL 0.04% Java 0.20% CSS 1.13% JavaScript 58.25% HTML 5.68% Shell 0.06% Batchfile 0.03% SCSS 4.19%
biodiversity ala-product-digivol

volunteer-portal's Introduction

DigiVol Build Status

The Atlas of Living Australia, in collaboration with the Australian Museum, developed DigiVol to harness the power of online volunteers (also known as crowdsourcing) to digitise biodiversity data that is locked up in biodiversity collections, field notebooks and survey sheets.

Running

The ansible inventories are currently out of date. You can run DigiVol manually by using gradle to build:

./gradlew assemble
java -jar build/libs/volunteer-portal-*.war
open http://devt.ala.org.au:8080/

To run up a vagrant instance of DigiVol you can use the volunteer_portal_instance ansible playbook from the AtlasOfLivingAustralia/ala-install repository. This will deploy a pre-compiled version from the ALA Maven repository.

NOTE: Both vagrant and ansible must be installed first.

Then setup the VM and run the playbook:

git clone https://github.com/AtlasOfLivingAustralia/ala-install.git
cd ala-install/vagrant/ubuntu-trusty
vagrant up
cd ../../ansible
ansible-playbook -i inventories/vagrant --user vagrant --private-key ~/.vagrant.d/insecure_private_key --sudo volunteer-portal.yml

Deploying to a server can be done similarly, though you will need to define an ansible inventory first.

Contributing

DigiVol is a Grails v5.3 based web application. It requires PostgreSQL v15 for data storage. Development follows the git flow workflow.

For git flow operations you may like to use the git-flow command line tools. Either install Atlassian SourceTree which bundles its own version or install them via:

# OS X
brew install git-flow
# Ubuntu
apt-get install git-flow

volunteer-portal's People

Contributors

aruizca avatar cdausmus avatar chrisala avatar djtfmartin avatar markew avatar mbohun avatar nickdos avatar patkyn avatar sbearcsiro avatar temi avatar zaxen avatar

Stargazers

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

Watchers

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

volunteer-portal's Issues

Institution logo/Banner images

Insitutions need to have a logo and banner images. Institution owners need to be able to upload these, or scraped from the collectory if available.

Lat Long control needs some refinement when re-rendering from already transcribed values

A couple of points:

The format for the pair of lat/long widgets (one for lat, the other for long), are kept in sync (i.e. when the format for one changes, so does the other). This poses a slight problem when re-rendering as the format of the last control (of the pair) determines the format for both, and if a value is missing for the last control, it defaults to DMS, which obscures a decimal degree value in the top control

Some DMS formats are not being correctly identified by the lat long conversion routines

e.g. 27.6"

ALA Stats for inclusion in the BVP

migrated from: https://code.google.com/p/ala/issues/detail?id=211
date: Thu Aug 8 21:44:46 2013
author: moyesyside


Original Issue reported by Project Member Reported by [email protected], Nov 7, 2012 - https://code.google.com/p/ala-volunteer/issues/detail?id=56

Project Member Reported by [email protected], Nov 7, 2012
Stats

  1. Total number of species transcribed
  2. Number of species for which records have been transcribed in the BVP which previously had no records in the ALA

These stats for Individual transcribers to appear on each transcribers Volunteer page adjacent to the volunteer score

These stats for entire site to appear on the front page in the expedition stats section
Nov 7, 2012 Project Member #1 [email protected]
See attached file for placement of stats in the site
StatsandALAlinks.pptx 991 KB   Download Nov 7, 2012 Project Member #2 [email protected]
(No comment was entered for this change.)
/cc @djtfmartin

Filtering the Project Admin List

From Baz's email: When I'm validating a project, I can change the sort-order of the task list in various ways to bring the unvalidated tasks to the front. That usually works okay to begin with, but after a while it can become quite awkward to find the next task to validate if I've done a lot of transcriptions on the project myself. So I was wondering whether it would be feasible to provide a way to exclude the transcriptions of the logged in user from the task list?

Institution needs to be able to be selected when editing a project's settings

Currently the Epedition settings will just save edits into the featureOwner field of the project domain object. It should:

a) Allow someone to select an Institiution or type in a label in the same way the new expedition wizard works
a) i) If an institution is selected, perhaps we should clear the 'featuredOwner' field
a) ii) If a label is typed in that does not match an institution, we need to clear the Institution and save it in the featuredOwner

b) We need to make sure that where the featuredOwner field is being referenced that it checks if it should use the Institution name instead. Easiest way to do this is to maybe create a transient computed property on the Project domain object and perform the logic in there, and the find/replace all usages of featuredOwner with this need property (getSponsorName() ?)
https://github.com/AtlasOfLivingAustralia/volunteer-portal/issues/new#

Institution level security/permissions

Institutions provide a convenient way for institution administrators to nominate validators and forum moderators on a per institution basis. We need a new role which indicates that a user is an Institution Administrator, and that role permits the creation of Institution Level validators etc.

BVP_ADMIN remains as super user, but with this new permissions system we should be able to reduce the number of people who are actually in this role

Can't delete expeditions

Expeditions with users in the expedition forum's watch list can't be deleted. Exception details follow:

[2014-10-23 14:57:36] Project 1121594: Delete Project...
ERROR [util.JDBCExceptionReporter] Batch entry 0 delete from project where id='1121594' was aborted.  Call getNextException to see the cause.
ERROR [util.JDBCExceptionReporter] ERROR: update or delete on table "project" violates foreign key constraint "fkb168d452d7b4217a" on table "project_forum_watch_list"
  Detail: Key (id)=(1121594) is still referenced from table "project_forum_watch_list".

Institution home page

Each institution needs a 'home' page that

a) Displays the name, description and banner image for the institution
b) Provides a list of expeditions belonging to that institution (similar to the main expeditions list, except filtered by that institution). The list should be initially ordered by the number of remaining tasks to be transcribed (descending order). List should be sortable and searchable (like the current expeditions list). Look into refactoring and reusing the current expedition list as a fragment, maybe?
c) News/mini blog post items (creation and management of these will be a seperate issue
https://github.com/AtlasOfLivingAustralia/volunteer-portal/issues/new#

Allowed text for Global news item is too short

Either the database column or the grails constraint on the domain object (or both) restricts the size of the global news item (probably to 255 characters). We should increase this to be at least 1024

Convert all email and display name display / usage to use ALA user details web services

This is part 2 of issue #37.

Currently when a user's email address or display name is required it is pulled from the database. After migrating the internal ids from emails to numeric ALA ids, we should then make any email or display name usage pull it from the ALA user details web service to ensure it's using the user's current name and email address.

To prevent duplicate calls during page rendering we should investigate using a small TTL (around 5 minutes?) cache. We could also investigate adding a daily sync and using the local db fallback in case the userdetails service is down?

Institution level news items

There is currently a project level news facility whereby project owners can write small news items that are optionally displayed on the project index page. Look into seeing if we can similarly create institution level news items that will be displayed on each Institution home page. It would be good if we could re-use as much as possible (i.e. domain objects) from the existing news infrastructure
https://github.com/AtlasOfLivingAustralia/volunteer-portal/issues/new#

add a README

Add a brief README for this project, which describes the architecture (grails app + postgres) and has some information pointing at the ansible scripts for installation.

Implement/improve Achievement/badges in BVP

migrated from: https://code.google.com/p/ala/issues/detail?id=695
date: Thu Jun 12 17:12:58 2014
author: [email protected]


Possible approach is as follows:

Create a full text index of task and fields (stand alone SOLR instance)

  • Need ability to reindex everything on demand (if we decide to index more)
  • Need to reindex fields and tasks as they are saved or validated
  • This index will also be useful for calculating various stats, so some thought needs to go into how to index them

Use SOLR faceting queries to determine if particular thresholds/achievements have been reached

  • Achievements, with their rules and badges, will be stored in the database
  • New achievements can be added on the fly through an admin page
  • A 'UserAchievement' records if a user has earned an achievement, along with the date it was earned
  • After each submission/validation the list of unearned achievements is processed (asynchronously - Quartz?), and each SOLR query is executed to determine eligibility. If new achievements are earned, a flag could be set on the user object indicating that during the next page refresh some sort of notification should be made visible indicating new achievements (link to dashboard)

Standalone mapping tool enhancements

  1. Remove bolding from geocoded results table
  2. Change order from Longitude/Latitude to Latitude/Longitude
  3. Clear previous results so that old results fields do not persist in otherwise empty fields in newer searches

New a public list of institutions with some summary data

a) Need a top level tab (like Expeditions)
b) Will list expeditions and use a banner image
c) Will include some basic info about each institution, as well as a summary of the number of projects (completed vs uncompleted), and perhaps counts of transcribers?
d) Should probably generally match the look and feel of the Expeditions list
e) List should be sortable and searchable (Institution Name)

Fine grained (Institution level) permissions for BVP

migrated from: https://code.google.com/p/ala/issues/detail?id=696
date: Thu Jun 12 17:26:10 2014
author: [email protected]


With the creation of the Institution domain object, we should provide a new tier of permissions that allow institutions greater autonomy over managing their expeditions, whilst protecting other expeditions from accidental modification/deletion.

New (BVP application managed) roles 'Institution_Admin' and 'Institution_Validator' need to be created, which are always linked with an institution id. It is conceivable that some users will have multiple Institution_Admin and Institution_Validator roles, each with a different institution id.

Institution_Admins can:

  • Create new expeditions that are implicitly linked to the institution. If a user has more than one "Institution_Admin" role, a list of institutions should be provided. Perhaps always show a drop down of institutions - with either one or many institutions?
  • Assign institution_admin role for their institution to other users (again the list of institutions is constrained by their own roles)
  • Assign "Institution_Validator" roles to users
  • Modify institution profile details (description, logos, contact details etc)
  • Manage institution picklist items (collection codes?)
  • Manage institution templates. All templates will be readonly by default, but can be cloned and attached to an institution.

Consider putting all permission checks in a service so that the rules can be easily codified:

  • BVP_ADMIN can do anything
  • Institution_Admin can do anything to institution expeditions
  • Institution_Validator can validate any expedition of that institution
  • Existing project_validator roles still need to be honoured
  • BVP_USER can transcribe only

Create a standalone mapping tool

Make it accessible from the admin page as a tool button.

Should display the lat/long/state/country according to Google maps

if possible copy to clipboard so that it will paste cleanly to Excel?

Double click on save or submit button when transcribing tasks can cause apparent loss of data

Two concurrent submissions for the same session when transcribing (when the save button is double clicked, for example) can cause two separate field objects to be saved, neither of which are marked as superceded. This causes apparent loss of data, as the field instance selected for display is non-deterministic (database order).

Possible solution is to disable all submit buttons once one is pressed so that only a single form post is sent.
https://github.com/AtlasOfLivingAustralia/volunteer-portal/issues/new#

Write a lat/long cell editor for the SpreadSheet template

The spread sheet template uses SlickGrid, which allows custom cell editors to be bound to each column. Custom cell editors already exist for boolean values (check boxes), dates and long text. Add a custom cell editor that collects the individual components of a latitude/longitude, including text boxes for degrees, minutes, seconds and direction (N,S,E,W). The custom cell editor could use the name of the field being collected to work out if it should put N/S (latitude) or E/W (longitude) in a dropdown.

Switch to using userIDs instead of emails

We've discussed this plenty of times but we need to get this one done. The BVP should be using userIDs instead of email addresses.

The BVP is the last remaining component with this issue. Once we have something in place for this, users will be able to update their own email addresses.

Spreadsheet template

migrated from: https://code.google.com/p/ala/issues/detail?id=694
date: Thu Jun 12 17:01:42 2014
author: [email protected]


Create a new template that will collect fields in the 'dataset' category as columns in a spreadsheet.

Consider using slickgrid.js

One approach would be to build a set of hidden form fields just before submit, from the rows and columns in the spreadsheet.

Things to consider:

  • Revisiting page needs to rebuild the spreadsheet from existing fields
  • Navigating the spreadsheet should be easy and intuitive (arrows, enter key, tab and backspace, for example)
  • Support for validation rules
  • Some field types might benefit from custom rendered cells (dropdowns, autocomplete, dates)

Archiving existing completed projects - Post Christmas

migrated from: https://code.google.com/p/ala/issues/detail?id=209
date: Thu Aug 8 21:44:22 2013
author: moyesyside


Original Issue reported by Project Member Reported by [email protected], Nov 22, 2011 - https://code.google.com/p/ala-volunteer/issues/detail?id=37

Project Member Reported by [email protected], Nov 22, 2011
Ned to develop a strategy for archiving completed project- do we still make them available for viewing or do we take them off the front page
Nov 22, 2011 Project Member #1 [email protected]
(No comment was entered for this change.)
Labels: Type-Enhancement Priority-Medium Jan 11, 2012 Project Member #2 [email protected]
(No comment was entered for this change.)
Labels: Milestone-2012Q1 Jan 19, 2012 Project Member #3 [email protected]
This should be looked after by the new front page and expeditions page.

Navigation - for validators - Pre Christmas

migrated from: https://code.google.com/p/ala/issues/detail?id=207
date: Thu Aug 8 21:43:55 2013
author: moyesyside


Original Issue reported by Project Member Reported by [email protected], Nov 22, 2011 - https://code.google.com/p/ala-volunteer/issues/detail?id=26

Project Member Reported by [email protected], Nov 22, 2011
Project admin page should be added to the breadcrumb for all admin pages as second item
Nov 22, 2011 Project Member #1 [email protected]
Issue 25 has been merged into this issue.
Nov 22, 2011 Project Member #2 [email protected]
(No comment was entered for this change.)
Summary: Navigation - for validators - Pre Christmas Nov 22, 2011 Project Member #3 [email protected]
(No comment was entered for this change.)
Labels: Type-Enhancement Priority-High Aug 7, 2012 Project Member #4 [email protected]
(No comment was entered for this change.)
Labels: -Priority-High Priority-Medium

Front Page

Banner text size and spacing as per image below please

image

Georeferencing tool standalone - Post Christmas unless resource becomes available

migrated from: https://code.google.com/p/ala/issues/detail?id=208
date: Thu Aug 8 21:44:09 2013
author: moyesyside


Original Issue reported by Project Member Reported by [email protected], Nov 22, 2011 - https://code.google.com/p/ala-volunteer/issues/detail?id=32

Project Member Reported by [email protected], Nov 22, 2011
Single page for access in VP that is standalone
Nov 22, 2011 Project Member #1 [email protected]
(No comment was entered for this change.)
Labels: Type-Enhancement Priority-Medium Jan 11, 2012 Project Member #2 [email protected]
(No comment was entered for this change.)
Labels: Milestone-2012Q1 Aug 7, 2012 Project Member #3 [email protected]
(No comment was entered for this change.)
Labels: -Milestone-2012Q1 Milestone-Unsure

Redo About DigiVol page

Need more info on this page about why volunteers can make a difference through DigiVol.

Look at NotesFrom Nature and how they do it

image

Institutions in BVP

migrated from: https://code.google.com/p/ala/issues/detail?id=693
date: Thu Jun 12 16:57:55 2014
author: [email protected]


Projects/Expeditions most usually are sponsored by an institution (i.e. Australian Museum, ANIC etc). We need to be able to give institutions a "home" page that:

  • Provides a description and some images for that institution
  • Provides a list of expeditions sponsored by that institution
  • potentially some statistics around tasks and projects for that institution
  • acts as an anchor point for Institution level permissions system (separate issue)
  • Institutions may also be linked to the ALA collectry

Projects, therefore, will have an optional institutionId. Institutions will have an optional collectryId, which will allow for the synthesis of a url back to the ALA Collections portal

Institutions will have a name, a description (Markdown), banner image (size to be determined when Insitution page is designed), logo (smallish image?), a contact person (name, email, maybe phone number?). Images can be stored on the file system, under ../institutions//logo.jpg etc (much like project specific media are)

Link from BVP to expeditions pages in the ALA

migrated from: https://code.google.com/p/ala/issues/detail?id=212
date: Thu Aug 8 21:44:59 2013
author: moyesyside


Original Issue reported by Project Member Reported by [email protected], Nov 7, 2012 - https://code.google.com/p/ala-volunteer/issues/detail?id=58

Project Member Reported by [email protected], Nov 7, 2012
See attached file for nature and location of links

  1. Front page - Link menu at top
  2. Front page - link in Stats area
  3. Expedition List Page - next to expedition name
  4. Expedition front page - in left nav
  5. On Volunteer page

StatsandALAlinks.pptx 991 KB   Download Nov 7, 2012 Project Member #1 [email protected]
(No comment was entered for this change.)
Cc: [email protected]

Automated email response at time of registration on DigiVol

When a user registers with DigiVol I would like an automated email be sent to them welcoming them and giving them details on how it all works. This may well be useful for ALA in general too.

Ideally I would like a system for managing emails that is automatically updated when someone registers, enables editing and sending of automated emails, as well as for creating specific email campaigns such as a newsletter.
Something like MailChimp has the functionality id like so we could use it if there was simply a way of triggering an update in our MailChimp mail list when someone resisters on DigiVol.

Loading tasks from staging can fail

Loading tasks from staging seemed to fail on 2014-9-30, which prevented any future loading from starting. Nothing in the logs indicated the cause of the problem. Suggest adding a way to recover the queue through the admin UI and extra logging around TaskLoadService#loadTasksFromStaging.

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.