-
Notifications
You must be signed in to change notification settings - Fork 1
451 ‐ Requirements
kristinatrajkovski edited this page Oct 25, 2024
·
8 revisions
- 1.1.1.1 Users shall be able to create new posts on the forum.
- 1.1.1.2 Users shall be able to attach code snippets to their posts.
- 1.1.1.3 Users shall specify the programming language relevant to the post (e.g., Python, C++).
- 1.1.1.4 Users shall select up to 5 predefined labels to categorize their posts.
- 1.1.1.5 Users shall have the ability to format text (e.g., bold, italics) within their posts.
- 1.1.1.6 Users shall be able to include external links and media (e.g., images) in their posts.
- 1.1.1.7 Users shall be limited to creating a maximum of 3 questions per day.
- 1.1.1.8 Users shall be able to edit or delete their posts.
- 1.1.1.9 Users shall have the option to add a bounty to their posts to attract more attention.
- 1.1.2.1 Users shall see the most active posts in the feed by default.
-
1.1.2.2 Users shall be able to filter questions in the feed based on:
- 1.1.2.2.1 Post status (answered or unanswered)
- 1.1.2.2.2 Programming language
- 1.1.2.2.3 Predefined labels
- 1.1.2.2.3 Date interval
- 1.1.2.3 Users shall be able to sort posts in the feed by creation time or popularity.
- 1.1.2.4 Users shall be able to upvote and downvote posts directly from the feed.
- 1.1.3.1 Each programming language shall have its own dedicated forum page.
- 1.1.3.2 Each forum page shall display posts tagged with labels relevant to that programming language.
-
1.1.3.3 Users shall be able to apply filters and sorting options on forum pages:
- 1.1.3.3.1 Filters: Labels, programming language, post status (answered/unanswered)
- 1.1.3.3.2 Sorting: Recent activity, popularity, creation time
- 1.1.4.1 Users shall be able to comment on any post. (Define character limit)
- 1.1.4.2 Users should be able to edit their own comments. (Editing may not be allowed)
- 1.1.4.3 Users shall be able to comment on other comments to facilitate nested discussions.
- 1.1.4.4 Deleted comments shall display only the commenter's username and indicate that the comment was deleted while keeping the child comments visible.
- 1.1.4.5 Users shall be able to execute code snippets attached to comments and view results.
- 1.1.4.6 Users shall be able to share modified code snippets as part of their comments.
- 1.1.4.7 Comments on posts shall be sorted based on the number of upvotes received.
- 1.1.4.8 Users shall be able to delete their own comments.
- 1.1.5.1 Users shall be notified if their code execution exceeds defined time or resource limits. (Define limits and resources)
- 1.1.5.2 Code snippets shall be executed in a secure, isolated environment to prevent malicious activities.
- 1.1.6.1 Users shall be able to browse a catalog of programming languages sourced from Wikidata.
- 1.1.6.2 Users shall be able to view detailed information about the language's origin.
- 1.1.6.3 Users should be able to filter programming languages based on attributes such as syntactic similarity or domain of use.
- 1.1.6.4 Users shall be able to search for programming languages by name or attributes.
- 1.1.6.5 Users should be able to see related programming languages, such as predecessors, successors, or those with similar features.
- 1.1.6.6 Users should be able to compare multiple programming languages side by side and see their strengths and weaknesses.
- 1.1.6.9 Users should be able to access code examples or snippets associated with programming languages.
- 1.1.7.1 Users shall be able to search for questions within the forum using labels. Those labels are predefined by admins.
- 1.1.7.2 Users should be able to filter search results by date range, programming language, tags, or user.
- 1.1.7.3 Users should be able to sort search results by relevance, date posted, or number of responses.
- 1.1.7.4 Users should be able to receive suggestions for similar questions when viewing a question.
- 1.1.7.5 Users should be able to save or bookmark search queries for future use.
- 1.1.7.6 Users shall be able to search within specific forums or categories.
- 1.1.7.7 Users should be able to search for code snippets within questions and answers.
- 1.1.7.8 Users should be able to receive notifications for new questions matching their saved search criteria.
- 1.1.7.9 Users shall be prevented from posting duplicate questions by being prompted with similar existing questions.
- 1.1.7.10 Users should be able to use advanced search operators (e.g., AND, OR, NOT) in their queries.
- 1.1.7.11 Users should be able to see highlighted search terms in the search results.
- 1.1.8.1 Users shall be able to search for questions without registering.
- 1.1.8.2 Users shall be able to sign up via website and the mobile application.
- 1.1.8.3 Registered users shall be able to log in and log out via website and the mobile application.
- 1.1.8.4 Registered users shall be able to login via their e-mail with their password, or a direct link to their mail addresses.
- 1.1.8.5 Registered users shall be able to delete their account.
- 1.1.8.6 Logged In users shall be able to log out.
- 1.1.9.1 Users should be able to add a profile photo.
- 1.1.9.2 Users shall be able to edit their names.
- 1.1.9.3 Users shall be able to delete their account.
- 1.1.9.4 Users shall be able to list their own posts in their profile.
- 1.1.9.5 Users shall be able to list their own comments in their profile.
- 1.1.9.6 Users should be able to list their bookmarked posts in their profile.
- 1.1.9.7 Users shall be able to update their passwords with a confirmation link to their mail addresses sent.
- 1.2.1.1 The system shall retrieve programming language data from Wikidata.
- 1.2.1.2 The system shall provide a user interface that displays programming languages in an organized manner, such as lists or grids (or both).
- 1.2.1.3 The system shall allow users to view detailed information and basic examples about each programming language.
- 1.2.1.4 The system shall implement filtering functionality, enabling users to filter programming languages based on fundamental attributes.
- 1.2.1.5 The system shall implement a search function to search programming languages by name or attributes.
- 1.2.1.6 The system should display related programming languages based on predefined relationships in the data.
- 1.2.1.7 The system should allow users to compare multiple programming languages side by side.
- 1.2.1.8 The system should allow users to bookmark or save programming languages for future reference.
- 1.2.1.9 The system should provide an option for users to report incorrect or outdated information, which will be reviewed by administrators.
- 1.2.1.10 The system should support localization, displaying data in different languages if available in Wikidata.
- 1.2.1.11 The system shall ensure that the user interface for browsing is accessible and user-friendly.
- 1.2.1.12 The system should provide access to code examples or snippets associated with programming languages.
- 1.2.1.13 The system should allow users to customize the display settings for browsing programming languages.
- 1.2.1.14 The system shall ensure data consistency and integrity when fetching and displaying information from Wikidata.
- 1.2.2.1 The system shall provide a search functionality for users to search questions in the forum using keywords.
- 1.2.2.2 The system shall include filtering options in the search functionality, such as date interval, programming language, labels, or user.
- 1.2.2.3 The system shall display search results matching the search criteria, including question title, brief excerpt, date, and number of answers.
- 2.1.1 The system shall restrict the visibility of user's data (email etc.).
- 2.1.2 Strong encryption mechanisms shall be implemented to ensure that no third parties shall be able to access any sensitive data such as passwords.
- 2.1.3 The system should provide a password recovery mechanism sending a recovery link to the user's email.
- 2.1.4 The system shall provide tips to users to ensure that they create strong passwords.
- 2.1.5 Strict controls should be implemented to restrict the access to sensitive data like email.These data shall only be accessed when it is necessary,like password recovery.
- 2.1.6 The system should use HTTPS over HTTP protocol to provide more security.
- 2.1.7 The system shall comply with the Turkish Personal Data Protection Law (KVKK).
- 2.2.1 A request by the user to the server such as searching for a label, question, etc. should be responded in less than 3 seconds.
- 2.2.2 The system should not allow more than two requests at a time by a single user.
- 2.3.1 The application shall be available on both a website and a native mobile application on Android platforms.
- 2.3.2 The application should support English and Turkish characters.
- 2.4.1 Application should always run on the server.
- 2.5.1.1 The system shall be able to accommodate text and code execution boxes within question descriptions and comments.
- 2.5.1.2 Forum questions should be able to be linked/grouped together according to labels.
- 2.5.2.1 User profile should contain the authored questions.
- 2.5.2.2 User profile should contain the answered/commented questions.
- 2.5.2.3 User profile should have a unique email linked to it on the whole platform.
- 2.5.3.1 Users shall be able to register only if they provide a non-empty name, an e-mail and a password.
- 2.5.4.1 Users should be informed about a new login device and password changes via their registered mails.
- 2.5.5.1 Passwords shall be accepted only if the password includes at least one uppercase letter, one digit and one special character.
- "Users" except for 1.1.9 Profile part means "registered users".
🏡 Home
🧑💻 Team Members
- Ceylin Gebes
- Mustafa Atak
- Kristina Trajkovski (Communicator)
- Emin İpekdal
- Eray Eroğlu
- Halil Karabacak
- Damla Kayıkçı
- Serhan Çakmak
- Fatih Akgöz
Yigit Kagan PoyrazogluMuhammet Berkay KeskinAhmet Burak ÇiçekÖzgür ÖzerdemTaha Topaloğlu
📓 Meeting Notes
📓 Lab Reports
📑 Lab Documents
CMPE 352
📍 Project
💎 Customer Requirements Milestone
👑 Design and Implementation
Testing 🔬
📓 Meeting Notes
- Meeting Notes #20 - 15/05/2024
- Meeting Notes #19 - 14/05/2024
- Meeting Notes #18 - 13/05/2024
- Meeting Notes #17 - 09/05/2024
- Meeting Notes #16 - 02/05/2024
- Meeting Notes #15 - 25/04/2024
- Meeting Notes #14 - 21/04/2024
- Meeting Notes #13 - 19/04/2024
- Mobile Team Meeting Notes #2 - 16/04/2024
- Web Team Meeting Notes #1 - 14/04/2024
- Mobile Team Meeting Notes #1 - 12/04/2024
- Meeting Notes #12 - 11/04/2024
- Meeting Notes #11 - 08/04/2024
- Feedback Meeting Notes #1 - 28/03/2024
- Meeting Notes #10 - 28/03/2024
- Meeting Notes #9 - 16/03/2024
- Meeting Notes #8 - 14/03/2024
- Customer Meeting Notes #1 - 14/03/2024
- Meeting Notes #7 - 10/03/2024
- Meeting Notes #6 - 08/03/2024
- Meeting Notes #5 - 07/03/2024
- Meeting Notes #4 - 29/02/2024
- Meeting Notes #3 - 22/02/2024
- Meeting Notes #2 - 18/02/2024
- Meeting Notes #1 - 15/02/2024