Giter Club home page Giter Club logo

openslides-client's Introduction

OpenSlides Client

Web client for OpenSlides 4+ which serves as the users main interaction point while using the OpenSlides system. Delivers a responsive web application written in Angular Material, serving web browsers on both desktop systems, smartphones and tablet PCs. The client can be installed as a Progressive Web App (PWA).

Sends requests to the OpenSlides Backend and receives live data from the OpenSlides Autoupdate Service. Interchanges information and data with surrounding OpenSlides clients using the OpenSlides Inter-Client-Communication service.

Building the client

Using Docker

Get the code:

git clone https://github.com/OpenSlides/openslides-client.git

Change into openslides-client:

cd openslides-client

Build the client using docker:

docker build . -t client

That might take a few minutes. Once done, run the docker image:

docker run -d -p 8080:80 client

You should now have the client up and running in docker using nginx on http://localhost:8080/

If you want to inspect the files you just build:

docker run -it client bash

Using npm

Get the code:

git clone https://github.com/OpenSlides/openslides-client.git

Change into the client:

cd openslides-client/client

Install the dependencies:

npm install

Build the client in production mode:

npm run build

That might take a few minutes. The static files will be build in openslides-client/client/dist.

Developing the client

For further information about developing the OpenSlides client, refer to the development readme.

For contributors

Generally, please work in your own fork, make branches and make a pull request if you want to see your changes in the OpenSlides Client. A pull requests should have exactly one commit. Contributors should add themselves to the AUTHORS file on the OpenSlides main repository.

Commit messages

See https://github.com/OpenSlides/OpenSlides/wiki/Development-organization#pull-request-titles-and-commit-messages.

Code alignment

Please respect the code-style defined in .editorconfig and .pretierrc. Adjust your editor to the .editorconfig to avoid surprises. See https://editorconfig.org/ for details.

Code can be cleaned and aligned automatically using npm run cleanup. This will take care of code alignment, import sorting and quotation marks. To execute this inside the docker container, you can either use make run-cleanup while the client container is already running or make run-cleanup-standalone if it's not.

Translation

We are using ngx-translate for translation purposes. The command:

npm run extract

Will extract strings and update elements an with translation functions. Language files can be found in client/src/assets/i18n. The offical translation of OpenSlides can be found in transifex.

Grep the code for | translate and this.translate to find examples.

Code Documentation

Please document new code using JSDoc.

The documentation of the source material can be generated using compodoc by running:

npm run compodoc.

A new web server will be started on http://localhost:8080/. Once running, the documentation will be updated automatically.

You can run it on another port by adding your local port after the command. If no port specified, it will try to use 8080.

See https://compodoc.app/guides/jsdoc-tags.html for details.

Used software

OpenSlides Client uses the following software or parts of them:

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.