Milestone 2 Report - bounswe/bounswe2025group5 GitHub Wiki

Start Date: 28.04.2025

End Date: 04.05.2025

Milestone 1 Issues

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:

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