Milestone 1 Report - bounswe/bounswe2025group5 GitHub Wiki
Start Date: 10.04.2025
End Date: 26.04.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 that were included in this project are:
- 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
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 Planing 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 reviewers 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 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 |
Presentation | Not Delivered | |
Implementation | In Progress | jump |
1st 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 includes issue templates and meeting notes template.
3.2.3.1 Software Requirments 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 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 include the codes 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 developman team was made up of three members— Ahmet Çağdaş Girit, Eren Şen, Abdülrahman Arslan. Ahmet Çağdaş Girit and Abdülrahman Arslan didn't have an experience in frontend development so, they started off by learning React Native.Different pagees were assigned to different members. Yüksel Eren Şen contacted the mobile team to syncronise the UI in mobile and desktop.
For milestone 1, the frontend team had implemented the following features:
- A fully functional home page.
- A page for logging in, registering, or continuing as a guest.
- A main page where tsome goals and post are visible. It has buttons that send the user to feed, goal and user profile. It also has a button for logging out.
- A forum page where all users can view posts.
- A personal profile page for registered users (guests are redirected to the login page at this step).
- The ability for users to add waste goals.
- The ability for users to add waste log information.
- The ability for users to update their bio.
- Relevant backend API calls (login, register, getTopPosts, getProfileInfo, editProfile getGoals, createGoal, getLog, createLog) were implemented.
- An adaptable UI supporting.
- Reliable page transitions.
3.2.4.2 Mobile
The mobile development team was made up of four members—Abdülkerim Kasar, Serdar Bahar, Yusuf Onur Öksüz, and Uygar Apan. Since none of them had prior experience with mobile frameworks, they started off by watching tutorial videos and built the app while simultaneously getting up to speed on React Native. To avoid problems down the line, each task was reviewed together, allowing them to spot and fix issues early. Working in sync throughout every phase kept the workflow smooth and helped them move faster. Moreover, Yüksel Eren Şen —whose primary role was on the frontend/web team— provided valuable support by applying his strong React expertise to their React Native development. For milestone 1, the mobile team had implemented the following features:
- A fully functional home page.
- A page for logging in, registering, or continuing as a guest.
- A forum page where all users can view posts.
- A personal profile page for registered users (guests are redirected to the login page at this step).
- The ability for users to add waste goals.
- The ability for users to add waste log information.
- The ability for users to update their bio.
- Relevant backend API calls (login, register, getTopPosts, getProfileInfo, editProfile getGoals, createGoal, getLog, createLog) were implemented.
- An adaptable UI supporting both dark and daylight modes.
- Reliable page transitions.
3.2.4.5 Backend
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.
3.2.5 Presentation
We didn't start 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.