Emendare Save

Democratic platform to draft amendable texts

Project README

Emendare

Emendare CircleCI License: GPL v3 GitHub code size in bytes Codecov Codacy Badge Contributions Welcome

What is Emendare ?

Emendare is a citizen, non-profit, distributed and open-source initiative. It helps groups share and improve texts iteratively.

The tool mimics the parliament process, allowing all participants to suggest alterations to a text, called amendments.

All groups seeking to organize themselves horizontally, be they companies, associations, political movements or local authorities, are welcome to use Emendare.

Technical stack

The current technical stack of Emendare is :

TypeScript as the main language for the entire project

  • Client side :

    • ReactJS as a framework for the web user interface
    • Bulma CSS as a css framework based on Flexbox
  • Instance side :

  • Register side :

    • NestJS as a progressive NodeJS framework
    • TypeORM as an ORM layer between the application and the database
    • MongoDB as database

Getting started

These instructions explain how to run a local instance of Emendare for development, but also how to build the application for production.

Prerequisites

To set up the project, you must have Node.js installed. To install Node.js, please refer to the Node.js official documentation

You can optionnaly install Docker-Compose to start more easily the Mongo database. To install Docker-Compose, please refer to the Docker Compose official documentation

Installation

The installation of the project requires 2 steps: a configuration of the server and another of the client.

Database

The first step will be to create the MongoDB database. To do so, just create a docker container with a Mongo image, following the steps below.

cd server/

then create the Mongo image :

docker-compose build

This 'build' command must only be entered during installation.

you can finaly run the container :

docker-compose up

The database is accessible at the following address: localhost: 27017 / emendare.

Register configuration

This registry behaves like a service registry, where any instance of Emendare can register. It will permit to switch easly between different instances.

First install all the dependencies :

npm install

Then start the server either for production :

npm run build
npm start

Or for development (run these commands in two separates terminals) :

npm run dev

Server configuration

First install all the dependencies :

npm install

Then start the server either for production :

npm run build
npm start

Or for development (run these commands in two separates terminals) :

npm run dev

These commands will start the server at the following address : localhost:3030

Client configuration

To run the client, the first step will be to install the dependencies.

cd client/
npm install

The client can now be started in two modes :

  • in development :
npm run dev
  • in production :
npm run build
npm start

The app.js server will allow http redirection to https as well as Gzip compression of the application files.

Contributions

To contribute to this project please refer to Guide for contributors

Open Source Agenda is not affiliated with "Emendare" Project. README Source: jimmyleray/Emendare
Stars
29
Open Issues
273
Last Commit
1 month ago
Repository
License

Open Source Agenda Badge

Open Source Agenda Rating