Skip to content

Latest commit

 

History

History
445 lines (355 loc) · 21.8 KB

README.md

File metadata and controls

445 lines (355 loc) · 21.8 KB

CI CI CI CI CI CI CI CI


Logo

Dataverse Frontend

A New Way To Create and View Datasets & Collections!
Explore the Docs »

Website | View Demo (BETA) | Report Bug | Request Feature


Progress Demo Videos

Dataset Overview Page (Aug. '23) | Dataset Files Table (Dec. '23)

Chat with us!

Zulip GoogleDevsGrp GoogleUsersGrp


⚠️ Important Information About the Dataverse Frontend ⚠️

Dataverse Frontend is currently in beta and under active development. While it offers exciting new features, please note that it may not be stable for production use. We recommend sticking to the latest stable Dataverse release for mission-critical applications. If you choose to use this repository in production, be prepared for potential bugs and breaking changes. Always check the official documentation and release notes for updates and proceed with caution.

To stay up-to-date with all the latest changes, join the Google Group


Table of Contents

  1. About The Project
  2. Roadmap
  3. Contributing
  4. License
  5. Contact
  6. Acknowledgments

About the Project

What is Dataverse?

The Dataverse Project is an open source web application to share, preserve, cite, explore, and analyze research data. It facilitates making data available to others, and allows you to replicate others' work more easily. Researchers, journals, data authors, publishers, data distributors, and affiliated institutions all receive academic credit and web visibility. Read more on the Dataverse Website.

What is Dataverse Frontend & How is it different?

The Dataverse Frontend repository is an initiative undertaken in 2023 to modernize the UI and design of the Dataverse Project by creating a stand-alone interface to allow users and organizations to implement their own Dataverse installations and utilize the JavaScript framework of their choice.

The goals of Dataverse Frontend:

  • Modernize the application
  • Separate the frontend and backend logic, transition away from Monolithic Architecture
  • Reimagine the current Dataverse backend as a headless API-first instance.
  • The Dataverse Frontend becomes a stand-alone SPA (Single Page Application)
  • Modularize the UI to allow third-party extension of the base project
  • Increase cadence of development, decrease time between release cycles to implement new features
  • Introduce testing automation
  • Give priority and transparency to coding and design to support Harvard University's commitment to ensuring the highest standards for Accessibility Compliance
  • Empower the community to create, contribute, and improve.

New Features:

  • Node Application using ReactJS for the project baseline
  • Native localization support through the i18n library
  • Accessibility compliant code built from the ground-up
  • Improved modularity via Web Components
  • Cypress testing automation
  • Storybook for UI Component Library

Demo videos

Beta Testing Environment

Track our progress and compare it to the current Dataverse application!

To make the SPA Frontend accessible and testable by people interested in the project, there is a remote beta testing environment that includes the latest changes developed both for the frontend application and the Dataverse backend application (develop branches).

This environment follows the "all-in-one" solution described above, where both applications coexist on a Payara server.

Environment updates are carried out automatically through GitHub actions, present both in this repository and in the Dataverse backend repository, which deploy the develop branches when any change is pushed to them.

The environment is accessible through the following URLs:

How Existing Dataverse Installations May Be Affected

  • The existing Dataverse API will be added to and extended from the present backend architecture while the existing UI and current Dataverse functionalities are preserved.
  • The SPA will continue its life as a separate application, supported on its own maintenance schedule.
  • When the SPA has matured enough for an official release, we will switch to the new version and the old backend will be moved into maintenance mode with no new features being introduced and focusing only on critical bugfixes.
Changes from the original Dataverse JSF application

Changes From the Style Guide

The design system and frontend in this repo are inspired by the Dataverse Project Style Guide, but the following changes have been made, especially for accessibility.

Links

We added an underline to links to make them accessible.

File Labels

Now we are using Bootstrap with a theme, so there is only one definition for the secondary color. Since Bootstrap applies the secondary color to the labels automatically, the color of the file label is now the global secondary color which is a lighter shade of grey than what it used to be.

