Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

144 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pull Requests Welcome first-timers-only Friendly -> come look at our good first issues

Build, test and publish License: AGPL v3

Dependency analysis: Known npm Vulnerabilities (npm)

V.Board is an information sharing app. It allows users to share "pins", that is byte-size pieces of information: an URL, a picture and a short description. V.Board is designed to be used for communication among an organization teams: project advancement, technology watch, etc.

This software has been used at oui.sncf since July 2016. The public, open-source version of this project was published in January 2018. It's current status is: INCUBATING

Online demo instance: https://vboard-demo.herokuapp.com

Animated demo showing how to add a pin

Features

  • a complete Pinterest-like editable dashboard, with comments and a search bar
  • a "labels" system, with per-user favorites and notifications
  • a "likes" system
  • per-user configuration of an avatar, a team, a description...
  • simple gamification, badges & leaderboard
  • fully dockerized
  • optional email notifications
  • integrate with KeyCloack or AWS Cognito for identity & access management
  • a REST API
  • a RSS feed

Usage

The following command starts V.Board locally :

export TAG=latest
docker-compose build
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up -d --no-build

You can then access the website through http://localhost and the swagger at http://localhost/api/v1/swagger-ui/

Contributing

Want to report a bug ? Suggest a feature ? Give us a hand ? Go have a look at our CONTRIBUTING.md guide.

Architecture

V.Board is made of the folling modules, launched as docker-compose services:

  • ws: SpringBoot REST web service (backend)
  • front: AngularJS 1.5 web app served by Apache (front)
  • batchs: logstash cron to update the ElasticSearch index from the database

Docker services

Some extra docker-compose services are used:

  • elasticsearch: a standard Elasticsearch instance
  • wsdb: MySQL database for the backend

There are also some volumes used by the stack:

  • images: contains all images for vboard pins and users It is shared between the ws and front services: ws writes in it and front reads from it.
  • wsdb-data: contains the backend database

Authentication

There are 3 supported mode of authentication, that are activated in this order:

  • through a Keycloak instance, if the environment variables $KCK_ENABLED, $KCK_PUBLIC_HOST & $KCK_REALM_KEY are defined, cf. KeycloakEnabledInEnv.java
  • through AWS Cognito, with a X-AMZN-OIDC-DATA HTTP header containing a JWT token, if the environment variable $AWS_COGNITO_ENABLED is defined
  • anonymous mode

Alternative software

  • linkding: self-hosted bookmark service based on Python & SQLite
  • laarc: self-hosted HackerNews-clone based on Racket (LISP)
  • https://tildes.net: self-hosted Reddit-clone in Python
  • https://postmill.xyz: self-hosted social link aggregator with voting and threaded comments, built on PHP Symfony

About

Pins dashboard to share news among an organization

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages