The following is a project proposal of a Social Discussion Website database system. The proposal will contain a short and brief description of the program that we will create, discuss functional and non-functional requirements along with the limitations of the database and it will give a detailed E/R model of the database schema we will use.
The outline of the proposal starts with the project description which will try to give an insight on what our database system will be and how it will be used. Further on the requirements section will try to discuss in detail what the requirements for building this system will be and what will be the organization of the system based on these requirements. The non-functional requirements will focus on the discussion of the performance, usability, capacity, reliability and the security of the database. These will try to point out interaction with the database. This discussion will be followed by the Limitations that the organizational structure of the database will face based on the Entity-Relationship model that we have introduced.
The database build-up that is going to be outlined in the following is a social discussion website similar to Reddit and vBulletin. This platform aims to connect the users in a shared environment for their subjects of interest. It will help people who want to learn something new on a particular subject or topic by letting them ask their questions on the system under the topic. There will be comments by the other users which will appear as an answer to the question or as a new information for the topic being discussed. The users will be able to follow other users that they like and report discussions which violate the terms of the discussion.
Categories will be associated with a category name which will appear as a heading containing many topics related to it. The number of such topics which are related to the category and the number of the subtopics is kept and stored. These categories can be created and modified by an administrator of the website.
Topics consist of a topic name which will appear as a heading for the relevant topic. Each topic may be associated with many categories and they will contain subtopics. The topics can be created by the users of the database and they can be approved by the moderators of the database.
Subtopics consist of the name, description and they will contain a number of comments. In order for the subtopic to exist firstly, the topic must be created. Similarly to topics, subtopics can be created by the users and approved by the moderators. They will contain a certain number of comments that users have on this subtopic.
A comment is a piece of text, image, emoji or icons or any combination of these that the users will be able to create. In order for comments to be created a user must have created them. Comments are not only made to a subtopic but they can also be made to other comments that other users may have left on the topic. These are moderated and checked if they violate any of the website policies by the moderator and they can also be liked or reported by the users.
A user can choose to follow other users based on their activities and the topics that these users are interested in. The user of the website can also have favorite comments that are made on the on a specific subtopic. He can either add more favorites or discard old favorites. They will be of two types of Moderators and Regular users.
Moderators are users who have the permissions to approve topics, subtopics and moderate the comments made on these.
A regular user is one user of the website who can have a different status (Ex Active, Away, On Vacation etc).
Favorites are comments which are embedded based on the preferences of a user. In order for favorites to be populated a user must have added his favorite comments.
3.1. Functional Requirements
Functional requirements of Social Discussion Website free source code in PHP are,
3.1.1. Regular Users
are able to rearrange their profile info. Can search through topics and subtopics. Follow each other. are able to like or report comments. Can make comments on subtopics and others’ comments. Are able to save comments as a favorite. Are able to discard comments from their favorite. Can change their status from online to offline, away, busy etc.
Moderators are able to moderate comments. Approve topics and subtopics. Delete reported or inappropriate comments.
Admins are able to modify categories. Administrate users. Assign moderators. Ban or suspend moderators by looking at their last login dates.
3.2. Non-Functional Requirements
A system should have a response time of average 5 seconds to have a consistent user experience.
System and user interface should be easy to understand and use. Users should be able to use all functions with ease.
Users should be able to access the main page from any page. All pages should refer to a default theme and layout. An additional tutorial or help page should be available for users in need of help or guidance.
The database should be able to consist of large amounts of data. High numbers of Users, Categories, Topics, Subtopics, Comments, and Comments of Comments should be able to be kept in the database.
System service should be up and online 24/7 and 365 days except for scheduled maintenance. The system should be able to perform the given tasks without fail. If a task fails situation should be logged and recovery should be performed as fast as possible without keeping the user waiting.
A system should provide user authentication and data privacy. For authentication procedure system will use unique user id and password per user.
3.3. Constraints (Pseudo Requirements)
Moderators can only moderate or approve comments subtopics and topics that he or she was assigned. e.g. Moderator who approves Dog Topic cannot approve a comment in Science Topic/Subtopic.
When a user account is banned or suspended he or she cannot log in to the system during his/her ban/suspend time.
When user’s account is terminated/deleted her or her account info, all of his or her comments, likes, topics, subtopics will be deleted.
Users cannot report the same comment again in predefined time interval e.g. the user cannot report a comment two day in a row.
A user can only add 1000 comments to their favorite. Comment can include up to 4 images/gifs. Comment can only be up to 5000 characters.
A user can add images to comments which are smaller than 1920 x 1080 as resolution and 5 MB as size. Moderator cannot create or modify categories.
This project is a social discussion website which is inspired by sites like vBulletin, Reddit, and Quora. In this website, people can interactively discuss a particular topic for which they feel interested in and share their opinions and knowledge with other users as well. The system that we intend to build tries to capture the specifications and the relations between the users, administrators, the categories, topics, subtopics and the comments given in a hierarchical manner.
This proposal tries to explain the implementation of the system as a whole, how each part is used and why it is considered as a separate part and not as an embedded attribute. This is going to be important for the later implementation of the system since this report gives the conceptual design and takes into consideration the difficulties that we might face when implementing it. All the non-functional requirements and limitations presented above contribute to the later implementation of the system as well. Any further development of our project will be given in our web link.