Project Requirements_archive - bounswe/bounswe2025group1 GitHub Wiki
🌱 Community Garden Planner-Software Requirements Specification (SRS)
Table of Contents
- Revision History
- Introduction
- Functional Requirements
- 1 User Management
- 2 Task Assignments & Tracking
- 3 Harvest & Maintenance Scheduling
- 4 Weather-Based Gardening Reminders
- 5 Community Forum
- 6 Notifications
- 7 Role-Based Access Control
- 7.1 Platform Management
- 7.1.2 System Administrator Role
- 7.1.3 Moderator Role
- 7.1.4 Member Role
- 7.1.5 Guest Role
- 7.6 Garden Management
- 7.6.1 Manager Role
- 7.6.2 Worker Role
- 7.1 Platform Management
- Non-Functional Requirements
- 1 Performance
- 2 Security
- 3 Usability
- 4 Availability
- 5 Maintainability
- Appendix
Revision History
| Version | Author | Date | Reviewer | Description |
|---|---|---|---|---|
| 1.0 | Başak | 26/02/2025 | Ceylanberk, Eymen | Initial Draft |
| 1.1 | Bahadır | 06/03/2025 | Eymen | Elaborated on some requirements and added more |
| 1.2 | İnan | 08/03/2025 | Eymen | Changed the structure of the page |
| 1.3 | Başak | 19/03/2025 | Bahadır | Employ changes from moodle feedback |
| 1.4 | Bahadır | 19/03/2025 | - | Revision After Review: Elaborations and Fixes |
Introduction
Purpose
The Community Garden Planner is an online platform developed to streamline the management of community gardens. Its primary purpose is to provide users with tools to effectively organize gardening tasks, track the progress of completed and pending activities, and maintain detailed logs of garden management. By offering features such as task scheduling, progress tracking, and data logging, the platform aims to simplify garden maintenance and ensure that all tasks are completed efficiently. Additionally, it serves as a centralized repository for garden-related information, making it easy for users to access and update records.
Scope
The scope of the Community Garden Planner extends beyond task management to fostering a vibrant community of garden enthusiasts. It aims to create a social platform where users can connect, share their gardening experiences, seek advice, and collaborate on projects. The platform is designed to support community-building by enabling discussions, sharing tips, and showcasing gardening achievements. By integrating social features such as forums, experience-sharing sections, and advice columns, the Community Garden Planner aspires to transform gardening into a collective and enriching experience for all its users.
Functional Requirements
1. User Management
- 1.1: Users shall be able to register and create an account using email, username, name, surname, password, and optional location information.
- 1.2: The system shall allow users to log in and log out securely.
- 1.3: Users shall be able to edit all their profile information.
- 1.4: Users shall be able to upload optional profile pictures.
- 1.5: Users shall be able to follow other users.
- 1.6: Users shall be able to filter the forum feed to display only posts from users they follow.
- 1.7: The system shall recommend nearby gardens for users who provided their location information.
2. Task Assignments & Tracking
- 2.1: The system shall allow users to create, assign, update, and delete gardening tasks.
- 2.2: Users shall be able to track task progress with status updates (e.g., "Pending," "In Progress," "Completed").
- 2.3: The system shall provide a set of predefined task types (system-defined): harvest and maintanence schedules, and users shall have the option to create custom (user-defined) task types.
- 2.4: The system shall have tasks with a title, description, and optional deadline.
- 2.5: The system shall allow users to assign multiple assignees to tasks.
- 2.6: The system shall support tasks without assignees, allowing users to self-assign on a voluntary basis.
- 2.7: Users shall be able to accept or decline tasks assigned to them.
- 2.8: The system shall send task notifications to assigned users.
3. Harvest & Maintenance Scheduling
- 3.1: Users shall be able to log and track harvest data (e.g., plant type, quantity, date).
- 3.2: The system shall allow users to schedule maintenance tasks.
- 3.3: The system shall send automated maintenance reminders to users based on scheduled maintenance tasks.
- 3.4: The system shall support a calendar structure for scheduling tasks and maintenance based on specific dates.
4. Weather-Based Gardening Reminders
- 4.1: The system shall integrate with a weather API to fetch real-time weather data.
- 4.2: Users shall receive automated gardening reminders based on weather conditions from API.
5. Community Forum
- 5.1: Users shall be able to create, edit, and delete discussion posts.
- 5.2: Users shall be able to comment on forum posts.
- 5.3: The system shall provide system administrators with moderation rights, including the ability to delete inappropriate content.
- 5.4: The system shall provide moderators with authorization to delete inappropriate content, manage user reports and alter forum posts.
- 5.5: The system shall provide read-only access to public forum posts for guests.
- 5.6: Users shall be able to report inappropriate posts to moderators.
6. Notifications
- 6.1: The system shall send email or in-app notifications for task updates, weather alerts, and forum activity.
- 6.2: Users shall have the option to enable or disable specific notifications individually.
- 6.3: The system shall send notifications for tasks nearing their deadlines.
7. Role-Based Access Control
7.1 Platform Management
- 7.1.1: The system shall have distinct roles: System Administrator, Moderator, Member, and Guest.
7.1.2 System Administrator Role
- 7.1.2.1: The system shall have a single or a limited number of System Administrator(s) with full control over the platform.
- 7.1.2.2: The system shall let System Administrator(s) manage every forum post on the platform.
- 7.1.2.3: The system shall let System Administrator(s) manage any title in any garden.
- 7.1.2.4: The system shall let System Administrator(s) have the authority to close gardens if abuse of the software is detected.
- 7.1.2.5: The system shall let System Administrator(s) manage Moderators and system-related issues exclusively.
7.1.3 Moderator Role
- 7.1.3.1: The system shall support a variable number of Moderators.
- 7.1.3.2: The system shall let Moderators manage forum content, including deleting inappropriate posts and alter posts.
- 7.1.3.3: The system shall let Moderators receive user reports and take appropriate actions.
- 7.1.3.4: The system shall let Moderators remove gardens based on user reports or observed violations.
- 7.1.3.5: The system shall let Moderators ban users who abuse the system.
7.1.4 Member Role
- 7.1.4.1: Users who register to the platform shall automatically become Members.
- 7.1.4.2: The system shall let Members request to join a garden.
- 7.1.4.3: The system shall let Members leave a garden.
- 7.1.4.4: The system shall let Members create a garden.
- 7.1.4.5: The system shall let Members create, assign, and track tasks within the gardens they manage.
- 7.1.4.6: The system shall let Members create and comment on forum posts.
- 7.1.4.7: The system shall let Members edit only their own profile information.
- 7.1.4.8: The system shall let Members log, view, and update harvest and maintenance schedules within the gardens they belong to.
- 7.1.4.9: The system shall let Members receive relevant notifications about tasks, posts, and garden activities.
- 7.1.4.10: The system shall let Members accept or decline tasks assigned to them.
7.1.5 Guest Role
- 7.1.5.1: The system shall let Guests (users without an account) have read-only access to public forum posts.
- 7.1.5.2: The system shall let Guests have read-only access to basic garden information (garden name, location etc.).
- 7.1.5.3: The system shall not let Guests create or edit tasks; they may only view task summaries if publicly accessible.
- 7.1.5.4: The system shall not let Guests post or comment on the forum.
- 7.1.5.5: The system shall not let Guests view harvest or maintenance scheduling information.
- 7.1.5.6: The system shall let Guests upgrade to Member status via the registration process.
7.6 Garden Management
7.6.1 Manager Role
- 7.6.1.1: The user who creates a garden shall automatically become the Manager of that garden.
- 7.6.1.2: The system shall let Managers assign tasks to members of the garden.
- 7.6.1.3: The system shall let Managers accept or remove members from their garden.
- 7.6.1.4: The system shall let Managers appoint other Members as additional Managers of the garden.
- 7.6.1.5: The system shall let Managers access to create, modify, and delete tasks.
- 7.6.1.6: The system shall let Managers view, edit, and delete any harvest or maintenance schedules for their garden.
- 7.6.1.7: The system shall let Managers create custom task types.
7.6.2 Worker Role
- 7.6.2.1: The system shall let Members who are accepted into a garden shall become Workers in that garden.
- 7.6.2.2: The system shall let Workers accept or decline tasks assigned by a Manager.
- 7.6.2.3: The system shall let Workers update the status of tasks assigned to them.
- 7.6.2.4: The system shall let Workers log, view, and update harvest and maintenance schedules for tasks assigned to them.
- 7.6.2.5: The system shall let Workers post and comment on forum posts within the gardens they belong to.
Non-Functional Requirements
8. Performance
- 8.1: The system shall handle up to 300 concurrent users.
- 8.2: The system shall have a response time for critical actions (task creation, forum posting) less than 2 seconds.
9. Security
- 9.1: The system shall enforce HTTPS for secure communication.
- 9.2: User authentication shall be implemented using OAuth or JWT.
- 9.3: Passwords shall be stored securely using hashing.
- 9.4: Latest available versions of development tools (frameworks, libraries etc.) shall be used.
- 9.5: PoLP (Principle of Least Privilage) shall be enforced.
10. Usability
- 10.1: The UI must be responsive and comply with accessibility standards.
- 10.2: Users shall be able to navigate the system with minimal training.
11. Availability
- 11.1: The system shall have an uptime of 99.9%.
- 11.2: Data backups shall be performed daily.
- 11.3: The system shall process synchronized data and provide updated information to the user.
12. Maintainability
- 12.1: The system shall follow a modular architecture to facilitate future updates.
- 12.2: Code documentation shall be maintained for all major modules.
Appendix
- A. Glossary