This project aims to develop a backend for a question and answer forum similar to Reddit, using creational and design patterns. The project is implemented in Python and hosted in a GitHub repository for the software modeling subject.
- Users: Users are the people who interact with the forum, either to post questions, answer them, or read other people's answers.
- Administrators: Administrators are responsible for moderating the forum content, deleting inappropriate posts, and managing user accounts.
- Developers: Developers are responsible for creating and maintaining the forum backend.
The forum's business model is based on advertising and user voluntary donations. Users can see ads while browsing the forum. Advertisers pay to place their ads on the forum and user pay to be ad free.
- Python: Programming language used to develop the forum backend.
- Django: Web framework used to develop the forum frontend.
- GitHub: Platform used to host the project source code.
- Vs code: Main IDE for development.
-
As a user, I want to be able to post a question, so that I can get help from the community.
-
As a user, I want to be able to answer a question, so that I can help other users.
-
As a user, I want to be able to vote on a question or answer, so that I can indicate the quality of the content.
-
As a user, I want to be able to search for questions and answers, so that I can find the information I need.
-
As an administrator, I want to be able to delete inappropriate posts, so that I can keep the forum clean and safe.
-
As an administrator, I want to be able to manage user accounts, so that I can control who has access to the forum.
- User: username, id, email, pasword, post_question(), vote_question(), comment_post(), Question[E],Answer[E].
- Question: question_id, title, body, creation_date, User[E], vote count.
- Answer: Question[E], body, creation_date, vote_count, User[E]
- Administrator(User): delete_post(), delete_answer(), ban_user().
- User Registration:
- User Login:
- Posting Question:
- Posting Answer
- Voting Content
- Searching Content
- Moderating Content







