Milestone 2 Report - bounswe/bounswe2025group5 GitHub Wiki
Start Date: 28.04.2025
End Date: 04.05.2025
1. Introduction
This milestone report summarizes the progress of our CMPE 352 group project, Wasteless. Our goal is to develop an eco-friendly application that helps users track and reduce their personal waste footprint. The app records the amount of waste each user diverts or avoids, presents this information through intuitive visualizations, and returns the insights to the user. To keep people engaged, we are adding a social feed where they can share milestones, tips, and ideas, along with a reward system that recognizes those who achieve specific sustainability targets. Users can also create and join waste-reduction challenges, earn points, and redeem them for exclusive rewards.
The team members who were included in this project and their contributions are as follows:
- Uygar Apan
- Abdurrahman Arslan
- Serdar Bahar
- Ahmet Mert Balcı
- Ahmet Çağdaş Girit
- Abdülkerim Kasar
- Yusuf Onur Öksüz
- Cengiz Bilal Sarı
- Yüksel Eren Şen
- Ahmet Ege Tanrıverdi
- Osman Yusuf Tosun
Current Status
At the team meeting on April 28, we reviewed our Milestone 1 achievements and shortcomings.
Considering our requirements and the remaining time, we developed a roadmap for Milestone 2.
2. Decision Making & Summary of Progress
2.1 Initial Meetings
From the very beginning of the semester, our team has worked diligently on the project. The success of this project requires not only strong individual effort but also clear communication and close collaboration. With this in mind, we scheduled an initial meeting even before choosing a project topic. There, we introduced ourselves, shared our backgrounds and ideas, and discussed strategies for staying connected. By the end of that meeting we agreed on three key practices: (1) create a WhatsApp group for urgent matters and informal project discussions; (2) hold a weekly meeting—without exception—to review our progress; and (3) use Git as our central workspace, ensuring that all project-related materials are stored and managed there. We also agreed to research the necessary tools and methods and to create standardized templates for our communication, such as issue templates and meeting-notes templates. We set up a GitHub wiki and populated it with our Git usage notes, communication templates, team members’ personal information, and a main home page. Then, in the following meetings, we selected our project topic.
2.2 Planning and Design Phase
In the meetings that followed, we selected our project topic and held extensive discussions about its goals, core functionalities, and overall purpose. We then launched the planning phase, which we split into two stages. Stage 1 focused on requirements gathering: defining use-case scenarios, drafting elicitation questions, and conducting a customer meeting to clarify expectations. To maintain steady client communication, we elected a dedicated work division. Wanting every teammate engaged, we assigned each task both primary assignees and a reviewer so that everyone participated in every step.
After finalizing a first draft of the requirements, we moved to Stage 2, where we created the key diagrams—use-case, class, and sequence diagrams. Because these diagrams form the backbone of implementation, we had every member produce draft versions of the use-case and class diagrams. We reviewed the drafts together, agreed on a consolidated version, and then divided the finalized use cases among the team to draw the corresponding sequence diagrams. Recognizing that the planning products are not fixed but may evolve once implementation begins, we moved on to the implementation phase.
2.3 Implementation Phase
Before starting implementation, we held a planning meeting and agreed to divide the workload into three parallel sub-teams—front-end, back-end, and mobile. Each team would meet independently to work on its component, then, once a week, all teams would gather to share progress, flag dependencies, and coordinate next steps. To streamline communication, we created dedicated WhatsApp channels for each sub-team and set up matching sections in the Git repository. Development takes place on separate branches, leaving the main untouched until a group-approved merge. This arrangement lets every team build, test, and deliver its piece before integrating the front-end, back-end, and mobile modules into a single cohesive product.
3. Deliverables
Below is the list of deliverables we plan to complete by 14 May 2025, along with brief explanations for each item.
3.1 The List of Deliverables
Deliverable | Status | Links |
---|---|---|
Project Repository | ✅ Delivered | repo |
Software Requirements Specification | ✅ Delivered | jump |
Scenarios & Mockups | ✅ Delivered | jump |
Use Case Diagrams | ✅ Delivered | jump |
Class UML Diagrams | ✅ Delivered | jump |
Sequence Diagrams | ✅ Delivered | jump |
Communication Plan | ✅ Delivered | jump |
Issues | ✅ Delivered | jump |
Implementation | In Progress | jump |
2st Milestone Report | ✅ Delivered | Current Report |
3.2 Detailed Status of the Deliverables
3.2.1 Project Repository
Our project repository can be viewed here. The repository is actively being changed since we are still working on the project.
3.2.2 Issues
We provide all of our issues. The issues have different labels for clarity. All have corresponding assignees, descriptions and discussions.
3.2.3 Wiki
Our wiki can be viewed here. Our wiki includes all the aspects related to our project. Below, we explain the status of the wiki sections.
3.2.3.1 Communication Plan
You can view our communication plan here. We have been and still are loyal to this communication plan. This plan also includes certain templates that are being used in the project. These templates include issue templates and meeting notes template.
3.2.3.1 Software Requirements Specification
Our full set of project requirements is available in the GitHub wiki. The page lists all functional and non-functional requirements, covering both user-facing and system-level needs, and includes a glossary of project-specific terms. Although the requirements are currently complete, they may evolve during implementation as we identify missing details or clarify ambiguities.
3.2.3.2 Diagrams(Use Case, Class ,Sequence)
As explained in section 2.2, to ensure that each team member is familiar with the designs, we created diagrams for each. We included them in the drafts sections (use case diagram drafts, class diagram drafts, sequence diagram drafts), we also provide the final versions (use case diagram, class diagram, sequence diagram). We mainly used PlantUML to create the diagrams, and we also included the code together with the drafts.
3.2.3.3 Scenarios, Mock-Ups and Elicitation Questions
Our wiki page includes a section called Project. Under this section, the final versions of elicitation questions and scenarios can be found.
3.2.3.4 Research
Throughout the project we conducted detailed research on the tools we used, the ideas we presented and the domain of our project. We provide these under the Resources and Research sections in our wiki page.
3.2.3.5 Meeting Notes
As a team, we believe that keeping detailed and well-formatted meeting notes are crucial to ensure communication. That is why we kept all our meeting notes organized under the Meeting Notes section in our wiki. Since in the implementation phase we conduct separate team meetings (i.e., Frontend, Mobile, and Backend meetings) we also share them.
3.2.4 Implementation
3.2.4.1 Frontend
The frontend development team was made up of three members
- Ahmet Çağdaş Girit
- Eren Şen
- Abdurrahman Arslan.
Ahmet Çağdaş Girit and Abdurrahman Arslan didn't have experience in frontend development so they started off by learning React Native. Different pages were assigned to different members. Yüksel Eren Şen contacted the mobile team to synchronize the UI in mobile and desktop.
For milestone 2, the frontend team had implemented the following features:
- (Remaining from MS1) Waste goal and log implementations
- (Remaining from MS1) Profile page
- Comment/like posts
- Save posts
- Semantic search
- Leaderboard
3.2.4.2 Mobile
The mobile development team was made up of four members
- Abdülkerim Kasar
- Serdar Bahar
- Yusuf Onur Öksüz
- Uygar Apan
For milestone 2, the mobile team will implement the following features:
- (Remaining from Milestone 1) Waste goal and log implementations - Uygar and Yusuf Onur
- Comment posts - Yusuf Onur
- Save/like posts - Uygar
- Home page (viewing statistics and top selected posts) - Abdülkerim
- Semantic search - Abdülkerim
- Leaderboard - Serdar
3.2.4.5 Backend
The frontend development team was made up of four members:
- Cengiz Bilal Sarı
- Ahmet Ege Tanrıverdi
- Ahmet Mert Balcı
- Osman Yusuf Tosun
The back-end team is now deep into implementation. We began by setting up our core toolchain—Postman, IntelliJ IDEA, and MySQL. Postman lets us send mock requests and responses to verify API endpoints and server-side logic. IntelliJ IDEA is our shared Java development environment, while MySQL provides the relational database for our application. We implemented the initial structure of our database and we created the required class queries. Than we moved onto implementing the endpoints, we implemented endpoints for the login, register, waste logging and goal, profile and the forum page. More detailed information about the backend development can be found here.
For milestone 2, the backend team will implement the following features:
- (Remaining from Milestone 1) Comment and like posts (Already done) - Save posts
- Endpoints for leaderboard and challenges
- Different endpoints for the Home page (most liked posts and total log information)
- Wikidata API semantic search implementation
- Deployment (if time permits) (Moderator and admin login status TBD)
3.2.5 Presentation
We haven't started working on the presentation yet. We plan to decide on a start date and a due date for the presentation after we have completed the implementation phase.
Main author: Abdülkerim Kasar, Last edited: 29.04.2025