Project #5 ‐ ZERO WASTE CHALLENGE - bounswe/bounswe2025group10 GitHub Wiki
Software Requirements Specification
Table of Contents
- Revision History
- Introduction
- Overall Description
- Glossary
- Functional Requirements
- Nonfunctional Requirements
- Technical Requirements
Revision History
| Version | Date | Description | Author |
|---|---|---|---|
| 1.0 | 16.04.2024 | Created the first draft. | Samed, Berkay, Eren |
| 1.1 | 18.04.2024 | Organised and reviewed some requirements. (Not finished yet) | Samed, Toprak, Umut |
| 1.2 | 22.04.2024 | Finalised reviewing Functional Requirements. Only Non-Functional Remains. | Samed, Umut |
| 1.3 | 22.04.2024 | Written the Non-functional requirements. | Toprak |
| 2.0 | 01.10.2025 | Revised our requirements from CMPE352 to CMPE451 | CMPE451 Group 10 Team |
| 2.1 | 14.10.2025 | Revised and finalized Introduction and Overall Description parts. | Mert Kirman, Samed Kızılhan |
| 2.2 | 18.10.2025 | Updated and added some requirements. | Mert Kirman |
| 2.3 | 19.10.2025 | Updated and added some requirements, also updated the glossary accordingly | Samed Kızılhan |
| 2.4 | 19.10.2025 | Just added 3 more waste types. | Samed Kızılhan |
Introduction
Zero Waste Challenge is an innovative mobile and web application that encourages users to recycle waste materials and produce less waste in their daily lives.
Overall Description
Project Purpose
The main purpose of the application is to increase environmental awareness, guide individuals to adopt sustainable lifestyle habits, and make recycling activities more enjoyable and motivating through gamification methods.
Key Features
- Points System: Users earn points by entering the type and quantity of waste materials they recycle
- Leaderboard: Users are ranked according to their scores, creating a competitive environment
- Tips Tab: Sustainability recommendations and eco-friendly lifestyle tips are shared
- Community Tab: Users can share their experiences, achievements, and ideas on a forum-like platform
- Challenges: Users can set personal goals such as "I will recycle this much waste this week" and also participate in community challenges created by administrators
- Achievements: Users can view the badges they have earned based on predetermined criteria
Target Audience and User Definition
Zero Waste Challenge targets individuals of all ages who are environmentally conscious or want to adopt an eco-friendly lifestyle. It is specifically designed for users who are familiar with technology, interested in social responsibility projects, and seeking motivation for sustainable living.
The users of our platform are individuals who seek to actively track their recycling efforts and contribute to environmental sustainability. To design an application that effectively supports this audience, we must thoroughly understand their motivations and pain points:
User Motivations:
- Desire to make a positive environmental impact through recycling activities
- Interest in tracking personal recycling progress and seeing tangible results
- Need for community support and shared experiences in sustainability journey
- Seeking gamified and engaging approaches to recycling habit formation
- Want to compete and compare recycling achievements with like-minded individuals
User Pain Points:
- Difficulty staying motivated without visible progress or feedback on recycling efforts
- Lack of knowledge about proper recycling practices and waste reduction strategies
- Feeling isolated in their sustainability efforts without community support
- Uncertainty about whether their individual recycling actions make a real difference
- Need for practical, actionable sustainability tips that fit into busy lifestyles
- Gaining insight into what drives our users and the challenges they face allows us to shape a platform that aligns with their needs and encourages meaningful, long-term engagement in recycling activities. While the app focuses on tracking recycled materials, we also encourage waste reduction through educational sustainability tips.
Expected Outcomes
- Increased recycling habits among users
- Raised awareness about reducing waste production
- Widespread adoption of sustainable living practices
- Sustained motivation through community support
- Creation of measurable environmental impact
Project Significance
Considering the global waste problem and climate crisis, encouraging individual behavior changes is of critical importance. Zero Waste Challenge supports sustainable behavior change by transforming recycling from a chore into an enjoyable and rewarding experience.
(See the Use Cases document for detailed user profiles and scenarios.)
Glossary
waste
All recyclable materials or items that are no longer needed or wanted, such as plastic and glass bottles, paper trash etc.
waste entry
User-logged information about recycled waste, including waste type(plastic, paper, glass, metal, electronic, oils&fats, organic) and quantity(in grams).
role-based access
An access control mechanism where user permissions are determined by assigned roles (e.g., regular user, administrator).
administrators
Users that are permitted to access the administration system (delete posts or comments, create mass challenges, etc.).
mass sustainability challenges
Large-scale events or initiatives in which multiple users collaborate or compete to achieve shared environmental objectives.
leaderboard
A ranking system that displays and compares user performance based on the waste recycle.
badges
Visual tokens that are granted to users for completing certain tasks or reaching milestones.
hashtags
Keywords prefixed with a '#' symbol, used to categorize content and facilitate discovery of related posts.
privacy settings
Configuration options that allow users to control the visibility of their profile information (public, private, or followers-only).
database of eco-friendly habits
A curated collection of sustainable practices that users can adopt or learn from.
moderation system
A set of tools and processes for overseeing user-generated content, ensuring it adheres to community guidelines.
reporting system
A mechanism that allows users to report inappropriate content or behavior to system administrators with a description.
activity feed
A chronological, standardized list displaying user activities such as logging waste, earning badges, completing challenges, and posting content.
anonymous identifier
A system-generated identifier displayed instead of a username to anonymize user identity on public leaderboards and shared content.
re-engagement notification
Notifications sent to inactive users to encourage them to return to the application (maximum of two notifications after prolonged inactivity).
explainable recommendation
A rule-based recommendation system that provides users with clear reasons for why specific challenges are suggested to them based on their earned badges.
data retention policy
A documented policy specifying how long user data and activity logs are retained, with automatic purging of data older than the retention period (maximum 2 years for inactive accounts).
privacy dashboard
A user interface where users can view stored personal data, understand how it is being used, and access options to download or delete their data.
audit logs
System logs that record all administrator access to user personal data with timestamps and justifications, retained for at least 1 year for compliance purposes.
1 Functional Requirements
1.1 Registration and Login System
-
1.1.1
Users shall be able to register to the system via selecting an email, username and a password. -
1.1.2
Users shall be able to login to the system 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.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 system shall provide automated progress visualizations (graphical charts, tabular data, and text summaries) in different forms 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 system 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.3 Community Engagement
-
1.3.1
The system shall support mass sustainability challenges created by administrators that all users can contribute to. -
1.3.2
The system 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 for contributors. -
1.3.4
The system shall display collective community impact metrics showing aggregated waste reduction achievements and environmental impact. -
1.3.5
The system shall implement a badge system consisting of seven (7) distinct categories:- Four (7) badge categories related to waste types (plastic, paper, glass, metal, electronic, oil&fats, organic)
- One (1) badge category reflecting total waste recycled
- One (1) badge category related to user contributions (total count of tips and posts)
- One (1) badge category for total like count received on a user's contributions
-
1.3.6
Each badge category shall have multiple achievement levels to recognize progressive user accomplishments. -
1.3.7
The system shall automatically award badges to users upon meeting the criteria for each level within a category.
1.4 Social & Sharing
-
1.4.1
Users shall be able to create and share posts containing text, images. -
1.4.2
The system 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 system shall showcase the top three most liked, admin-approved posts on the home page to highlight impactful sustainability stories and achievements. -
1.4.10
Users shall receive feedback notifications when their posts or tips receive engagement (likes, comments). -
1.4.11
The system shall allow users to anonymize their identity by displaying an anonymous identifier instead of their username in public leaderboards and on any shared tips or posts.
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
The system shall recommend challenges based on users’ earned badge types. The recommendation shall be rule-based and explainable, allowing users to view the reason behind each recommendation. -
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 system 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 system shall prevent harmful behavior by filtering inappropriate content. When users attempt to create posts, tips, or comments, the system shall validate input against a predefined list of inappropriate words and phrases, and shall prevent submission at the frontend level if inappropriate content is detected, displaying an appropriate error message to the user.
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.
1.11 Activity Feeds
-
1.11.1
The system shall represent different user activities(e.g., logging waste, earning badges, completing challenges, posting content) in a standardized format. -
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 system 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 system 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(e-mail address) 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.2.10
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. -
2.2.11
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. -
2.2.12
The system shall collect only the minimum data necessary for registration and shall provide clear information about data collection purposes during registration.
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.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 system 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.
Technical Requirements
- Frontend: React
- Backend: Django REST Framework
- Database: MySQL
- Mobile: React Native