Forum Requirements

Hey guys. I’ve been kinda stagnant with my coding lately (outside of work) so I wanted to take on a new challenge. I have always wanted to create a messaging board system but I’ve always lacked the knowledge and resources to get it done. Now I want to start. What requirements will I need to get this done?

Obviously PHP/SQL at a minimum…databsaes…anything in particular? Rough steps that I’ll need? How should my databases be structured? One for members, one for topics…?

Does your job work in PHP? You should build this in whatever they work in.

You’ll only need/want a single database, since the data is related to a single app. You will need a basic understanding of Database Normalization, but don’t think too much in to it. All you need is a rough idea and how to better structure your data will come with experience. Spending too much time on this topic can lead to confusion. And since your app will be based on user input, you’ll need to understand Data Sanitization. How you prevent against this is dependent on the language you choose. I’m a big fan of Prepared Statements no matter what language I’m working in.

You’ll also need to understand that once you learn what you’re doing, you’re going to look back on both your code and database and realize how much it sucks. This is ok and there is probably something wrong if you don’t do this at some point. I assume you’re starting from ground zero on the server-side, so there is probably too much you need to know and the best thing is to get in and get your hands dirty. My suggestion is to use as much AJAX and restful services as possible, since that’s the way the web is heading anyway.

Also, take an agile approach to keep yourself from getting too bogged down. First step, let anonymous users post to a public board. Nothing but some random person posting things and letting other people see them. Once you have this to where it’s nice and semi-polished where you can track IPs of who posts things, go on to the next step and create accounts Don’t start accounts where anyone can sign up, just do a basic account for admins. Don’t worry about letting admins do anything, just let them see things normal users can like user IPs next to posts. There is a lot here, you’ll need to learn how to properly 1-way encrypt and store user passwords. The easiest way to do this will be with a basic MD5/SHA-256 hash, I don’t suggest this but it seems to be more common in the php world. Use an implementation of BCrypt. In PHP that’s called Password_hash I think, but something similar is in just about any language.

2 Likes

My job mainly uses PHP. They have multiple resources though. My job has an extremely large website and I’ve seen pages with ASP, .NET, PHP, a few JSP pages…they run different applications though but the main is PHP. PHP also is what I know (best) so I’m sticking to that. I’ll look into those links. I’ve seen prepared statements being used terminology wise around here, but I never read up on it.

Do you think I should make a static PHP/SQL forum for now? Add AJAX in later (I know almost nothing of AJAX)? I made an AJAX chat years nad years ago but that’s the only thing I did and I forget 100% of it…

Edit-Saw your updated last paragraph - I’ll take that into account. Thanks!

ASP.Net MVC in C# is VERY nice and easy to get in to. I do not like PHP and think it’s an absolutely terrible way to learn programming, but I won’t get in to that and I’ll leave it at this. :grimacing:

Don’t overthink AJAX. It’s just javascript asking for stuff from the server instead of traditional HTML and page loads. Start with simple stuff like jQuery’s .load() and just suck in pure HTML and display it on the form.

I also didn’t mean to build the entire thing in AJAX like Discourse. :smile: I just meant to use it where it’s possible to get more familiar with it.

2 Likes

How would you ideally create your forum? I want to do it in PHP so Iget hte learning experience. My knowledge has mainly been around HTML/CSS. I’ve been learning javascript for a bit now but I want to delve more into PHP/SQL to get more job opportunities and raise my self wealth. HTML/CSS is a very good start for me but I want to have more to throw at the table. How would you approach this.

Never thought about it, I’ve never really had a reason to. I guess if I did, it would be a single page javascript app like Discourse. The backend language doesn’t really matter.

1 Like

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.