-> come look at our good first issues
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
- 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
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/
Want to report a bug ? Suggest a feature ? Give us a hand ? Go have a look at our CONTRIBUTING.md guide.
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
Some extra docker-compose
services are used:
elasticsearch
: a standard Elasticsearch instancewsdb
: 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 thews
andfront
services:ws
writes in it andfront
reads from it.wsdb-data
: contains the backend database
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
- 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