Software Design Document - CankayaUniversity/ceng-407-408-2024-2025-ReSort GitHub Wiki
1. INTRODUCTION
1.1 Purpose
The purpose of this Software Design Document is to provide a detailed framework for the development and implementation of the ReSort Intelligent Recycling System. This system aims to address inefficiencies in waste management by automating the sorting of recyclable materials using IoT sensors and advanced machine learning algorithms.
The system aims to achieve long-term goals, such as continuous performance improvement through iterative data analysis and machine learning. Additionally, it focuses on reducing carbon emissions and preserving natural resources by improving recycling rates. The scalable infrastructure allows the system to adapt to various waste management units, from small households to large municipalities.
The primary audience of this document includes developers, stakeholders, and technical experts involved in the creation and deployment of ReSort. The system is designed to serve the needs of individual households, municipalities, and industrial users by providing:
- Accurate Waste Classification: Sorting waste into predefined categories such as metal, plastic, organic, and glass with more than 70% accuracy.
- Real-Time Feedback: Delivering instant results to users about their waste management practices.
- Environmental Impact Analytics: Tracking and reporting the environmental benefits of recycling, such as reduced carbon emissions and resource conservation.
ReSort's ultimate goal is to revolutionize waste management by reducing human error, increasing recycling rates, and providing a scalable, efficient, and user-friendly system for diverse operational environments.
1.2 Scope
The ReSort system benefits various user groups, including households, municipalities, and industrial facilities. Additionally, it serves as an educational tool for schools and universities, enabling students to gain hands-on experience with sustainable waste management practices. The system also supports interactive experiences to promote recycling habits.
This document contains a complete description of the design of the ReSort Intelligent Recycling System. The system integrates IoT sensors, machine learning algorithms, and user-friendly interfaces to automate waste sorting. ReSort is optimized for individual households, municipalities, and industrial recycling facilities.
Key Components:
- IoT sensors and machine learning for accurate waste classification.
- Real-time feedback for user interaction.
- Analytics to track environmental impact.
Key Components
-
IoT Sensors and Cameras:
- Detect the weight, color, and material properties of waste.
- Use high-resolution cameras for image-based analysis.
-
Machine Learning Modules:
- Utilize YOLO algorithm to categorize waste.
- Aim for a classification accuracy rate of 70% or higher.
-
User Interfaces:
- Provide real-time feedback via web dashboards.
- Offer recommendations to improve users' recycling habits.
Development Environment:
The system will be developed using Python and TensorFlow for machine learning components, with Raspberry Pi as the preferred IoT platform. The design is modular to ensure scalability and ease of maintenance.
1.3 Glossary
Term | Definition |
---|---|
IoT (Internet of Things) | Devices connected via the internet to collect and share data. |
YOLO (You Only Look Once) | Real-time object detection and classification algorithm. |
User Interface (UI) | The interface (web) through which users interact with the system. |
Raspberry Pi | A small, cost-effective computer platform used for IoT devices. |
SDD (Software Design Document) | A document describing the technical design details of the software. |
1.4 Overview of Document
This document provides a comprehensive design outline for the ReSort system, organized into the following sections:
- Section 1: Introduction - Describes the purpose, scope, and glossary of terms for this document.
- Section 2: Architecture Design - Explains the system's components, including class diagrams and data flow.
- Section 3: Use Case Realizations - Details user scenarios and activity diagrams that describe system interactions.
- Section 4: Environment - Specifies the development and deployment environments.
- Section 5: References - Lists all the resources and documents used in creating this system.
1.5 Motivation
We are a group of senior computer engineering students passionate about using innovative technologies to address environmental challenges. Through this project, we aim to contribute to sustainable waste management practices by leveraging modern technologies such as IoT and machine learning.
Our primary motivation stems from the increasing need for efficient recycling solutions in both urban and industrial settings. By automating waste sorting processes, ReSort aims to:
- Reduce Environmental Impact: Mitigate waste mismanagement and improve recycling rates, ultimately decreasing landfill overflow and resource depletion.
- Enhance Operational Efficiency: Minimize human error in waste classification, reduce costs, and optimize recycling workflows.
- Promote Technological Advancement: Integrate cutting-edge technologies such as Raspberry Pi, IoT-enabled sensors, and AI-driven classification algorithms to set a new standard for waste management systems.
Our team has utilized Raspberry Pi for IoT integration, which provides a cost-effective yet powerful platform for implementing our system. Additionally, we have employed TensorFlow and Python to develop the machine learning models that drive ReSort’s classification engine. To further refine our skills and ensure the success of the project, we have studied various resources and sought guidance from professionals in the field of IoT and machine learning.
2. ARCHITECTURE DESIGN
2.1 System Design Approach
The development of the ReSort project follows the Agile Scrum Methodology, ensuring flexibility and iterative progress throughout the project lifecycle. Scrum divides the work into sprints, each lasting two weeks, to deliver manageable increments of the system. This approach is particularly suited to ReSort due to its need for continuous feedback and adaptation to new challenges in waste management technology.
Scrum Implementation in ReSort:
- Product Owner: Represents stakeholders and ensures that the system aligns with user requirements.
- Scrum Master: Facilitates the development process by removing obstacles and ensuring adherence to the Scrum framework.
- Development Team: Consists of engineers specializing in IoT, machine learning, and UI/UX design.
Sprint Workflow:
- Project Backlog: All tasks and system requirements are listed here.
- To Do Phase: Tasks selected for the sprint, prioritized based on importance.
- In Progress Phase: Tasks actively under development.
- In Review Phase: Tasks undergoing peer or stakeholder review.
- To Deploy Phase: Tasks ready for integration into the main system.
- Done Phase: Completed tasks that have been successfully implemented and tested.
This workflow ensures a clear division of tasks and efficient project management, making the system adaptable to evolving needs.
2.2 Architecture Design of ReSort
2.2.1 User Management
-
Summary:
The ReSort system allows users to register, log in, and manage their accounts. Administrative users can approve or delete user accounts and assign roles for system access. -
Actors:
User, Administrator -
Preconditions:
User must have access to the system. -
Basic Sequence:
- The user registers with their name, email, and password.
- The user logs into the system using their credentials.
- Users can update their account information via the user settings menu.
- Administrators can delete or approve accounts through the admin dashboard.
- Users can log out of the system at any time.
-
Exception:
Database connection may fail. -
Postconditions:
User account data is stored or updated in the system database. -
Priority:
Medium
2.2.2 Options Menu
-
Summary:
The options menu allows users to access system settings, such as adjusting notification preferences, reviewing system instructions, or logging out. -
Actors:
User -
Preconditions:
The user must be logged into the system. -
Basic Sequence:
- Users access the options menu from the dashboard.
- Users can enable or disable system notifications.
- Users can view system usage instructions.
- Users can log out of the system.
-
Exception:
No exceptions are expected for this functionality. -
Postconditions:
Changes made by the user are saved in the system.
2.2.3 Waste Sorting Mode
The waste sorting process involves collecting data from IoT sensors, analyzing it using machine learning algorithms, and presenting real-time results on the user interface. Any errors or sensor failures are detected promptly, and classification results are delivered within 2 seconds.
-
Summary:
This mode allows users to sort waste materials into categories such as plastic, metal, paper, and organic. The system utilizes sensors and machine learning models to identify and classify the waste. -
Actors:
User, Administrator -
Preconditions:
Sensors and machine learning modules must be operational. -
Basic Sequence:
- Users place waste into the designated input area.
- IoT sensors collect data such as weight and material properties.
- Cameras capture images of the waste.
- The machine learning module processes the data and classifies the waste.
- The results are displayed to the user in real time.
- Administrators can monitor sorting performance through the admin dashboard.
-
Exception:
Sensor malfunction or system downtime. -
Postconditions:
Classification data is saved and displayed to the user. -
Priority:
High
2.2.4 Activity Diagram
The following activity diagram illustrates the waste sorting workflow in the ReSort system:
- User Places Waste: The user places waste material into the system.
- Sensor Data Collection: IoT sensors measure weight and detect material properties.
- Image Processing: Cameras capture images, and the machine learning model analyzes them.
- Waste Classification: The system classifies the waste into predefined categories.
- Feedback Display: The classification results are shown on the user interface.
- Data Storage: The results are saved in the system database for future analytics.
2.3 Class Diagram
2.4 Data Flow Diagrams
2.4.1 Level 0
2.4.2 Level 1
2.4.3 Level 2
3. Use Case Realizations
3.1 Brief Description of the ReSort System
The components of the ReSort project can be categorized into five main modules, as shown in the block diagram. Each module serves a specific purpose in facilitating the waste sorting and recycling process. These modules include the User Interface (UI) Design, Waste Environment Design, Data and Feedback Design, Sensor and Machine Learning Integration, and System Analytics Design.
The UI Design is responsible for enabling user interaction with the system. It consists of various panels such as the main menu, options menu, progress panel, and feedback panel. The main menu serves as the entry point for users, allowing them to register, log in, and access key features of the system. The options menu provides access to system settings, notifications, and the logout option. Users can view their recycling progress and feedback in real-time via the progress and feedback panels.
The Waste Environment Design manages the physical and virtual spaces where users interact with the system. This includes the waste input area where users place their recyclable materials, the sorting mechanism where IoT sensors and machine learning models process the materials, and the processed waste output area where sorted results are displayed.
The Data and Feedback Design ensures that users receive actionable insights. Real-time feedback is provided immediately after waste is classified, helping users understand their recycling efforts. Additionally, the system offers performance analytics and environmental impact reports, detailing the amount of waste recycled and the ecological benefits achieved.
The Sensor and Machine Learning Design integrates various hardware and software components to automate waste sorting. IoT sensors measure the physical attributes of waste, such as weight, material type, and metal content. Machine learning models like YOLO process the captured data to classify the waste into predefined categories accurately.
Finally, the System Analytics Design is responsible for aggregating and analyzing all system data. This module securely stores user performance metrics and waste classification data, generating detailed reports for users. It also provides insights into recycling trends, enabling users to improve their practices and contribute to sustainability goals.
3.1.1 GUI Design
The GUI Design module is the central point of interaction between the user and the ReSort system. It incorporates several sub-systems, including the main menu, options menu, progress panel, feedback panel, and waste analysis panel. The main menu allows users to register, log in, and navigate through the system, while the options menu provides access to notification settings, system instructions, and the logout feature. The progress panel displays user recycling statistics, and the feedback panel offers real-time insights into waste classification and recommendations for improvement.
3.1.2 Waste Environment Design
The Waste Environment Design module is dedicated to managing the spaces where waste sorting occurs. Users interact with this environment by placing their waste in the input area, where IoT sensors and cameras analyze the materials. The sorting mechanism processes the waste based on the collected data, and the processed waste is displayed in the output area for validation.
Users interact with the system by placing waste in the designated input area, where sensors collect data on weight, material, and type. The system processes the data, categorizes the waste, and alerts users with visual and audio feedback if incorrect placement occurs.
3.1.3 Data and Feedback Design
The Data and Feedback Design module focuses on delivering valuable insights to users. The system provides real-time classification feedback, helping users identify and sort waste more effectively. Additionally, it tracks recycling performance metrics and generates environmental impact reports that highlight the ecological benefits of users' efforts, such as reduced carbon emissions and improved recycling rates.
Users can view recycling data and environmental impact metrics through web dashboards. Feedback reports are automatically generated weekly and monthly, providing insights into recycling habits and areas for improvement.
3.1.4 Sensor and Machine Learning Design
The Sensor and Machine Learning Design module integrates IoT sensors and machine learning models to automate waste sorting. IoT sensors detect physical properties such as weight, material composition, and metal presence. The system uses YOLO for real-time object detection and advanced image-based classification, ensuring high accuracy in waste categorization. For waste classification model training, we use LabelImg and Label Studio for annotation, Roboflow for data preprocessing and augmentation, Ultralytics HUB for training and monitoring the YOLOv11 model, and Google Colab for GPU-supported training. These tools streamline dataset preparation, model training, and evaluation.
3.1.5 System Analytics Design
The System Analytics Design module aggregates and analyzes user and system data. It securely stores recycling performance metrics and classification results, providing users with comprehensive reports. This module also identifies recycling trends, offering users actionable insights to enhance their waste management practices and contribute to sustainability goals.
3.2 User Scenarios
3.2.1.1 Waste Sorting Process
3.2.1.2 Waste Classification Process
3.2.2 Feedback and Logging Process
3.2.3 Feedback and Analytics
3.3 Activity Diagrams
3.3.1 Activity Diagram 1
3.3.2 Activity Diagrams 2
3.4 User Interface
4. Environment
4.1 Modelling Environment
The ReSort system incorporates advanced modelling environments to simulate real-world waste sorting processes. These environments are designed to provide users with an intuitive and interactive experience, combining visual representations and real-time system feedback.
In the Sorting Environment, users interact with the system by placing waste materials into the input area. This environment includes 3D models of recyclable materials such as plastics, metals, and organic waste, as well as virtual representations of the IoT sensors and sorting mechanisms. The inventory panel displays all detected waste items, categorized by their type, weight, and other physical properties. For example, when a user places a plastic bottle into the system, it is analyzed and classified by the machine learning algorithms, and the results are shown on the feedback panel. This immediate feedback allows users to understand how their waste is being processed, promoting better recycling habits.
Additionally, the Visualization Environment provides detailed analytics to users, enabling them to track their recycling performance over time. This environment includes visualizations such as graphs, charts, and tables, which present metrics like total waste sorted, classification accuracy, and environmental impact. For instance, users can view how much waste they have recycled in a week and how their efforts have reduced their carbon footprint. These insights are designed to motivate users by showing the tangible benefits of their recycling activities.
The system also supports advanced simulations to handle mixed waste scenarios. These simulations test the system's capability to sort and classify complex waste combinations, ensuring robust performance under diverse conditions. By accurately simulating these scenarios, the ReSort system provides users with a realistic and educational experience, fostering greater understanding and engagement with the recycling process.
The modelling environment in ReSort is developed using modern 3D design tools such as Blender, which allows the creation of realistic models that integrate seamlessly with the system. This approach ensures that both the visual and functional aspects of the system are highly immersive and effective, making the recycling process more accessible and appealing to users of all backgrounds.