Temporary Requirements - bounswe/bounswe2025group10 GitHub Wiki

1.1.1 Users shall be able to register to the platform via selecting an email, username and a password. The system shall collect only the minimum data necessary for registration and shall provide clear information about data collection purposes during registration.

1.1.2 Users shall be able to login to the platform with either his/her email or username and his/her password.

1.1.3 The authentication system shall support role-based access, including regular user and administrators.

1.1.4 Users shall be presented with a clear, concise privacy policy and terms of service during registration, and explicit consent shall be obtained before account creation. Users must actively acknowledge their understanding and acceptance.

1.1.5 The system shall provide users access to a privacy dashboard where they can view what personal data is stored, how it is being used, and options to download or delete their data.

1.2 Personal Dashboard

1.2.1 Users shall be able to log their waste entries with waste types and appropriate quantities through the dashboard.

1.2.2 The platform shall provide automated progress visualizations in the form of charts to compare their progress in points for different time periods.

1.2.3 Users shall be able to customize their visualizations by selecting specific time ranges and waste types.

1.2.4 The system shall generate weekly and monthly summary reports on waste entries.

1.2.5 The platform shall send these reports via e-mail notifications.

1.2.6 Users shall be able to set personal waste reduction challenges for waste types and goal quantities, then track their progress in the dashboard.

1.2.7 Personal challenges shall include deadlines, rewards, and reminders through app notifications.

1.2.8 The dashboard shall feature an achievement panel to encourage user engagement.

1.2.9 The dashboard shall support multiple visualization formats (graphical charts, tabular data, and text summaries) to accommodate different user preferences and accessibility needs.

1.3 Community Engagement

1.3.1 The platform shall support mass sustainability challenges created by administrators that all users can contribute to.

1.3.2 The platform shall have a leaderboard that displays total points of users to rank them based on their contributions.

1.3.3 The leaderboard shall feature badges and streak freeze reward for contributors.

1.3.4 The platform shall display collective community impact metrics showing aggregated waste reduction achievements and environmental impact.

1.3.5 The community dashboard shall include community-level statistics alongside individual rankings to emphasize collaborative progress.

1.4 Social & Sharing

1.4.1 Users shall be able to create and share posts containing text, images.

1.4.2 The platform shall support hashtags in posts to improve content organization.

1.4.3 Users shall have profiles with configurable privacy settings, allowing users to choose whether their bio and waste reduction statistics are public, private, or visible only to followers.

1.4.4 Users shall be able to like, comment on, and save posts.

1.4.5 A discussion section shall be available for user interactions.

1.4.6 Users shall be able to follow each other.

1.4.7 Users shall be able to view other users' profiles.

1.4.8 Following functionality shall be used for user recommendations.

1.4.9 The platform shall highlight positive contributions through a featured posts section that showcases impactful sustainability stories and achievements.

1.4.10 Users shall receive feedback notifications when their posts, tips, or contributions receive engagement (likes, comments) or inspire others.

1.4.11 Users shall have the option to anonymize their waste reduction statistics in public leaderboards and community features, displaying only an anonymous identifier instead of their username.

1.5 Challenge Creation & Moderation

1.5.1 Users shall be able to create custom challenges with a title and a description.

1.5.2 No prior approval shall be required from administrators; challenges shall be automatically published.

1.5.3 A reporting system with a description shall be in place for inappropriate challenges.

1.5.4 Platform shall recommend challenges for users based on their streak and badge count. The recommendation algorithm shall be transparent and explainable, and users shall be able to view why specific challenges were recommended to them.

1.5.5 Administrators shall be able to create and manage mass sustainability challenges.

1.6 Notifications and Engagement

1.6.1 Users shall have the option to receive email or in-app notifications.

1.6.2 The system shall trigger a maximum of two re-engagement notifications after a user becomes inactive for a long time (a week, a month). Users shall have the ability to opt out of re-engagement communications at any time.

1.6.3 Users shall be able to granularly control notification preferences, including the ability to opt in or out of specific notification categories (challenges, social interactions, reports, re-engagement) independently.

1.7 User Profile Picture and Title

1.7.1 Users shall be able to upload profile pictures, but avatars shall not be required.

1.7.2 Users shall be able to earn badges that are displayed in their user profiles.

1.8 Sustainability Tips System

1.8.1 The platform shall maintain a database of eco-friendly habits to give as tips.

1.8.2 Tips shall have a title and a description text.

1.8.3 Users shall be able to submit tips, like and comment on sustainability tips.

1.9 Moderation System

1.9.1 The system shall provide a post moderation feature that enables system administrators to moderate posts, including the ability to delete comments and delete posts.

1.9.2 The content moderation system shall include one or more of the following mechanisms: manual review, automated flagging, and a reporting system.

1.9.3 When content is removed or moderated, the system shall notify the affected user with a clear explanation of the reason for moderation, the specific policy violated, and information about the appeals process.

1.9.4 The automated content flagging system shall be regularly audited for bias and false positives. Moderation decisions shall be logged with timestamps, moderator identifiers (for manual review), and reasons for action.

1.9.5 The reporting system shall prevent harmful behavior to enable proactive moderation.(by filtering)

1.10 Data Rights & Protection

1.10.1 Users shall have the right to export all their personal data in a machine-readable format (JSON or CSV) at any time.

1.10.2 Users shall have the right to request complete deletion of their account and all associated data. The system shall permanently delete user data within 30 days of the deletion request, except where retention is legally required.

1.11 Activity Feeds

  • 1.11.1 The system shall represent user activities in a standardized format (e.g., logging waste, earning badges, completing challenges, posting content).

  • 1.11.2 Activity feeds shall be chronological.

  • 1.11.3 Activity feeds shall be filterable by activity type.

  • 1.11.4 Users shall be able to view their own activity history.

  • 1.11.5 Users shall be able to view the activity feeds of other users they follow.

  • 1.11.6 Activities shall support likes.

  • 1.11.7 Activities shall support comments.

  • 1.11.8 Activities shall support following other users.

2 Nonfunctional Requirements

2.1 Performance

2.1.1 The system shall support at least 10,000 concurrent users without significant performance degradation.

2.1.2 The response time for 95% of requests (e.g., logging waste, viewing dashboard) shall not exceed 2 seconds under normal load conditions.

2.1.3 The platform shall generate and deliver weekly/monthly reports to users' emails within 30 seconds of the scheduled time.

2.1.4 Mobile and web applications shall load the dashboard view in less than 3 seconds on a standard internet connection (5 Mbps or higher).

2.2 Security-Privacy

2.2.1 All user authentication and data transmissions shall be secured using HTTPS and TLS 1.2+ encryption protocols.

2.2.2 Passwords shall be stored using a secure hashing algorithm (e.g., bcrypt or Argon2) with appropriate salting.

2.2.3 User data (e.g., waste entries, email addresses) shall not be shared with third parties without explicit, informed user consent. The system shall provide users with clear documentation of what data is collected, how it is used, and with whom it may be shared, accessible at all times through a privacy dashboard.

2.2.4 The system shall support role-based access control, ensuring that administrative functions are restricted to authorized users only.

2.2.5 The platform shall comply with data protection regulations such as GDPR, including providing users the ability to delete their account and data upon request.

2.2.6 All sensitive user data (including passwords, email addresses, and personal information) shall be encrypted at rest using industry-standard encryption algorithms (e.g., AES-256).

2.2.7 The system shall implement and enforce a clear data retention policy. User activity logs and personal data shall not be retained longer than necessary for the specified purpose, with automatic purging of data older than the retention period (maximum 2 years for inactive accounts).

2.2.8 All access to user personal data by administrators shall be logged with timestamps and justifications. Audit logs shall be retained for at least 1 year and shall be available for review in compliance investigations.

2.2.9 The system shall have a documented security incident response plan. In case of a data breach affecting user information, affected users shall be notified within 72 hours in compliance with GDPR requirements.

2.3 Quality

2.3.1 The system shall maintain 99.5% uptime, excluding scheduled maintenance windows.

2.3.2 New features and updates shall undergo unit testing (90% coverage) and integration testing before deployment.

2.3.3 The mobile and web applications shall maintain functional consistency across platforms, with responsive design principles applied.

2.3.4 User feedback on bugs or UI issues shall be addressed within 7 business days after verification.

2.3.5 The system shall provide multilingual support (starting with English and Turkish), with all user-facing content easily translatable.

2.3.6 Any automated decision-making systems (recommendations, content flagging, user scoring) shall be documented with their logic, data sources, and potential limitations made available to users in accessible language.

2.4 Accessibility

  • 2.4.1 All user interfaces shall ensure sufficient color contrast between text, icons, and backgrounds to meet WCAG 2.1 AA standards.

  • 2.4.2 The system shall support scalable text up to 200% without loss of content or functionality.

  • 2.4.3 The system shall support full keyboard navigation (tab order, focus indicators, skip links) without requiring a mouse.

  • 2.4.4 Navigation patterns shall be consistent and predictable across web and mobile applications (e.g., headers, menus, and back actions).

  • 2.4.5 The system shall ensure compatibility with assistive technologies (e.g., screen readers, voice control, alternative input devices).

2.5 Interoperability & Portability

  • 2.5.1 The system shall provide standardized APIs (REST/GraphQL) to represent and exchange user activities, challenges, and reports.

  • 2.5.2 Data formats shall comply with open standards (e.g., JSON-LD, ActivityPub, CSV/JSON export) to ensure interoperability with third-party systems.

  • 2.5.3 Users shall be able to export their personal data and activity history (in a portable, machine-readable format) in compliance with data portability regulations (e.g., GDPR).

  • 2.5.4 The system shall allow integration with external platforms (e.g., sustainability apps, social media) where user consent is provided.

2.6 Internationalization & Localization

  • 2.6.1
    The platform shall use standard language tags (BCP 47) for all user-facing content, APIs, and data exchange.

  • 2.6.2
    The system shall support both left-to-right (LTR) and right-to-left (RTL) scripts without loss of readability, alignment, or functionality.

  • 2.6.3
    The system shall apply locale-appropriate formats for dates, numbers, times, and currencies based on the user’s selected language/region.

  • 2.6.4
    Language and locale preferences shall be configurable at the user profile level and automatically applied across web and mobile applications.

  • 2.6.5
    The system shall provide a mechanism to add new languages and locales without requiring core code changes.