Skip to content

consenz-io/webapp

Repository files navigation

A platform for creating agreements.
The platform lets a group of people create a document that reflects the issues they agree upon
and discuss the issues that are in disagreement.

The platform allows any group of people at any scale to formulate a text
in a single, coherent and clear document in a transparent and democratic way.
The platform enables it through a new kind of Internet discussion.
Instead of spreading across countless responses,
the discussion converges around a collaborative and democratic document
by incorporating voting mechanisms with discussion tools.
This allows distinguishment between agreed upon and controversial issues,
and the process has a clear product: a text that reflects the consent of the participants.

2.2. Frontend

  • Framework - react
  • PWA Template
  • Components Library - MUI

2.2. Backend

  • GraphQL API using Hasura in order to automate CRUD operations as much as possible.
  • Users are to be managed using some third party service (e.g. auth0)
  • Authentication - based on jwt flow
  • Cronjobs based actions and asynchronous operations are to be implemented using some serverless technology (e.g. AWS Lambda)

Here you'll find terms and definitions for the app's structure and components.

  • Group: Every user signs up as part of a group, in which they can view, comment and vote on Sections.
  • Category: A Group can have multiple Categories, which contain all the Agreements.
  • Agreement: An object that covers all the relevant issues that the users can discuss, vote and agree upon.
    The Agreement is dynamic and changes according to the actions of the users.
  • Agreement Draft: A document that contain all the Approved Sections of the Agreement. An Agreement have one draft.
  • Agreement Previews Draft: Different drafts of the Agreement. An Agreement may have multiple Previews Drafts, each from a different given time.
  • Chapter: Sub part of the Agreement.
    An Agreement may have multiple Chapters.
  • Section: One issue in the Chapter.
    A Chapter may have multiple Sections.
  • Section Version: Replecable texts of a section.
    A Section may have multiple Versions, each from a different given time.
  • Section Status: A variable that determine the reletion of a Section Version to the Agreement Draft. A section status can be "In a Vote" or "Approved" Or "Denied". "In a Vote" Section are part of the Agreement but not of the Agreement Draft. "Approved" Section are part of the Agreement Draft. "Denied" Section in not in the Agreement neither in the Draft, but archived.
  • Section Suggestion: A Section that is "in a vote" status.
  • Section Improvement Suggestion: A Suggestion that stands to replace a Section Version.
    A Section Version may have multiple Improvement Suggestion.
  • Approved Section: A Section Version that is in "approved" status. A Section may have one Approved Version.
  • Section Comment: A note that represent an opinion of a user regarding a Section.
    A Section may have multiple Comments.
  • Version Comment: A note that represent an opinion of a user regarding a Section Version.
    A Section Version may have multiple Comments.
  • Comment on a Comment: A note that represent an opinion of a user regarding a Comment.
    A Comment may have multiple Comment on Comments.
  • Discussion: The sum of all Comments regards a Section.
  • Vote: A way for the users to express support or objection to a Suggestion without adding text.
    A Vote can be pro or con.
    A Suggestion may have multiple Votes.
  • User: A member in the Group that may create a Section, vote in discussion, comment, etc.

This project has a CI/CD pipeline.
Pushes to dev automatically update the staging site at https://stage.consenz.io

4.1. Work Process

Create new branches from dev, and merge back into dev.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published