We changed the citation block to be white with a colored border, to make the text in the box more accessible.

Breadcrumbs

We have introduced an update to the breadcrumb navigation UI. Unlike in the original JSF application, where breadcrumbs did not reflect the user's current location within the site, our new SPA design now includes this feature in the breadcrumbs. Additionally, we have aligned with best practices by positioning all breadcrumbs at the top, before anything else in the UI.

We have also introduced action items as the last item of the breadcrumb, eg: Collection > Dataset Name > Edit Dataset Metadata

This update gives users a clear indication of their current position within the application's hierarchy.

Changes in Functionality & Behavior

Our main goal is to replicate the behavior of the original JSF application in all its functionalities, although during development we have found opportunities to review certain behaviors and apply changes where we find appropriate.

Dataset Files Tab Search

The original Dataset JSF page uses Solr to search for files based on the available filters. Past dataset versions are not indexed in Solr, so the filter option is not available (hidden) for such versions. When a version is indexed, the search text is searched in Solr, and Solr grammar can be applied. When the version is not indexed, the search text is searched in the database.

The new SPA does not use Solr as the API endpoint it uses performs all queries on the database. Filters and search options are available for all versions in the same way, homogenizing behavior, although losing the possibility of using the Solr grammar.

The decision of this change is made on the assumption that Solr may not be required in the context of files tab search, whose search facets are reduced compared to other in-application searches. Therefore, if we find evidence that the assumption is incorrect, we will work on extending the search capabilities to support Solr.

We have also introduced infinite scroll pagination here.

Dataverses/Datasets list

The original JSF Dataverses/Datasets list on the home page uses normal paging buttons at the bottom of the list. We have implemented infinite scrolling in this list, replacing the normal paging buttons, but the goal would be to be able to toggle between normal paging and infinite scrolling via a toggle setting or button.

Create/Edit Collection Page Identifier Field

A feature has been added to suggest an identifier to the user based on the collection name entered.

Create/Edit Collection Page Storage Field

Given that at the moment the SPA only supports file uploading through direct upload (S3), the storage selector on the create collection page is disabled. The collection is always created using the default storage, which must be S3

Account Page BreadCrumbs

The Account Page has been updated to remove breadcrumbs, as the page is not part of the main navigation.

Share Collection and Dataset feature

Links to share a collection or a dataset via LinkedIn, X or Facebook will now open in a new tab instead of a popup.

(back to top)

Roadmap

Interested in what's being developed currently? See the open issues for a full list of proposed features (and known issues), and what we are working on in the currently planned sprint.

We are developing the new Dataverse Frontend in quarterly milestones.
The current milestone for Frontend Development is described in Proposal: SPA Beta Features for Q2 2024.

Keep an eye out on The Institute for Quantitative Social Science (IQSS) Dataverse Roadmap at Harvard University to get a look at upcoming initiatives for the project.

References

For more information on the Dataverse re-architecture project, see the original documentation, Restructuring the Dataverse UI as a Single-Page Application.

(back to top)


Contributing

We love PRs! Read the Contributor Guidelines for more info. Any contributions you make are greatly appreciated.

Got Questions? Join the conversation on Zulip, or our Google Groups for Developers and Users. Or attend community meetings, hosted by the Global Dataverse Community Consortium to collaborate with the interest groups for Frontend Development and Containerization, learn and share with communities around the world!

(back to top)


Acknowledgments

Chromatic

Thanks to Chromatic for providing the visual testing platform that helps us review UI changes and catch visual regressions.

(back to top)



Built With

  • ReactJS
  • NodeJS
  • TypeScript
  • SAAS
  • Bootstrap
  • Cypress
  • TestingLibrary
  • Storybook
  • Docker
  • Chromatic

(back to top)



License

Distributed under the Apache License, Version 2.0. See LICENSE for more information.

(back to top)