ForumDirect is een forumsysteem, discussion board, of bulletinboard waarop gebruikers over diverse onderwerpen kunnen meepraten.

Het systeem is ontwikkeld met het PHP framework ‘CakePHP’. Het framework staat bekend om zijn makkelijke manier van werken en een enorme stortvloed aan veiligheid. 

Het forum is, zoals zo’n beetje elk ander forumsysteem, opgebouwd in forums en sub-forums. Deze worden middels een relatie opgehaald, en vervolgens op de voorpagina van de website weergegeven. Het laatste topic van elk sub-forum wordt via een inner-join opgehaald. Ieder sub-forum kan daarnaast ook weer apart bekeken worden. 

Als permissiesysteem maakt het systeem gebruik van RBAC, wat geregeld wordt via de CakePHP-plugin ‘TinyAuth‘. Met behulp van een database authorization adapter worden de rollen en diens permissies opgeslagen in de database, en daar uiteraard ook weer vandaan gehaald. Dit maakt het werk voor een forum beheerder uitermate makkelijker, zeker gezien het feit dat hij niet gebruik hoeft te maken van speciale configbestanden. 

Topics worden opgehaald met daarbij de auteur en de berichten. Dit kan heel simpel middels een een-op-een relatie met de user_id kolom in de topics en de posts. Een topic bevat daarnaast ook een slug; dit is een SEO-vriendelijke URL waarmee het topic makkelijker teruggehaald kan worden. Zowel topics als berichten kunnen ook gerapporteerd worden – hier later meer over. 

Het forum systeem heeft, naast alle basisfunctionaliteit, ook een chatbox. Dit wordt aangedreven middels websockets; de server controleert de sessie en haalt met behulp daarvan de rest van de gegevens van de gebruiker op. De chatbox geeft daarnaast ook emoticons en links weer. In feite is het echter zeer triviaal om de server offline te halen, dat kan door een enorme stroom aan pakketten te versturen, zonder hierbij externe services te gebruiken. Een while-loop  in de console die telkens een verbinding opent is in principe voldoende. 

Rapporteren 

Berichten en onderwerpen kunnen, zoals eerder aangegeven, gerapporteerd worden. Dit is dermate handig aangezien het zeker kan voorkomen dat een gebruiker de regels overtreedt. Zowel de reden die meegegeven kan worden als de gebruiker die het gerapporteerd heeft & het onderwerp/bericht Id zelf worden opgeslagen, wie een moderator makkelijk kan teruglezen in het daarvoor bestemde moderatie paneel. 

Waarschuwingssysteem 

Gebruikers kunnen van toezichthouders waarschuwingen krijgen die percentueel worden uitgereikt. Zodra een gebruiker op het limiet zit, in dit geval 100%, worden ze per direct verbannen, tot de waarschuwingen weer verlopen. De tijd wordt opgeslagen met een datetime datatype. 

Beheerders en moderatie paneel 

De administrator van de website kan heel gemakkelijk de permissies van het systeem nachecken en bijwerken indien nodig. Ook kan hij forums & sub-forums toevoegen, en een gebruiker aanpassen. 

De moderators kunnen via het moderatie paneel de reports en topics en berichten beheren. Ze kunnen ze echter niet aanpassen; wel verwijderen, of bij topics het geval, sluiten. Daarmee worden reacties op een topic verboden. 

De broncode ervan staat op GitHub.