Project Proposal

Purpose / About

The name of the website is Music World Forums (probability will change). The website consists of a forum dealing with topics about music such as all types of instruments, equipment, bands, and music genres. The purpose of the website is to let people discuss about the various different topics by allowing them to create new threads under different categories/topics that are related to music. They can share their opinion, discuss, and communicate with others who share the same interests.

Homepage

The homepage will display the various topics in the forum where the user can browse each topic and subtopic the threads created by other users and reply within each thread to the thread creator or a comment. Going back to the homepage, the page will display different information based on whether the user is logged in or not. This includes recent threads and posts and different links on the navbar depending on the user's level, guest, user, mod, or admin.

Front-End / Back-End Features

Some front-end features that will be available are a fully responsive design using the grid provided by Bootstrap 4 / MDBootstrap with JQuery to help with form validation, some design animations, and overall design. For the back-end there will be more form validation when creating new accounts, updating user's passwords, usernames, and email. There's different action's available if the user is a mod or an admin. These include an admin panel where the admin can update user level for new mods or banning users for their behavior. There's a login system with user accounts, thread creation, and comment sections. I plan to also include a friending system if time permits.

User Actions

If the user is not registered then there will be limit on what they can do. They'll only be able to browse the forum but no interactions with forum members, looking at their accounts, or replying to a thread or comments. If they do create an account and login then they'll be able to upload and update their profile picture, change email, username, and password. Most importantly they'll be able to post comments or start a new thread.

Pages / Database

Starting with the database there will five tables: users, categories, topics, threads, and posts. The users is self-explanatory and is the table which keeps the user's details, the categories table will keep records about the different categories dealing with music such as bands, music equipment, etc. Within each category there will be a topic more specific than the category such as different instruments or amps in music equipment or different artists under bands. Next, the threads table is each thread created by users belonging to that topic. Lastly, the posts are the comments within each thread. As for the number of pages, it may vary as I start, but I estimate at least 10 .php files for the different forms on the website, each web page: homepage, categories, topics, threads, account, about, contact, new thread, new category, mod panel, and admin panel. It's possible I'll add more if I have the time. I plan on adding another table for users to display the music equipment they own.

Website Design

The website will be a classic content + sidebar for the most part, however, there will be parts without the sidebar such as inside a thread or sometimes it'll be switched sidebar + content like in the user's account. The website will have a navbar at the top with different links depending login status and user level. Each category, topic, and thread will be clickable, as well as usernames and thread number / ID.

Similarities / Differences

I'm sure there's probably tons of similar websites given that a forum can't differ much in functionality. But there's one called Ultimate-Guitar, which is a site about sharing song tabs, but also has a forum that is essentially the same as I described. User accounts, friend system, topics, comments, replies, etc. I'd like to incorporate a way for friends to message each other, as well as having the ability o add friends, and reply to individual comments. I'll try and add this functionality if I have the time. Being a forum makes it similar to thousands of other websites. What makes it different is that I'll be developing. What I notice a lot of the time is that people often use prebuilt forums like vBulletin, phpBB, Wordpress plugins, and so on. Although, these are kind of a dying breed.