I created GrimBB to further my own understanding of how a forum works, and to better one that I had worked on eons ago. It was very rough and basically anyone could post at any time and they could use your screenname as it wasn't unique. You had to input your screenname every time, there was no login/logut, no categorical organizations. Honestly it was more like a shoutbox than a forum. Administrative editing consisted of going into your ftp and removing stuff manually. So yes lots of improvements were needed. I also thought if I ever started up my own personal site it would be cool to have my own forum on it. Needless to say this started out as a very small project and somehow got complicated very quickly.
I browsed on over to phpBB to check out what their forum was about, but I found it very complicated, along with others I checked out. Furthermore, most BBS (Bulletin Board Systems) out there all need database support, something like MySQL for instance. Well, I'm a pirate and I don't deal with paying for stuff. Most hosts (free hosts at that) require payment/ads or whatever for database access or don't even provide it. Well being the grimmest of pirates that I am I said to hell with them and decided to create my own database structure using flat files (also I wasn't interested in learning about database commands and all that jazz, pirates are lazy, we make due with what's on hand). What did this mean for everybody else? That basically all you'd have to do is upload the scripts to your server and GrimBB would run (essentially). Actually what it means now is that if your webhost provides PHP 4.3.0 support (or greater) GrimBB will run just fine (assuming you have permission to execute file and directory read/write functions).
However, I digress. In creating a forum I didn't want to have all these fancy doo dads that others like phpBB and Drupal have. I just wanted to meet the basic necessities of a forum (or at least what I estimate are the most basic necessities). This meant GrimBB would be very slim in what it does. Nevertheless, the code is open source and I am all for people creating MODs for GrimBB and expanding its functionality. So what are the basic necessities of a bulletin board? Well here's what I have assumed for my own purposes:
That's THE most essential characterisitic of a bulletin board. The ability to make a post. However, that's basically an anonymous shoutbox. Not very dynamic or elegant so it's necessary to add some organization to these anonymous posts, which I achieve in the following manner:
- Unique usernames
- Time stamps
- Placement into categories/forums that denote the post's relevance/content
Well, now we've got a bulletin board. However, we have to keep in mind that not everyone on the net can be trusted to make a valid posts. So what constitutes a valid post?
- It shouldn't be empty
- There should be no malicious XSS attacks
- It should be relevant to the category/forum/thread
All of these imply that we need some sort of error checking or handling services. Therefore, the bulletin board will also require the following:
- Error handling/redirection pages
- Administrative control over content
The second bullet means we need an administrator to monitor the board (in this particular instance of GrimBB, that would be me). The administrator should minimally be able to do the following:
- Lock threads both manually and automated(no more replies are allowed to the topic)
- Move threads (reorganize threads if they were misplaced by the original poster)
- Delete threads (delete a thread if it is irrelevant)
- Modify threads (change the actual content of the thread if some sort of useless or non-acceptable data is entered that escapes the automated functions)
- Deleting usernames both manually and automated
- Banning IP addresses
- Control over board structure (forums/categories)
- Preventing registration (perhaps it's a private board/blog)
Needless to say the administrator can do alot. However to the date of this post most of these administrative functions are still as of yet unimplemented. To exercise them the administrator would have to manually do so by accessing his/her web folder, and manually altering the files.
Other features that are included in GrimBB but that are not essential are:
- Search capability
- Visual control through CSS
These features were added so as to provide people who want to use GrimBB an easy way to control how GrimBB looks ('cause not everyone wants their board to be an exact reproduction of this one), and searching was included to make finding what you want on the board easier (so as to not have to navigate through each thread on the board to find what you need).
Furthermore, GrimBB always keeps your navigation history readily available atop everything else so that someone navigating it doesn't forget where they are or how to get somewhere else they want to be.
So what can you use GrimBB for? Well in one line GrimBB is a PHP 4 Open Source Flat File Bulletin Board System. Which means what it says and you can use it, tweak it, mod it, upload it, distribute it, hate on it, learn from it, whatever you want to do to it essentially. GrimBB has a link programmed into itself to always refer back to here, the place where GrimBB was born. All I ask is that you keep that link intact, and if you don't like how it looks well then add least add a textual link that refers back to me so I can get credit for my work and so that others can use GrimBB as well. Furthermore, keep on testing GrimBB, report your errors here, find hacks/exploits so that I can improve it further. If you make any MODs or cool new styles, post them here as well. Help make GrimBB something fun and accessible to everyone.
SOME NOTES:
- GrimBB takes place purely on the server side. It doesn't need javascript or cookies to function.
- GrimBB does not use BBCode and I am adamant about not implementing it. I enjoy being able to type in native HTML tags into my posts and not having to use those square bracket things.