Giter VIP home page Giter VIP logo

gca-web's Introduction

Docker Automated build StackShare

G-Node Conference Application Suite - Web Application

This project provides an online application for the submission and management of abstracts to conferences in the scientific community (focus life sciences).

Features include:

  • Management of multiple individual conferences
  • Admin based conference workflow from open, active to closed
  • Submission and editing of abstracts for open conferences
  • Abstract workflow on a user/admin based system from submitted to accepted/rejected
  • Abstract viewer for open and closed conferences
  • Conference locations and floorplans
  • Conference schedule
  • Favourite abstracts
  • Supports offline viewing of individual conferences

The current version is stable.

A previous version of the application can be found in the "oldstable" branch.

Please find the latest release notes in the release section.

Frontend tests using Selenium

The application suite provides frontend test using Selenium. A full setup and usage description can be found in the frontend test readme.

gca-web's People

Contributors

achilleas-k avatar asobolev avatar at-robins avatar cgars avatar fschrader1992 avatar gicmo avatar mpsonntag avatar stoewer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

gca-web's Issues

Concept for authentication and security

Investigate authentication mechanisms OAuth, Persona and find out how they could be implemented using Play.
Make a simple toy example that shows how contollers can be secured using the chosen technology.

Adjust affiliation fields

The affiliation should have the following fields:
Institution, Department, Address, Country

Solution:

  • remove name field from model
  • display section as "Institution" in the UI (in order to avoid schema changes)

Service layer interfaces

Define the API of the service layer (e.g. AbstractStore).

  • Add unit tests for respective classes

Editor: Order of fields

From @twachtler's email:

Order of Fields: put Figure after References and Separator to mark end of abstract content:

[...]

References

Figure

-- Separator (thin line?) -- (Alternatively put a thin box around abstract fields from title to figure)

Topic

Presentation Preference

Topics should be sortable.

This is maybe related to #123.

Solution:
Add a field order to topic.

Maybe it makes sense to subclass Model from a mapped superclass like OrderedModel which can be then subclassed by other models such as Author, Reference, Topic and `Affiliation. This way they can share implementations for 'compare' and similar methods.

See also issue #106

Unclear behavior of "contains" method for Java collections

On the service layer when validating whether a many-to-one property "contains" some object it's unclear what is the logic stands behind this operation. As a result it fails sometimes.

like
'conference.owners.contains(account)'
works with account freshly requested from the database by ID, but not for some other instances of the same account (see line 177 ConferenceService)

Draft for the REST API

Create a wiki page containing a draft for the specification of the REST API

  • Define the URLs and HTTP Methods for all actions
  • Define a rough design of the JSON responses

Error: Unable to save abstract

Description:
The message "Error: Unable to save abstract" occurs when saving the abstract.

Cause:
Most likely this was caused by a session timeout.

Solution:
Increase session lifetime (several hours).

De- / Serializer for models

Investigate possibilities for serializing our models to JSON and vice versa.

Write a class util.Serializer that is able of serializing nested model structures to JSON as specified in the REST API Spec.

Absolute position for message box

Issue:
Currently the message box is not visible when the document is scrolled down.

Solution:
Make the position of the message box absolute.

API: delete abstract ignores admin permissions

DELETE on /api/abstracts/:id returns 403 error for admins if they don't own the abstract.

{
   "error":true,
   "No permissions for abstract with uuid = bc7cd336-43cd-4dad-921b-db41ffbeb016":".."
}

This issue may also apply to conferences and other requests that check owners.

Client side abstract validation.

Add client side abstract validation that warns e.g. about users without affiliations or other missing stuff.

The validation should distinguish between warnings and errors:

  • errors: show a danger box and prevent the abstract from being saved
  • warnigs: just show a warning box, bus save the abstract anyway

Candidate for an error would be a missing abstract title.

Identity vs. Account

Find a good solution how to handle Identity and Account nicely together at the service layer level.

Make a concept first and discuss it.

Editor labeling

Change some labels in the editor:

  • Abstract text field: Write "Enter abstract text (up to 2000 chars)"
  • Acknowledgments: Remove "Optionally"
  • There is a problem with the numbering of fields (4. occurs 2x)
  • Poster or Talk -> Presentation Preference
    • Poster
    • Talk or Poster (Why should this contribution be selected for an oral presentation?)

State change API

Write the controller (& routes) for state changes of given abstract, or list of abstracts.

Improve models

Enhance all models with the following features

  • Add missing companion objects
  • Add parameter uuid to every apply() method of companion objects
  • Initialize many-to-one and many-to-many relationships as empty lists.
  • Add JPA annotations
  • Make Model a class

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.