Timothy's Blog

A personal blog by Timothy Grindall

Node JS Forum Project

January 31st, 2019 by

So I recently embarked on the journey to create a forum website using Node JS which is a back-end programming environment for Javascript. I started this project on December 15th and mostly finished by the 19th but I did spend a few days before that watching a tutorial on Youtube to refresh my Node.js skills. I had considered it finished but recently started working on it again to add an image modal window to the project so when users click on images they get enlarged. I created the whole project in Node.js using the Express library and Mongoose library and I used Passport for user authentication.

Screenshots follow below:

Front Page
“Finished Projects” sub forum
“Asteroid 23eb6” thread page
login page
profile page

So how does this forum work? Well, when a user wants to make a post the page sends a request to the server where my Node.js code handles the request and stores the post contained in the request in a database. This post is then listed in it’s correct sub forum and is pulled from the database when it is needed so viewers can view it. So the website is entirely dynamic.

I included the ability to log in and make posts, delete posts, reply to posts, upload images, and upload post thumbnails (automatically created from first image in a post). You can also create a user profile for your username and others can see it when they click on your username. I created a section to display the most recent posts from any of the sub forums on the front page and used AJAX requests to update how many unread new posts there were in each sub forum. Overall I tried to make it a full-featured forum site.

I modeled this site after the http://www.blenderartists.org site which is a site I’ve used a lot and highly admire. I had to use some site to emulate because I don’t have that good of an idea of what a good forum site looks like off the top of my head.

I had a lot of fun with this project and really was able to apply a lot of what I had learned about Node.js and back-end programming from tutorials. You can’t learn everything from tutorials though and sometime you need real-life application. I didn’t put a lot of work into the styling of the page but I did try to make it make sense at least. I don’t know when this knowledge of Node.js and back-end programming will come in handy, but I’m sure it will come in handy someday. Maybe somebody will want to have me build a forum for them?

If any of you need a website done for you even if you don’t need a full-featured forum, email me because I can create custom websites for small businesses for a low cost! Click the link ‘Web Design’ at the top of this page to see my portfolio and learn more.

If you have any questions about this project or how I created it just leave a comment down below!