adrfig966 / ImBoard

A message board system made in Express. It features dynamic routing which allows for arbitrary board sections to be created. There is also a social ranking algorithm implemented.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ImBoard

An image board system built using NodeJS as a server, along with the Express framework for request handling and routing. MongoDB is used as a database and Nunjucks is used a templating engine to render views via NodeJS.

View live web app here - ImBoard.

Features

  • Dynamic sections - by entering a path in the format sectionname/posts you can visit a page that will display posts for that specific "section."
  • Post and comment throttling
  • Image or text posts - Create posts with images or just text
  • Reply to comments - By using a simple syntax in their comments users can reply to existing comments in a post's comments. The syntax is as follows >>XXXXXXXXXXXXX - this will generate a link in the new comment which will highlight and scroll to the comment referenced.
  • Optional sign in with Google
  • Like or dislike posts (if signed in)
  • Post anonymously while retaining an identity by entering a string which is then hashed. The hashed string will act as a person's "username" since only they know the string to generate that specific hash.
  • Post deleting mechanic - this message board was designed around the limitation of database space and because of this posts are deleted once a post limit is reached for a specific section. The posts are deleted according to a ranking algorithm where the lowest ranked post is deleted first.
  • Ranking algorithm - A ranking algorithm is implemented by utilizing the MongoDB aggregation pipeline. The algorithm takes into consideration likes, views, and comments. The algorithm features a time decay which will lower a posts score over time based on its age. It also takes into consideration the last time someone commented and penalizes the posts accordingly. I modeled this after the algorithms used by Facebook and other social media platforms.

Todo

  • A basic admin area to allow the moderation of posts.
  • More UI improvements

About

A message board system made in Express. It features dynamic routing which allows for arbitrary board sections to be created. There is also a social ranking algorithm implemented.


Languages

Language:JavaScript 65.2%Language:Nunjucks 22.6%Language:CSS 11.1%Language:Shell 1.0%