Brian Gordon

Community

I started this project to explore web technologies with the goal of a better understanding of how web sites produce and deliver content to the browser. Many parts of the process are more or less obvious from browsing the internet and exploring the features of a web browser, but I knew that diving in and making something would be instructive.

An interesting web application with which I've always been impressed is the internet forum. I had a few ideas that I thought were worthwhile so making my own forum application seemed like a good choice for my project. My application is written in procedural PHP, stores data in a MySQL database, and delivers pages in HTML.

  • Users can subscribe to threads that they want to follow.
  • Threads can be marked private. Private threads are invisible to users who have not been invited. In a private thread, users are identified by who invited them to discourage inviting untrustworthy users.
  • Activity on watched threads and personal messages appear in the user's inbox on a per-user basis, and the system tracks new and read messages. It's possible to reply directly from the inbox, so the community can be read like a bulletin board or like a newsgroup.
  • All user input is sanitized to protect against SQL injection and only privileged users can add and delete boards.
  • PHP sessions allow authentication to persist while the user keeps the session cookie or passes the session nonce as a query variable.

Click the thumbnails below to see some of these features in the application:


You can access a live demo of my Community application here:
http://www.brian-gordon.name/demo/community/
Sorry, I disabled the demo for now. If you want to see it, contact me.

A zip of the PHP source of demo is available here. install/index.php contains SQL statements to construct the database required to run the application.