Infrastructure Milestone Report - bounswe/bounswe2025group1 GitHub Wiki
Customer Milestone Report
1. Executive Summary
1.1. Summary of Project Status
Our goal for this milestone can be summarized in two parts.
Firstly, we wanted to ensure that any unwanted behaviour or bugs were eliminated before starting to add new features so that our development process would be smoother and simpler down the road. For this reason, we planned a "Check-Up Milestone" for ourselves. This milestone's tasks were not only fixing bugs but also some tasks that help us plan and prepare for the upcoming semester like revising our requirements, adding new requirements for the expectations of 451 etc.
Secondly, according to our updated software requirements we began to add new features to the project. We tried to prioritize the features that makes the most significant improvements to the user experience. Our main goal while measuring user experience was making the app more accessible, inclusive and encouraging to contribute to the community, which is also the main goal of our app. To that end, some of the newly implemented features are:
- Language support for both Turkish and English throughout the app,
- Keyboard navigability of the whole web application,
- Color themes for the application, which consist of Light/Dark modes and an additional High Contrast mode where each of these modes satisfy WCAG 2.1 AA requirements
- Ability to upload pictures to garden galleries,
- Selecting locations for gardens and users directly via Location Picker widgets
and while doing these improvements to our app, we encountered several previously unspotted bugs/unwanted behaviours along the way. We took our time to properly handle and fully solve these issues to make our lives easier in the future.
While we were doing these improvements, we had to make some improvements in the backend side to accomodate these new features. These improvements include:
- Implementing new endpoints according to the new demands.
- Fixing some endpoints in order for guests to be able to see public gardens and forum posts.
- Storing images in database as binary format. Although this increases database size, it eliminates synchronization issues between file storage and the database.
- Enhancing security by enforcing HTTPS.
1.2. Planned Changes for Moving Forward
Based on where we left off at CmpE352, we covered the main functionalities and major bugs. With this semester's highlighted topics, there are improvements and new features planned as we progress to MVP Milestone.
From now on, we will focus on the remaining features: user badges for engagement, garden chats for coordination, screen-reader support, and push notifications.
Based on customer feedback, we also plan to include a garden activity feature, which may include many events such as workshops for beginners.
Mainly, we will keep with the current SRS we have, and implement the mentioned functionalities as we approach MVP Milestone.
2. Customer Feedback and Reflections
2.1. Summary of Feedback
Overall, customers expressed satisfaction with the initial version of the project. Their main suggestions for improvement include:
- Introducing a notification system, particularly for urgent garden tasks.
- Enabling users to discuss the timing of tasks within the app.
- Adding a geolocation feature.
- Implementing a “Gardens Near Me” feature to help users discover nearby community gardens.
2.2. Reflections and Planned Improvements
The feedback received from customers provided valuable insight into how users interact with the platform and what features would make it more engaging and practical for community use. The recurring emphasis on real-time communication and location awareness aligns with our long-term goals of improving coordination and inclusivity within community gardens.
UI/UX Improvements
- The "Reject Task" feature should be renamed to be kinder, such as "Not Available".
- The mobile app should be specifically designed for on-site use in the garden (when a computer is not accessible), and its user flow should adapt to this continuous change in location.
New Feature Suggestions
- The user needs a way to communicate with the task assigner to:
- Report problems encountered during the task.
- Reschedule the task.
- Reassign the task to another person.
- Request a different task.
- Notifications and alarms should be implemented for urgent tasks (e.g., pests, watering, animals).
- Forum Personalization: The forum should be customizable, allowing users to see posts from people they follow or from gardens they are members of.
- Geolocation: Garden locations should be stored using geolocation data.
- "Gardens Near Me": A feature to discover nearby gardens should be added.
- Contribution History: A system should be added to display a user's past contributions to incentivize and encourage participation.
3. List and Status of Project Deliverables
| Deliverable | Description / Link | Status |
|---|---|---|
| Revised Software Requirements Specification (SRS) | SRS | Done |
| Revised Software Design (UML Diagrams) | Software Design | Done |
| Communication Plan | Communication Plan | Done |
| Contribution Guidelines | Contribution Guidelines | Done |
| Project Plan | Project Plan | Done |
| Weekly Reports and Meeting Notes | Meeting Reports | Done |
| Milestone Review | Infrastructure Milestone Report | Done |
| Individual Contributions | Individual Contributions | Done |
| Pre-release Version of Software | Release Tag | Done |
4. Evaluation of Deliverables and Project Plan
Revised Software Requirements Specifications
We updated our software requirements based on the new expectations to make our project more accessible, inclusive, encouraging to contribute to the community and improve user experience for our diverse audience. The updates can be summarized under the following categories:
- Accessibility and WCAG 2.1 AA Compliance
- Inclusive Design
- Valuing Contributions and Encouraging Participation
- Internationalization and Localization
We also made small modifications to the old requirements based on the new ideas we generated as a team related to the new requirements.
Revised Software Design
According to the new requirements we had to update the Use Case, Class and Sequence diagrams to accurately reflect the requirements.
Communication Plan
At the beginning of the semester, we agreed on a meeting time and method which suits each team members schedule. To this date, we were able to stick to that plan.
Contribution Guidelines
We, as a team care about our contribution guidelines and we are strict about the rules. Especially the branch / issue naming conventions, PR reviewing process. That's why having well defined guidelines about these is important for us.
Project Plan
Planning and organizing tasks in advance helps us keeping track of our progress and what needs to be done. It also helps us notice problems about sticking to deadlines early on, and leaves us space to readjust ourselves.
Weekly Reports and Meeting Notes
We are sticking to our meeting notes template which we have been using also in the previous semester. This makes our meeting notes uniform and helps us keep track of our ideas.
Also at the end of each week, each team member writes a personal report about the tasks that she/he had done that week. It is another practice we value as it improves our ability to track our progress and effort.
Milestone Review
The milestone review is a great way of checking on what we did well, what we could improve, and what aspects still need more attention. It allows the team to reflect on both technical progress and collaboration dynamics, helping us identify strengths in our workflow as well as areas for improvement. Also, a milestone serves as a structured checkpoint that keeps the entire team aligned. It helps ensure that all members are aware of current priorities, ongoing challenges, and next steps.
Individual Contributions
Individual milestone contribution reports are also a great way of personally tracking ourselves to see what had we done in a well defined period of time.
Overall
All major deliverables for this milestone have been successfully completed and reviewed, meeting the expected functionality and quality standards. The backend API, web frontend, and mobile application have reached a stable and functional stage, allowing for integrated testing across all platforms. Documentation deliverables, such as the SRS, UML diagrams, and team policies, have been revised to reflect the current implementation details and workflow practices.
5. Evaluation of Tools and Processes
Google Cloud Platform (GCP): Provided a reliable and easy-to-use infrastructure for hosting our application's backend, database and frontend.
GitHub: Enabled seamless team collaboration and version control. It was central to managing our codebase, reviewing changes via pull requests, and tracking issues.
Docker: By packaging our application into containers, it made running and deploying the app significantly easier using docker-compose.
Expo: Dramatically accelerated our mobile app development, allowing us to build and test the mobile app quickly.
Django DB Migration: Simplified database schema updates. It let us easily apply, track, and reverse changes to our application's database models in a controlled way.
Postman: Was essential for testing and debugging our API. It let us quickly send various requests and inspect the backend's responses to verify all endpoints worked correctly.
GitHub Copilot: Sped up our coding process significantly by providing intelligent, context-aware code suggestions, which helped reduce boilerplate and solve problems faster.
ESLint / Prettier: Enforced consistent code quality and style in frontend project. These tools automatically formatted our code and caught potential bugs early, improving readability.
HackMD: Served as our central hub for collaborative documentation, allowing us to write technical specifications, user stories, and meeting notes together in real-time.
www.name.com: Provided an easy-to-use service for registering and managing the public-facing domain name for our live application.
6. Requirements Addressed in This Milestone
Status classfication:
- ⏮ COMPLETED IN 352: Requirements that were already implemented in CMPE352.
- ⏫ ENCHANCED IN MILESTONE: Requirements that had issues or missing features, went under improved implementation in this milestone.
- ✅ COMPLETED IN THIS MILESTONE: Requirements that were completely/mostly implemented in this milestone.
- ❌ NOT COMPLETED: Requirements that are not implemented yet.
- ❓UNKNOWN: Requirements that are bound to measurements with unknown results.
| Requirement Number | Description | Status |
|---|---|---|
| 1.1 | Users shall be able to register and create an account using email, username, name, surname, password, and optional location information. | ⏫ ENCHANCED IN THIS MILESTONE |
| 1.2 | The system shall allow users to log in and log out securely. | ⏮ COMPLETED IN 352 |
| 1.3 | Users shall be able to edit all their profile information. | ⏫ ENCHANCED IN THIS MILESTONE |
| 1.4 | Users shall be able to upload optional profile pictures. | ✅ COMPLETED IN THIS MILESTONE |
| 1.5 | Users shall be able to follow other users. | ⏮ COMPLETED IN 352 |
| 1.6 | Users shall be able to filter the forum feed to display only posts from users they follow. | ❌ NOT COMPLETED |
| 1.7 | The system shall recommend nearby gardens for users who provided their location information. | ❌ NOT COMPLETED |
| 2.1 | The system shall allow users to create, assign, update, and delete gardening tasks. | ⏮ COMPLETED IN 352 |
| 2.2 | Users shall be able to track task progress with status updates (e.g., "Pending," "In Progress," "Completed"). | ⏮ COMPLETED IN 352 |
| 2.3 | The system shall provide a set of predefined task types (system-defined): harvest and maintenance schedules, and users shall have the option to create custom (user-defined) task types. | ❌ NOT COMPLETED |
| 2.4 | The system shall have tasks with a title, description, and optional deadline. | ⏮ COMPLETED IN 352 |
| 2.5 | The system shall allow users to assign multiple assignees to tasks. | ❌ NOT COMPLETED |
| 2.6 | The system shall support tasks without assignees, allowing users to self-assign on a voluntary basis. | ⏮ COMPLETED IN 352 |
| 2.7 | Users shall be able to accept or decline tasks assigned to them. | ⏮ COMPLETED IN 352 |
| 2.8 | The system shall send task notifications to assigned users. | ❌ NOT COMPLETED |
| 2.9 | The system shall send notifications to task assigners about acceptance or decline of the task. | ❌ NOT COMPLETED |
| 3.1 | Users shall be able to log and track harvest data (e.g., plant type, quantity, date). | ❌ NOT COMPLETED |
| 3.2 | The system shall allow users to schedule maintenance tasks. | ⏮ COMPLETED IN 352 |
| 3.3 | The system shall send automated maintenance reminders to users based on scheduled maintenance tasks. | ❌ NOT COMPLETED |
| 3.4 | The system shall support a calendar structure for scheduling tasks and maintenance based on specific dates. | ⏮ COMPLETED IN 352 |
| 4.1 | The system shall integrate with a weather API to fetch real-time weather data. | ⏮ COMPLETED IN 352 |
| 4.2 | Users shall receive automated gardening reminders based on weather conditions from API. | ❌ NOT COMPLETED |
| 5.1 | Users shall be able to create, edit, and delete discussion posts. | ⏫ ENCHANCED IN THIS MILESTONE |
| 5.2 | Users shall be able to comment on forum posts. | ⏫ ENCHANCED IN THIS MILESTONE |
| 5.3 | The system shall provide system administrators and moderators with moderation rights, including the ability to delete inappropriate content. | ❌ NOT COMPLETED |
| 5.4 | The system shall provide moderators with authorization to delete inappropriate content, manage user reports and alter forum posts. | ❌ NOT COMPLETED |
| 5.5 | The system shall provide read-only access to public forum posts for guests. | ✅ COMPLETED IN THIS MILESTONE |
| 5.6 | Members shall be able to report inappropriate posts and users to moderators. | ❌ NOT COMPLETED |
| 5.7 | The system shall provide garden-specific communication spaces to facilitate communication and coordination within a garden. | ❌ NOT COMPLETED |
| 6.1 | The system shall in-app notifications for task updates, weather alerts, and forum activity. | ❌ NOT COMPLETED |
| 6.2 | Users shall have the option to enable or disable specific notifications individually. | ❌ NOT COMPLETED |
| 6.3 | The system shall send notifications for tasks nearing their deadlines. | ❌ NOT COMPLETED |
| 7.1.1 | The system shall have distinct roles: System Administrator, Moderator, Member, and Guest. | ⏮ COMPLETED IN 352 |
| 7.1.2.1 | The system shall have a single or a limited number of System Administrator(s) with full control over the platform. | ❌ NOT COMPLETED |
| 7.1.2.2 | The system shall let System Administrator(s) manage every forum post on the platform. | ❌ NOT COMPLETED |
| 7.1.2.3 | The system shall let System Administrator(s) manage any title in any garden. | ❌ NOT COMPLETED |
| 7.1.2.4 | The system shall let System Administrator(s) have the authority to close gardens if abuse of the software is detected. | ❌ NOT COMPLETED |
| 7.1.2.5 | The system shall let System Administrator(s) manage Moderators and system-related issues exclusively. | ❌ NOT COMPLETED |
| 7.1.3.1 | The system shall support a variable number of Moderators. | ❌ NOT COMPLETED |
| 7.1.3.2 | The system shall let Moderators manage forum content, including deleting inappropriate posts and alter posts. | ❌ NOT COMPLETED |
| 7.1.3.3 | The system shall let Moderators receive user reports and take appropriate actions. | ❌ NOT COMPLETED |
| 7.1.3.4 | The system shall let Moderators remove gardens based on user reports or observed violations. | ❌ NOT COMPLETED |
| 7.1.3.5 | The system shall let Moderators ban users who abuse the system. | ❌ NOT COMPLETED |
| 7.1.4.1 | Users who register to the platform shall automatically become Members. | ⏮ COMPLETED IN 352 |
| 7.1.4.2 | The system shall let Members request to join a garden. | ⏮ COMPLETED IN 352 |
| 7.1.4.3 | The system shall let Members leave a garden. | ⏮ COMPLETED IN 352 |
| 7.1.4.4 | The system shall let Members create a garden. | ⏫ ENCHANCED IN THIS MILESTONE |
| 7.1.4.5 | The system shall let Members create, assign, and track tasks within the gardens they manage. | ⏮ COMPLETED IN 352 |
| 7.1.4.6 | The system shall let Members create and comment on forum posts. | ⏫ ENCHANCED IN THIS MILESTONE |
| 7.1.4.7 | The system shall let Members edit only their own profile information. | ⏮ COMPLETED IN 352 |
| 7.1.4.8 | The system shall let Members log, view, and update harvest and maintenance schedules within the gardens they belong to. | ❌ NOT COMPLETED |
| 7.1.4.9 | The system shall let Members receive relevant notifications about tasks, posts, and garden activities. | ❌ NOT COMPLETED |
| 7.1.4.10 | The system shall let Members accept or decline tasks assigned to them. | ⏮ COMPLETED IN 352 |
| 7.1.5.1 | The system shall let Guests (users without an account) have read-only access to public forum posts. | ✅ COMPLETED IN THIS MILESTONE |
| 7.1.5.2 | The system shall let Guests have read-only access to basic garden information (garden name, location etc.). | ✅ COMPLETED IN THIS MILESTONE |
| 7.1.5.3 | The system shall not let Guests create or edit tasks; they may only view task summaries if publicly accessible. | ⏮ COMPLETED IN 352 |
| 7.1.5.4 | The system shall not let Guests post or comment on the forum. | ✅ COMPLETED IN THIS MILESTONE |
| 7.1.5.5 | The system shall not let Guests view harvest or maintenance scheduling information. | ✅ COMPLETED IN THIS MILESTONE |
| 7.1.5.6 | The system shall let Guests upgrade to Member status via the registration process. | ⏫ ENCHANCED IN THIS MILESTONE |
| 7.2.1.1 | The user who creates a garden shall automatically become the Manager of that garden. | ⏮ COMPLETED IN 352 |
| 7.2.1.2 | The system shall let Managers assign tasks to members of the garden. | ⏮ COMPLETED IN 352 |
| 7.2.1.3 | The system shall let Managers accept or remove members from their garden. | ⏮ COMPLETED IN 352 |
| 7.2.1.4 | The system shall let Managers appoint other Members as additional Managers of the garden. | ❌ NOT COMPLETED |
| 7.2.1.5 | The system shall let Managers access to create, modify, and delete tasks. | ⏮ COMPLETED IN 352 |
| 7.2.1.6 | The system shall let Managers view, edit, and delete any harvest or maintenance schedules for their garden. | ❌ NOT COMPLETED |
| 7.2.1.7 | The system shall let Managers create custom task types. | ⏮ COMPLETED IN 352 |
| 7.2.1.8 | The system shall allow Managers to edit or delete any event within their garden. Event Managers shall be able to edit or delete only the events they created. | ❌ NOT COMPLETED |
| 7.2.2.1 | The system shall let Members who are accepted into a garden shall become Workers in that garden. | ⏮ COMPLETED IN 352 |
| 7.2.2.2 | The system shall let Workers accept or decline tasks assigned by a Manager. | ⏮ COMPLETED IN 352 |
| 7.2.2.3 | The system shall let Workers update the status of tasks assigned to them. | ⏮ COMPLETED IN 352 |
| 7.2.2.4 | The system shall let Workers log, view, and update harvest and maintenance schedules for tasks assigned to them. | ❌ NOT COMPLETED |
| 7.2.2.5 | The system shall let Workers post and comment on forum posts within the gardens they belong to. | ❌ NOT COMPLETED |
| 8.1.1 | The system shall provide a chat section within each garden to support internal communication only among its members. | ❌ NOT COMPLETED |
| 8.1.2 | The system shall allow Managers to configure chat permissions (e.g., "Manager-only messages" or "All members can write"). | ❌ NOT COMPLETED |
| 8.1.3 | The system shall display messages in chronological order, including the sender's name and time. | ❌ NOT COMPLETED |
| 8.2.1 | The system shall allow garden members to create events within the gardens they belong to. | ❌ NOT COMPLETED |
| 8.2.2 | The system shall allow event creators to define the event title, description, date, and time. | ❌ NOT COMPLETED |
| 8.2.3 | The system shall allow event creators to set the visibility level of each event as either Private (visible only to garden members) or Public (visible to all platform users). | ❌ NOT COMPLETED |
| 8.2.4 | The system shall allow users to vote on their attendance decision (e.g., "Going," "Not Going," "Maybe"). | ❌ NOT COMPLETED |
| 9.1 | The system shall handle up to 300 concurrent users. | ❓ UNKNOWN |
| 9.2 | The system shall have a response time for critical actions (task creation, forum posting) less than 2 seconds. | ❓ UNKNOWN |
| 10.1 | The UI must be responsive and comply with accessibility standards. | ✅ COMPLETED IN THIS MILESTONE |
| 10.2 | Users shall be able to navigate the system with minimal training. | ✅ COMPLETED IN THIS MILESTONE |
| 11.1 | The system shall have an uptime of 99.9%. | ❓ UNKNOWN |
| 11.2 | Data backups shall be performed daily. | ❓ UNKNOWN |
| 11.3 | The system shall process synchronized data and provide updated information to the user. | ⏮ COMPLETED IN 352 |
| 12.1 | The system shall follow a modular architecture to facilitate future updates. | ⏮ COMPLETED IN 352 |
| 12.2 | Code documentation shall be maintained for all major modules. | ⏮ COMPLETED IN 352 |
| 13.1 | The system shall provide descriptive text alternatives for all non-text content (e.g., images, icons, buttons) to ensure compatibility with assistive technologies such as screen readers. | ✅ COMPLETED IN THIS MILESTONE |
| 13.2 | The system shall utilize ARIA attributes (aria-label, aria-describedby, aria-labelledby) where standard HTML semantics are insufficient to provide meaningful descriptions of interactive components. | ✅ COMPLETED IN THIS MILESTONE |
| 13.3 | The system shall ensure a minimum color contrast ratio of 4.5:1 for standard text and 3:1 for large text and graphical elements, in accordance with WCAG 2.1 AA guidelines. | ✅ COMPLETED IN THIS MILESTONE |
| 13.4 | The system shall provide an optional high-contrast mode that can be toggled by the user to improve visibility for users with visual impairments. | ✅ COMPLETED IN THIS MILESTONE |
| 13.5 | The system shall support complete keyboard navigation for all interactive elements, including task management, forum interactions, and profile actions, using standard keyboard keys (Tab, Shift+Tab, Enter, Space). | ✅ COMPLETED IN THIS MILESTONE |
| 13.6 | The system shall use semantic HTML elements (e.g., main, nav, header, section, button) to enhance compatibility with assistive technologies and improve document structure. | ✅ COMPLETED IN THIS MILESTONE |
| 13.7 | The system shall undergo accessibility testing using major screen readers (e.g., NVDA, VoiceOver) to verify accurate reading order, label associations, and element roles. | ❓ UNKNOWN |
| 13.8 | The system shall ensure that all user interface components are responsive and adaptable to a variety of screen sizes and device orientations. | ✅ COMPLETED IN THIS MILESTONE |
| 13.9 | The system shall allow text content and images to be resized up to 200% without loss of functionality, truncation, or layout issues. | ❌ NOT COMPLETED |
| 14.1 | The system shall support a broad range of assistive technologies, including but not limited to screen readers, voice control interfaces, and full keyboard-only navigation, to ensure accessibility for users with diverse abilities. | ✅ COMPLETED IN THIS MILESTONE |
| 14.2 | The system shall support a map for addresses to enhance user experience and improve accessibility. | ❌ NOT COMPLETED |
| 14.3 | The system shall provide configurable user accessibility preferences, including options to adjust font size, color contrast, and interface language. | ✅ COMPLETED IN THIS MILESTONE |
| 14.4 | The system shall offer multiple theme options (light mode, dark mode, and a high-contrast accessibility mode), allowing users to select a display that best suits their visual needs. | ✅ COMPLETED IN THIS MILESTONE |
| 14.5 | The system shall support the inclusion and display of images within garden pages and forum posts to facilitate problem-solving, improve content discoverability, and reduce language barriers. | ✅ COMPLETED IN THIS MILESTONE |
| 14.6 | The system shall support display of images with different resolutions to accommodate for different data accessibility and possible connection problems. | ✅ COMPLETED IN THIS MILESTONE |
| 15.1 | The system shall implement a recognition mechanism that awards badges, achievements, or "Top Contributor" labels to users based on their activity, attended events and engagement within the platform. | ❌ NOT COMPLETED |
| 15.2 | The system shall support user engagement features such as likes, reactions, and upvotes for forum posts and comments to promote community interaction. | ❌ NOT COMPLETED |
| 15.3 | The system shall provide a "best answer" selection feature for forum questions to highlight high-quality contributions. | ❌ NOT COMPLETED |
| 15.4 | The system shall deliver in-app notifications to users when their contributions receive engagement (e.g., likes, replies, upvotes) or when activity-based milestones are achieved. | ❌ NOT COMPLETED |
| 15.5 | The system shall display personalized feedback indicating the impact of a user's contributions on garden progress (e.g., "Your completed task increased the harvest yield by 20%"). | ❌ NOT COMPLETED |
| 15.6 | The system shall include impact summaries on user profile pages that visualize cumulative contributions and achievements to encourage ongoing participation. | ❌ NOT COMPLETED |
| 16.1.1 | The system shall use a translation framework (e.g., react-i18next) to separate UI text from code and store it in language resource files. | ✅ COMPLETED IN THIS MILESTONE |
| 16.1.2 | The system shall avoid hardcoded text in components; instead, all UI text shall reference translation keys. | ✅ COMPLETED IN THIS MILESTONE |
| 16.2.1 | The system shall support both left-to-right (LTR) and right-to-left (RTL) script layouts. | ❌ NOT COMPLETED |
| 16.2.2 | The system shall correctly mirror UI layouts for RTL languages such as Arabic or Hebrew. | ❌ NOT COMPLETED |
| 16.3.1 | The system shall use internationalization APIs (e.g., Intl.DateTimeFormat, Intl.NumberFormat) to display dates, times, numbers, and measurement units according to the user's locale. | ✅ COMPLETED IN THIS MILESTONE |
| 16.3.2 | The system shall store dates and times in a standardized format (e.g., ISO 8601) and convert them to locale-specific formats for display. | ✅ COMPLETED IN THIS MILESTONE |
| 16.4.1 | The system shall include a lang attribute in the root HTML element and dynamically update it based on the selected language. | ✅ COMPLETED IN THIS MILESTONE |
| 17.1.1 | The system shall collect only the minimum personal data necessary for functionality (e.g., username, email, location if provided voluntarily). | ⏮ COMPLETED IN 352 |
| 17.1.2 | The system shall apply anonymization or pseudonymization techniques to protect personally identifiable information (PII) wherever feasible (e.g., analytics, reporting). | ❌ NOT COMPLETED |
| 17.1.3 | The system shall obtain explicit user consent before collecting or processing personal data. | ❌ NOT COMPLETED |
| 17.1.4 | The system shall allow users to view, download, and delete their data in compliance with privacy regulations such as the GDPR and CCPA. | ❌ NOT COMPLETED |
| 17.1.5 | The system shall clearly communicate how user data is collected, used, and shared through a transparent Privacy Policy. | ❌ NOT COMPLETED |
| 17.1.6 | The system shall provide user-controlled privacy settings (e.g., controlling profile visibility, data sharing preferences). | ❌ NOT COMPLETED |
| 17.1.7 | The system shall employ masking the exact location of a garden and only support neighboring information in order to avoid exposing a user's exact location. | ❌ NOT COMPLETED |
| 17.2.1 | The system shall make data flows and system decisions transparent and explainable to users. | ❌ NOT COMPLETED |
| 17.2.2 | The system shall maintain logs of all significant automated actions to ensure auditability. | ❌ NOT COMPLETED |
| 17.2.3 | The system shall document the assumptions, limitations, and potential biases of algorithms used. | ❌ NOT COMPLETED |
| 17.3.1 | The system shall be designed and tested to avoid reinforcing social, cultural, or demographic biases in datasets or user interactions. | ❌ NOT COMPLETED |
| 17.3.2 | The system shall ensure equitable access and experience for users across diverse demographics, languages, and abilities. | ✅ COMPLETED IN THIS MILESTONE |
| 17.3.3 | The system shall be periodically audited for fairness and unintended harms. | ❌ NOT COMPLETED |
| 17.3.4 | All public contributions and user recognition features (e.g., badges, achievements) shall be awarded based on transparent, merit-based criteria. | ❌ NOT COMPLETED |
| 17.4.1 | All communication shall be encrypted via HTTPS/TLS. | ✅ COMPLETED IN THIS MILESTONE |
| 17.4.2 | Confidential data (e.g. passwords) shall not be stored as plain-text, strong encryption/hashing algorithms shall be used (e.g. SHA-256). | ⏫ ENCHANCED IN THIS MILESTONE |
| 17.4.3 | The system shall implement multi-layered access control, ensuring that users can access only the data necessary for their role. | ❌ NOT COMPLETED |
| 17.4.4 | The system shall enforce strong authentication mechanisms (e.g., multi-factor authentication). | ❌ NOT COMPLETED |
| 17.4.5 | Regular security audits and penetration tests shall be conducted to assess and enhance the robustness of the platform's security posture. | ❌ NOT COMPLETED |
| 17.4.6 | Latest available versions of development tools (frameworks, libraries etc.) shall be used. | ❓ UNKNOWN |
| 17.4.7 | PoLP (Principle of Least Privilege) shall be enforced. | ❌ NOT COMPLETED |
7. Individual Contributions
Süleyman Tolga Acar
-
Responsibilities: I was responsible for full-stack development, focusing on both frontend and backend improvements, bug fixes, code quality maintenance, and documentation. My role included implementing new features, improving user experience, ensuring code quality through linting and formatting, and participating in project planning and milestone activities.
-
Main contributions: My contributions to Customer Milestone 1 included implementing critical profile and task management features in both frontend and backend, fixing numerous bugs affecting user experience and functionality, improving error handling across the application, setting up code quality tools (ESLint and Prettier), and contributing to project documentation including the SRS Ethics & Data Protection section and milestone report. I also performed comprehensive testing, generated test data for production, and participated in milestone presentation preparation and delivery.
-
Code-related significant issues:
- Profile Feature Enhancement (#284): Improved profile feature in backend by adding user gardens, followers, following and is following endpoints. PR #285
- Task Management Features (#286): Added endpoints to fetch user's tasks or gardens, and to update an existing task in backend; implemented drag and drop functionality to update task status in frontend. PR #286
- Profile Page Bug Fixes (#278): Fixed follow feature and gardens list bugs in profile page. PR #286
- Task Status Display Fix (#279): Fixed incorrect display and functionality of task status in frontend. PR #286
- Tasks Page Bug Fix (#280): Fixed the overlapping display of tasks bug in tasks page. PR #286
- Task Acceptance Feature (#281): Added functionality to accept or decline a task in frontend. PR #286
- Homepage Tasks Widget Fix (#282): Fixed the incorrect display of tasks widget in homepage. PR #286
- Error Handling Improvements (#297): Improved frontend error handling by displaying user-friendly messages for failed API requests. PR #300
- Database Migration Fix (#296): Fixed backend database migration issue. PR #299
- HTTPS Configuration Fix (#325): Fixed HTTPS configuration bug when running the application in local environment. PR #325
- Image Count Bug Fix (#322): Fixed image count issue. Commit
- Code Quality Setup (#283): Updated frontend dependencies, setup and ran ESLint and Prettier, cleaned up unnecessary config files, implemented a better looking scrollbar. PR #286
-
Non-code-related significant issues:
- Wiki Organization (#209): Moved CMPE 352 wiki pages to archive and organized wiki home page and sidebar to improve documentation accessibility and maintain project history.
- Contribution Guidelines (#210): Contributed to the creation of contribution guidelines document to establish clear development practices for the team.
- SRS Documentation: Contributed to the Ethics and Data Protection section of the Software Requirements Specification document, ensuring compliance and ethical considerations are properly documented.
- Milestone Activities: Participated in Milestone 1 presentation preparation and delivery, and contributed to the Infrastructure Milestone Report.
-
Pull requests that I have created, merged, and reviewed:
- Created: #278, #279, #280, #281, #282, #283, #285, #286, #297, #299, #300, #325
- Reviewed and merged: #322 (Image upload for gardens and forum), #323 (Forum visibility for guests), #345 (Orphan branch fix)
- Conflicts: Encountered a challenging conflict during the orphan branch fix PR #345 due to an unintended push to the dev branch. This required careful analysis of the commit tree and manual resolution to ensure no critical changes were lost.
-
Additional information:
- Performed comprehensive manual testing for the frontend application to ensure quality and user experience
- Generated and injected test data to the production environment to facilitate testing and demonstration
- Participated in lab activities including project planning using the GitHub Projects board
- Actively contributed to team discussions and code reviews to maintain code quality and project standards
Dağhan Erdönmez
-
Responsibilities: I am a frontend developer. I am responsible for implementing / testing / documenting new features on the web application. I am also responsible of taking part in the organizing / planning phase for the project, keeping track of what needs to be done and how much progress we've done so far.
-
Main contributions: I wrote a report about the new expectations of this course for the frontend team, contributed to the SRS update that we did according to this report, wrote a report about why WoT expectations are not suitable for our project. Implemented light / dark / high-contrast color themes according to WCAG 2.1 AA requirements and Turkish / English language options (i18n) for the web application. Implemented unit tests for the newly added features. Solved numerous bugs from last semester's implementations. Reviewed and merged several PRs, structured and wrote a large part of Milestone Report 1.
-
Code-related significant issues:
| Issue Name | Issue Link |
|---|---|
| Implement high contrast, dark, light modes. | #255 |
| Implement / Check color contrast ratios. | #254 |
| Implement language and translation options. | #261 |
| Implement multilingual accessibility | #262 |
| [BUG] - Create Garden Screen Overflow | #310 |
| [BUG] - Task Creation Screen Overflow | #315 |
| [BUG] - Indefinite Loading Screens For Guests | #313 |
| [BUG] - User's Gardens Not Displayed in Home Page | #318 |
| [BUG] - Password Reset Not Working | #320 |
| [BUG] - Forum Widget Content Overflow | #339 |
| [BUG] - Profiles Are Not Reachable Through the Forum | #340 |
- Non-code-related significant issues:
| Issue Name / Explanation if Name is not Self Explanatory | Issue Link |
|---|---|
| [DOCS] - Update the Communication Plan Wiki Page | #202 |
| [DOCS] - Meeting Notes 1 | #205 |
| [DOCS] - Meeting Notes 2 | #213 |
| [DOCS] - Write a Report on New Frontend Expectations | #215 |
| [DOCS] - Organize weekly reports page on wiki | #216 |
| [DOCS] - Update the requirements according to the new expectations. | #231 |
| [DOCS] - Add WoT Applicability Report to Wiki | #240 |
| Open issues related to frontend for project planning until the first milestone. | #248 |
| [DOCS] - Create Infrastructure Milestone Report | #291 |
- Pull requests that I have created, merged, or reviewed:
| PR Name | PR Link |
|---|---|
| Simplify issue templates (bug, docs, feature) | #208 |
| Frontend Cleanup | #286 |
| Backend Migration Conflict Bug | #299 |
| Feature/keyboard navigation | #302 |
| Feature/location picker | #304 |
| Feature/298-https-configuration | #306 |
| Feature/color themes | #307 |
| HTTPS Config Local Environment Bugfix | #325 |
| Feature/language selection | #326 |
| Profile Photo Update/Delete Endpoints & UI Bug fixes | #328 |
| Frontend/bugfix | #330 |
| Frontend/new bugfix | #332 |
| Forum Post Edit & Delete with Image Management | #334 |
Merge Conflicts
I have encountered many conflicts during creating or reviewing pull requests. In our group we request from the owner of the pull request to resolve the conflicts before asking for reviews. I have been on the owner side multiple times and I try to resolve the conflicts without damaging the progress of my teammates. However, that is not always the case and sometimes we have to struggle through the commits to fix the broken merge.
Fatih Demir
-
Responsibilities: I was responsible mainly for backend development, focusing on improving API functionality, fixing bugs, maintaining code quality, and contributing to documentation. My role included implementing new features, optimizing backend performance and participating in project planning and milestone activities.
-
Main Contributions: My contributions to Customer Milestone 1 included organizing and restructuring the backend for better maintainability, proposing a design for the notification system and implementing it in the backend, and fixing several bugs affecting API responses and data integrity.
-
Code-related significant issues:
| Issue Name | Issue Link |
|---|---|
| Organize back-end code | #260 |
| Implement notification system | #244 |
| Forum Visibility to Guests | #312 |
- Non-code-related significant issues:
| Issue Name | Issue Link |
|---|---|
| Add Fatih's personal page | #206 |
| Review Requirements from last semester | #230 |
| Internalization and Localization Requirement updates | #225 |
| Create back-end issues for first Milestone | #249 |
| Create Infrastructure Milestone Report | #291 |
-
Pull requests that you have created, merged, and reviewed:
-
Created:
PR Name PR Link deleted archive folder #267 organize backend #268 Feature/notifications backend #275 guest visibility for forums #323 -
Reviewed and merged:
PR Name PR Link Backend profile improvements #285 Feature/reporting #294 fixed private garden visibility bug for non-members #333 -
Conflicts: Whenever I encountered a conflict in a PR, I requested changes from the assignee, asking them to merge the develop branch into their branch to resolve the conflicts.
-
-
Additional information:
- Participated in lectures and lab sessions, contributing to project planning and task management through the GitHub Projects board.
- Actively engaged in team discussions to maintain consistent project planning.
- Updated and refined some necessary wiki documents in order to ensure documentation alignment with the current development status.
- I always added tests/unit tests to my PRs.
Basak Tepe
-
Responsibilities: I was responsible for frontend development, focusing on keyboard navigation, implementing test cases & code quality, and contributing to documentation. My role included implementing new features, participating in project planning and milestone activities.
-
Main Contributions: My contributions to Customer Milestone 1 included keyboard navigation of the website, correspoding frontend tests, and location API integration (OpenStreetMap Nominatim API and Browser Geolocation API integration).
-
Code contributions:
| Issue Name | Issue Link |
|---|---|
| Implement Location Pickers (Geolocation & OpenStreetMap Nominatim API) | #295 |
| Implement keyboard navigation | #256 |
- Non-code-related issues I contributed:
| Issue Name | Issue Link |
|---|---|
| New Expectations Report | #215 |
| WoT Applicability Report | #240 |
| Meeting Notes 4 | #239 |
| Bug reported outside group | #308 |
| Infrastructure Milestone Report and Preparation | #291, #226 |
-
Pull requests that you have created, merged, and reviewed:
-
Additional information:
- Included the relevant tests in all my pull requests.
- Participated in lectures and shared key updates with team members who are not able to attend.
- Participated in lab sessions, contributing to project planning and task management.
- Was present in all meetings and actively engaged in team discussions.
Ceylanberk Tola
-
Responsibilities: For this milestone, I worked in a full-stack. I primarily moved to the frontend team to help with the workload there, but I also continued to support the backend team by assisting new members with integration and contributing to feature development. My responsibilities also included helping maintain the GitHub branch structure and participating in updates to project documentation, such as the scenarios and requirements.
-
Main contributions: My main contributions for this milestone centered on implementing comprehensive image management functionality for both the Garden and Forum modules (frontend and backend). This included creating new React components for uploads/galleries, enabling image posting in the forum post and comments, and updating backend serializers (UserGardenSerializer, ForumPostSerializer) and viewsets with queries. I also resolved critical bugs related to profile photo updates (affecting both frontend state and backend logic), added base64 image upload support, and improved documentation by updating issue templates and participated in enhancing requirements and scenarios.
-
Code-related significant issues:
| Issue Name | Issue Link |
|---|---|
| Garden and Forum Image Management | #289, #259 |
| Profile Photo Bug Fixes | #328 |
| Forum Post Edit/Delete Logic | #334 |
| Settings Page Bug Fix | #287 |
| Urgent Garden Image Fix | #335 |
| Backend Profile Endpoints | #144 |
| Forum Post Visibility Bug | #331 |
- Non-code-related significant issues:
| Issue Name | Issue Link |
|---|---|
| Issue Template Simplification | #207 |
| Requirements and Scenario Updates | #292 |
| Branch Structure Maintenance | #214 |
- Pull requests that I have created, merged, or reviewed:
| PR Name | PR Link |
|---|---|
| Issue Template Simplification | #208 |
| Settings Page Bug Fix | #305 |
| Garden and Forum Image Management | #322 |
| Profile Photo Update/Delete Endpoints & UI Bug fixes | #328 |
| Forum Post Edit & Delete with Image Management | #334 |
| Urgent Garden Image Fix | #335 |
| Orphan Branch Fix | #345 |
| Reviewed: Location Picker | #303 |
| Reviewed: Frontend Bugfix | #332 |
- Conflicts
We faced a significant challenge when a push --force was incorrectly applied to the development branch by a team member. This action prevented PR #334 (Forum Post Edit/Delete) from being merged and caused its changes to be lost from the development branch. This required a careful manual intervention and the creation of a new branch (Orphanbranchfix) to recover the lost work and safely re-integrate the feature, which I handled in PR #345.
Eymen Celikturk
-
Responsibilities: I was responsible for mobile development, focusing on mobile clean up from previous course, improvements, bug fixes, code quality maintenance, and documentation. My role included implementing new features on mobile, improving user experience, ensuring code quality on mobile, and participating in project planning and milestone activities.
-
Main contributions: My contributions to Customer Milestone 1 included implementing critical features in mobile, fixing numerous bugs affecting user experience and functionality, and contributing to project documentation and milestone report. I also performed comprehensive testing, generated test data for production.
-
Code-related significant issues:
| Issue Name | Issue Link |
|---|---|
| Clean up mobile | #271 |
| Implement forum filtering | #245 |
| Implement language and translation options | #266 |
- Non-code-related significant issues:
| Issue Name | Issue Link |
|---|---|
| Implement the new "Inclusive Design" requirements | #234 |
| Discuss UI Improvements | #238 |
| Internalization and Localization Requirement updates | #225 |
| Mobile Team demo plan | #288 |
- Pull requests that you have created, merged, and reviewed:
-
Created:
PR Name PR Link Clean up mobile #272 Implement forum filtering #273 Implement language and translation options #274 -
Reviewed and merged:
PR Name PR Link Organize backend #268 Feature/Language Options v2 #329 Feature/High Contrast Accessibility Mode #321 Image support for mobile #327 handle translation in layout titles #336 -
Conflicts: Whenever I encountered a conflict in a PR, I requested changes from the assignee, asking them to merge the develop branch into their branch to resolve the conflicts.
-
Bora Depecik
-
Responsibilities: I was mainly working on back-end development part of our project. I added some new features, fixed bugs and improved the code quality. I also contributed to documentation and participated in meetings and milestone activities.
-
Main Contributions: My contributions to Customer Milestone 1 included adding a reporting system for harmful posts & comments, and fixing some bugs that were high priority.
-
Code-related significant issues:
| Issue Name | Issue Link |
|---|---|
| Private Garden Visibility Bug | #290 |
| Implement Reporting system | #253 |
- Non-code-related significant issues:
| Issue Name | Issue Link |
|---|---|
| Creating back-end issues for 1st milestone | #249 |
| Review Requirements according to customer meeting | #243 |
| Creating personal wiki page | #212 |
-
Pull requests that you have created, merged, and reviewed:
-
Created:
PR Name PR Link fixing private garden visibility bug #333 adding reporting feature to back-end #294 -
Reviewed and merged:
PR Name PR Link deleting archive #267 Feature/notifications #275 |
-
Conflicts: For solving conflicts, I communicated with my relevant teammates to avoid any errors in the process.
-
-
Additional information:
- Contributed to project planning and milestone planning by creating necessary issues and having discussions with my teammates.
- Participated in team meetings and discussions.
- Added unit tests for the features I added to avoid bugs and maintain a higher code quality.
- Reviewed and updated our documentation according to the project status and customer needs to avoid any planning mistakes.
Şimal Güven
-
Responsibilities: I was responsible for mobile development. My role included implementing new features on mobile, improving user experience, ensuring code quality on mobile, and participating in project planning and milestone activities.
-
Main contributions: My contributions to Customer Milestone 1 included implementing critical features in mobile, fixing bugs, openning and assigning issues to create a structured project plan for the mobile development. I have also contributed to project documentation and milestone report.
-
Code-related significant issues:
| Issue Name | Issue Link |
|---|---|
| Implement Accessibility and Responsive Design Enhancements | #263 |
| Implement language and translation options | #266 |
- Non-code-related significant issues:
| Issue Name | Issue Link |
|---|---|
| Internalization and Localization Requirement updates | #225 |
| Upload Elicitation Questions | #237 |
| Meeting Notes 1 | #205 |
| Mobile Team demo plan | #288 |
- Pull requests that you have created, merged, and reviewed:
-
Created:
PR Name PR Link Color contrast #321 Language options 2 #329 -
Reviewed and merged:
PR Name PR Link Language selection #326 Notifications/backend #275 266 language options #274 Image support for mobile #327 -
Conflicts: Whenever I encountered a conflict in a PR, I requested changes from the assignee, asking them to merge the develop branch into their branch to resolve the conflicts.
-
Ahmet Ayberk Durak
-
Responsibilities: I was responsible for mobile application development, focusing on implementing new features, improving stability, enhancing user experience, and ensuring multilingual and visual consistency across the app. I also contributed to issue tracking, scenario creation, and milestone documentation. My work involved both the technical side of mobile app development and the organizational aspects such as requirement updates and planning for milestone deliverables.
-
Main Contributions: My main contributions to Customer Milestone 1 included implementing the image uploading functionality for gardens (both gallery and cover image), fixing language support and translation issues on mobile, and resolving bugs related to page loading in the garden gallery. In addition, I contributed to project documentation by preparing meeting notes, defining new requirements in line with the updated course standards, and developing Scenario 11 that outlines user interactions within the mobile app. I also actively participated in mobile team planning sessions and milestone discussions to align feature goals and ensure smooth integration with backend and frontend teams.
-
Code-related significant issues:
| Issue Name | Issue Link |
|---|---|
| Implement image uploading for gardens (gallery & cover image) | #263 |
| Fix language support texts to be translated | #347 |
| Fix garden gallery loading issue | (Internal bug resolved during Week 4) |
- Non-code-related significant issues:
| Issue Name / Description | Issue Link |
|---|---|
| Create meeting note-taking table | #203 |
| Prepare meeting notes | #213 |
| Contribute to new requirements related to standards | #231 |
| Contribute to planning of mobile side and related issue creation | #265 |
| Contribute to Scenario 11 and mobile implementation discussions | — |
- Pull requests that you have created, merged, and reviewed:
| PR Name | PR Link |
|---|---|
| Implement image upload for gardens (gallery & cover) | #327 |
| Fix language support and translation issues | #336 |
| Garden gallery page bug fix | #341 |
-
Additional Information:
- Took part in mobile team planning for milestone preparation and demo.
- Actively contributed to documentation and scenario design to support mobile implementation clarity.
- Focused on enhancing user experience and multilingual accessibility within the mobile app.
- Ensured integration consistency with backend endpoints for image and garden-related features.
- Participated in testing and debugging sessions to validate functionality across devices.
- Conflicts: I have communicated with the authors of the code when I had conflicts merging to drive a healthy merging. Then resolved the conlflicts.
Bahadır Kuşcan
-
Responsibilities: I was responsible for backend development, manual web application testing, bug fixing and deployment.
-
Main contributions: I implemented new features in the backend, tested the whole web application and reported back various bugs, leaded the team to fix these bugs together, contributed to documentation and handled all tasks related to deployment (creating a GCP VM, domain, DNS records etc.).
-
Code-related significant issues:
| Issue Name | Issue Link | PR Link |
|---|---|---|
| Archived CMPE352 Code | - | #201 |
| Remove captcha | #276 | #277 |
| Implement image uploading/displaying in backend | #257 | #303 |
| HTTPS Configuration | #298 | #306 |
| Multiple User With Same E-Mail Bugfix | #311 | #324 |
| Password Reset Bugfix | #320 | #324 |
- Non-code-related significant issues:
| Issue Name | Issue Link |
|---|---|
| Helped reorganization of the wiki pages | #209 |
| Contributed to project requirements update according to 1st and 2nd subsections of "W3C standards" and all subsections of "smart environments" | #231 |
| Took Meeting Notes 3 | #232 |
| Helped prepare elicitation questions for the customer meeting | #218 |
| Helped prepare elicitation questions for the customer meeting | #218 |
| Prepared and documented Ethics and Data Protection part of SRS | - |
| Configured the environment in GCP and deployed the app | #264 |
| Performed a comprehensive manual test for detecting any bugs on the web application, reported 12 bugs and created issues (Issues #309 to #320) for them | #301 |
| Updated the deployed app (multiple times) | #337 |
| Populated the deployed web app with data | #338 |
- Pull requests that you have created, merged, and reviewed: