CovenantForum is a simple decentralized forum web app powered by CovenantSQL.
Decentralized forum?
Data and files are saved in decentralized database. Anyone with a permission granted private key and the DSN(Database Serial Num) can serve the forum anywhere.
Also, all posts related data are saved on an unique SQLChain Block like this.
Anyone can create your "blockchain powered forum" with just few steps.
Twitter Bot
@iBlockPin will record your tweet to CovenantForum and the Blockchain.
Features
Static files and database are powered by decentralized database: CovenantSQL.
REST API backend written in Go
Vue.js-based frontend
Social login (OAuth 2.0) via three providers:
Google
Facebook
Github
JSON Web Tokens (JWT) are used for user authentication in the API
Single binary deploy. All the static assets (frontend JavaScript & CSS files) are embedded into the binary
Markdown comments
Avatar upload, including animated GIFs. Auto-generated letter-avatars on user creation
Arch
Comparison between Traditional and Decentralized forum:
$ go get -u github.com/CovenantSQL/CovenantForum/cmd/forum && \
cd $GOPATH/src/github.com/CovenantSQL/CovenantForum/cmd/forum && \
$GOPATH/bin/forum start
Obtain OAuth 2.0 credentials (client_id and secret) from at least one of the providers (Google, Facebook, Github) so users can log into the web application. The OAuth callback url will be <base_url>/oauth/end/<provider>. The <base_url> is where the forum web app will be mounted on your site and the <provider> is the lowercase provider name. For example, if base_url is https://my.website.com/forum/, then the oauth callback url for google will be https://my.website.com/forum/oauth/end/google.
Download and compile the forum binary:
$ go get -u github.com/CovenantSQL/CovenantForum/cmd/forum
Inside an empty directory run:
$ forum init
This will generate an initial configuration file "forum.conf" inside the current dir.
Edit the configuration file to set the server listen address, the base url, the database and file storage parameters, OAuth credentials, etc.
CovenantForum is derived from a simple traditional forum disintegration/bebop, but CovenantForum has a totally different purpose. So, we just create a new project.