Requirements of CMPE451 - bounswe/bounswe2025group5 GitHub Wiki
🎨 Glossary
- User: An individual who interacts with the system, either by browsing or engaging with its features; may be registered or unregistered.
- Registered User: A user who has created an account by registering with an email and password, thereby gaining access to additional features such as waste logging, setting goals, and participating in challenges.
- Non-registered User: A user who does not have an account; they can roam in forums and view the profiles of other registered users.
- Account: The credentials and associated data a user creates during registration, enabling them to log in, manage their profile, and access system functionalities.
- Profile: The personal page of a registered user displaying their waste reduction statistics, profile picture, and details such as username and waste reduction goals.
- Waste Log: A daily record where registered users enter the amount of waste they generate, measured with predefined items, grams or kilograms.
- Waste Reduction Goal: The target set by a registered user indicating the desired amount of waste to reduce each week, specified in grams or kilograms.
- Waste Category: Predefined classifications for waste types (e.g., plastic, organic, paper, metal, glass) used to organize and analyze waste tracking data.
- Community Sustainability Challenge: A competitive event with a defined start and end date where registered users commit to reducing waste and earn points based on their performance.
- Points: A gamification metric awarded to users for reducing waste (e.g., 10 points per 500 grams reduced), which can be accumulated and later redeemed for eco-friendly rewards.
- Post: Content created by registered users that shares tips, eco-friendly product recommendations, or sustainability stories with the community.
- Forum: A section of the system where users (both registered and non-registered) can browse discussions, share insights, and interact on topics related to sustainability, waste reduction, and eco-friendly practices.
- Eco-friendly Reward: Incentives offered within the system that users can redeem with accumulated points, such as discount vouchers or eco-friendly products.
- Leaderboard: A ranking display that highlights the top performers in community challenges based on the percentage of waste reduction achieved.
- Achievement Badge: A digital award assigned when users reach predefined waste reduction milestones (e.g., 5kg, 10kg, 20kg), recognizing their progress.
- Visual Reports: Weekly and monthly summaries generated by the system to provide users with graphical insights into their waste data and progress over time.
- Waste Reduction Analytics: The system's computed insights, including the percentage reduction in waste over time, which help users monitor and improve their sustainability efforts.
- Moderator – A designated user responsible for monitoring forum activity, reviewing reports, and taking actions such as deleting inappropriate posts.
- Report – A system feature that allows users to flag content as inappropriate, misleading, or offensive. Reports are reviewed by moderators for potential action.
- Tagging – A feature allowing users to assign keywords or categories to posts to improve content organization and discoverability.
- Semantic Search – A search functionality that goes beyond exact keyword matches by understanding the meaning of words and phrases to provide more relevant search results.
- Batch Data Entry – A feature that allows users to input multiple waste logs at once instead of entering each record separately, improving efficiency.
- KVKK (Kişisel Verileri Koruma Kanunu) – Turkey’s Personal Data Protection Law, which regulates how personal data is collected, stored, and processed, ensuring user privacy and security.
- Activity Streams 2.0 (AS2) - A W3C standard for representing user actions and events in a consistent JSON-based format.
- Activity - A record of something that happens within the system (e.g.,
Like
,Comment
,Follow
,JoinChallenge
). Each activity typically has anactor
(who performed it), anobject
(what it was performed on), and atype
(the kind of action). - Actor - The entity (usually a user) performing an activity.
- Object - The target of an activity.
- Type - The classification of an activity (e.g.,
Like
,Follow
,Create
,Join
). Defines the nature of the action being performed.
⚙️ Functional Requirements
1.1 User Requirements
1.1.1 Account Requirements
1.1.1.1 Users shall be able to register for the system using an email, a username and a password.
1.1.1.2 Registered users shall be able to log in to the system with valid credentials.
1.1.1.3 Registered users shall be able to reset their passwords.
1.1.1.4 Registered users shall be able to permanently delete their accounts through a clear and accessible interface. This action must trigger the irreversible removal of all personally identifiable information at related tables.
1.1.1.5 Registered users shall be able to log out from the system.
1.1.1.6 Registered users shall be able to display their waste reduction statistics.
1.1.1.7 Registered users shall be able to edit their profile, including username and goals.
1.1.1.8 Registered users shall be able to set and update their waste reduction goals in grams or kilograms per week.
1.1.1.9 Registered users shall be able to upload a profile picture up to 2MB in size.
1.1.1.10 Unregistered users shall have limited, read-only access to the application. This includes the ability to view posts, community challenges and read the forums, but excludes any interactive or posting capabilities.
1.1.2 Waste Tracking Requirements
1.1.2.1 Registered users shall be able to log their daily waste generation in grams or kilograms.
1.1.2.2 Registered users shall be able to categorize waste into at least five predefined types (e.g., plastic, organic, paper, metal, glass).
1.1.2.3 Categorized waste shall be tracked using different units based on the type of waste being reduced (e.g., counting individual items for plastics such as bottles, straws, and cups; measuring weight in grams or kilograms for metal waste; and using liters for food waste diverted from landfill).
1.1.2.4 Registered users shall be able to view historical waste data for at least the past 12 months.
1.1.2.5 Registered users shall be able to visualize historical waste data through charts and bar graphs.
1.1.3 Gamification and Challenge Requirements
1.1.3.1 Registered users shall be able to join community sustainability challenges with a defined start and end date.
1.1.3.2 Registered users shall be able to earn points for logging recycling.
1.1.4 Post Requirements
1.1.4.1 Registered users shall be able to create and share posts containing tips, eco-friendly product recommendations, and stories.
1.1.4.2 Registered users shall be able to delete their own posts.
1.1.4.3 Moderator shall be able to see reports that are sent by users about a post.
1.1.4.4 Moderator shall be able to delete a post if it includes inappropriate words or hate speech.
1.1.4.5 Registered users shall be able to save posts.
1.1.4.6 Registered users shall be able to like posts.
1.1.4.7 Registered users shall be able to comment on posts.
1.1.4.8 Registered users shall be able to share posts.
1.1.5 Incentive ,Reward and Feedback Requirements
1.1.5.1 Registered users shall be able to view available badge that they receive that is visible to other users.
1.1.5.2 Registered users shall be able to take badges from the forum activities automatically.
1.1.5.3 Users shall submit feedback, suggest improvements (e.g., new waste categories), and report system-level bugs or issues.
1.2 System Requirements
1.2.1 Performance and Storage
1.2.1.1 The system shall store user data, including waste logs and progress reports for a minimum of 3 years.
1.2.1.2 The system shall process and update waste reduction analytics within 5 seconds after new data entry.
1.2.2 Waste Tracking Requirements
1.2.2.1 The system shall generate weekly and monthly visual reports summarizing waste data.
1.2.2.2 The system shall calculate and display the percentage reduction in waste over time.
1.2.2.3 The system shall generate graphs and charts for visualizing waste data.
1.2.3 Gamification and Incentive Requirements
1.2.3.1 The system shall maintain leaderboards displaying the top 10 users in each challenge, the ranking should be based on the number of completed recycling performance.
1.2.3.2 The system shall assign achievement badges when users reach predefined milestones (e.g., 5kg, 10kg, 20kg waste reduction).
1.2.3.3 The system shall provide a badge catalog where each badge is described.
1.2.3.4 The system shall assign achievement badges when users are in the first three places in the leaderboard for the end of the challenges.
1.2.4 Notification System Requirements
1.2.4.1 The system shall send notification to people for their progress about the goals as a warning.
1.2.4.2 The system shall send notification to people for the update of the leaderboard situation.
1.2.4.3 The system shall send notifications for likes and comments to their posts.
1.2.4.4 The system shall send notifications when users they follow share a post.
1.2.5 Post Requirements
1.2.5.1 The system shall support text, image, and link attachments in shared posts.
1.2.5.2 The system shall include tagging and categorization features to help organize content by sustainability topics.
1.2.5.3 System shall provide semantic search over forum page.
1.2.5.4 The system shall display a reminder message encouraging kindness and respectful communication whenever a user creates a post or comment.
1.2.6 Standardization Requirements
1.2.6.1 The system shall model user interactions (e.g., Like, Comment, Share, Save, Join Challenge) using standardized vocabularies and data formats.
1.2.6.2 The system shall represent user actions following the W3C Activity Streams 2.0 specification where applicable, to ensure consistency, interoperability, and extensibility.
1.2.7 Localization Requirements
1.2.7.1 The system shall provide locale support where users can switch between Turkish and English in the application interface.
1.2.7.2 The system shall have a default locale set to English if no preference is provided by the user.
⚡ Non-Functional Requirements
2.1 User Experience Requirements
2.1.1 Performance Requirements
2.1.1.1 The system shall provide a response time of under 2 seconds for 95% of user actions, including logging waste, viewing leaderboards, and interacting with the community.
2.1.2 Usability and Accessibility Requirements
2.1.2.1 The platform shall support multilingual functionality, allowing translation of all UI elements and content into multiple languages.
2.1.2.2 The system shall provide tooltips, tutorials, or onboarding guides for first-time users.
2.1.2.3 All form inputs shall include inline validation to prevent errors before submission.
2.1.2.4 The system shall require users to confirm critical, irreversible actions (e.g., account deletion, deleting a post with comments) via a secondary confirmation dialog (pop-up) to prevent accidental data loss.
2.1.2.5 All non-text content (images, icons, charts) shall have meaningful text alternative or label.
2.1.2.6 Minimum color contrast ratio of 4.5:1 for text and 3:1 for large text/UI shall be maintained.
2.1.2.7 Interactive elements shall be fully operable via keyboard.
2.1.2.8 Visible focus indicators for all interactive elements (keyboard, mouse etc.) shall be provided for all interactive elements.
2.1.2.9 Navigational components shall be placed consistently through web pages.
2.1.3 Waste Tracking Requirements
2.1.3.1 The system shall ensure waste tracking data is updated in real-time, reflecting the latest user inputs without requiring a page refresh.
2.1.3.2 The waste tracking module shall support batch data entry, enabling users to log multiple waste records at once.\
2.2 Scalability Requirements
2.2.1 The platform should be designed for horizontal scalability, enabling the addition of more servers or cloud instances as user demand increases.
2.3 Security Requirements
2.3.1 User data shall be encrypted to prevent unauthorized access and data breaches.
2.3.2 The system shall enforce strong password policies that new passwords must be at least 8 characters long and include a mix of at least three of the following: uppercase letters, lowercase letters, numbers, and special characters.
2.3.3 The platform should comply with Turkish KVKK, ensuring minimal, accurate data storage and robust security measures to prevent unauthorized access.
2.3.4 System shall ask user for KVKK approval to register.
2.3.5 During registration, the system shall only require the minimum data necessary to create an account: a username, a valid email address, and a password. All other profile information (e.g., biography, profile picture) shall be strictly optional.
2.3.6 System shall enable HTTPS access to the server in order to protect user data from being read while it is being transferred.
2.4 Portability & Compatibility Requirements
2.4.1 The platform shall function correctly on modern web browsers, including Chrome, Firefox, and Edge, without layout or feature issues.
2.4.2 The platform shall be responsive and function correctly on mobile devices, tablets, and desktop screens.
2.4.3 The platform shall support at least one screen reader such as NonVisual Desktop Access (NVDA) or VoiceOver.
2.4.4 The platform shall support text resizing up to 200% without loss of content or functionality.
2.5 Eco-Requirements
2.5.1 The platform shall prioritize hosting providers with certified renewable energy usage and low carbon footprints to align with sustainability goals.