Skip to content

Milestone Report

Mustafa Taha Söylemez edited this page May 17, 2025 · 28 revisions

Executive Summary

Overview

Greener is a sustainability-focused platform that empowers individuals to track and improve their environmental impact. Our application allow users to record their recycling and waste collection activities, earning points for their contributions, which can be used to climb leaderboards, join challenges, and set personal environmental goals. Greener also offers tips and suggestions to help users adopt more eco-friendly habits. By turning sustainable actions into a rewarding and engaging experience, Greener aims to raise awareness and inspire positive change for a greener future.

Current Status of The Platform

The Greener web and mobile applications are successfully implemented. You can see and try our platform through https://ecochallenge-frontend.onrender.com/ . However, not all the features are fully functional right now. Here are the current working functionalities:

  • User Registration / Profile Management
    Users are able to create new accounts or sign up with Google and GitHub. Once they are logged in, they have the opportunity to edit profile attributes through the dashboard.

  • Tips and Recommendations
    In the home page, we provide tips, information boxes and some recommendations to raise awareness about preserving the nature. Additionally, we aim to inform people through the blogs. We also have daily tips in the dashboard as well.

  • Waste Log
    In order to keep track of their sustainability focused actions, users can add entries to their waste records, by picking quantity and category.

  • Eco Score
    One of the biggest goals of our project is to create a rewarding mechanism, in order to convert environmental activities into a fun experience. Eco score is our xP-like feature, which users are able to gain via logging different types of waste.

  • Goals
    Users are able to set goals related to waste logs. They can choose quantity, timeframe and waste category.

Current Missing Features

Due to the conflicts surrounding our country and university, the earthquake in İstanbul and the extended Ramadan break, we could not fully stick to the timeline. Hence, our final release lacks some of its potential traits. The features that our team aims to provide in the feature releases of the project are:

  • Leaderboard
    Although we have the eco scores calculated and the leaderboard page displayed (with mock data), we have not managed to connect those yet. Therefore, our leaderboard is not updated according to the real scores of the users.

  • Challenges
    We decided to leave Challenges part as a future feature, as well. Still, we have the backend and frontend code of this part, too.

  • Goals (half functional)
    Goals part are almost fully functional, except that a waste log does not automatically increase the related goal progress yet. Despite that we have the necessary signal mechanism, there are some minor issues while deploying.

Overall Summary

Although some of the features are not implemented yet, users are able to try the core functionalities that form the underlying basis of our project.

Status of Deliverables

Deliverable Description Status Related Link
User [Feature] Implement user/profile management ✅ Done See the code base of https://github.com/bounswe/bounswe2025group3
Authentication [Feature] Implement authentication (including Google and GitHub) ✅ Done See the code base of https://github.com/bounswe/bounswe2025group3
Waste Log [Feature] Implement waste logging ✅ Done See the code base of https://github.com/bounswe/bounswe2025group3
Goals [Feature] Implement goal setting ✅ Done See the code base of https://github.com/bounswe/bounswe2025group3
Challenges [Feature] Implement challenges part 🔄 In Progress
Recommendations [Feature] Implement recommendations part 🔄 In Progress
Leaderboard [Feature] Implement leaderboards part 🔄 In Progress
Final Deployment Web Deploy to production on web ✅ Done https://ecochallenge-frontend.onrender.com/
Final Deployment Mobile Deploy to production on mobile ✅ Done Download the apk file
Wikipages Diagrams, Meeting Notes, Research Docs ✅ Done https://github.com/bounswe/bounswe2025group3/wiki
Demo Video 3-4 mins of video showcase ✅ Done https://drive.google.com/file/d/1X8JDeT5VKD1cqRL9XojuL5ndMAu0qMU0/view?usp=sharing
Project Plan Describe the structure of project ✅ Done https://github.com/bounswe/bounswe2025group3/wiki/Project-Plan-for-Waste-Tracking-App
Final Release Release a version of the project ✅ Done https://github.com/bounswe/bounswe2025group3/releases/tag/v1.0.0
Milestone Report Report the progress ✅ Done https://github.com/bounswe/bounswe2025group3/wiki/Milestone-Report

Decision and Choices

For documentation we kept things light on rules and heavy on usefulness. We drafted couple short issue templates—some of them being; bug, documentation, and testing—in .github/ISSUE_TEMPLATE so anyone could open a clear ticket in seconds, yet we never forced everything into a template when it didn’t fit. Meeting notes follow the same spirit: we jot down only what matters, and we even logged a spur-of-the-moment chat as Huddle #1 because a quick decision still deserved a paper-trail see. The wiki’s landing page then links out to these notes, diagrams, and research so newcomers can find things without digging. Everyone writes their own bits—no dedicated scribe—so pages stay fresh and the load is shared.

Our development flow is equally flexible. Instead of passing tasks down an assembly line, each teammate grabs work that matches their bandwidth or interest, and we shuffle tickets around whenever someone slips behind schedule. Although we started with loose “backend / web / mobile” circles, anyone was free to hop branches, pair up, or finish a stalled feature the moment it mattered. That mix-and-match approach kept the project moving without bogging us down in process, while the links in every issue and pull request still let us trace who did what and when.

Challenges We've Faced

During the early stages of our project, we faced some challenges related to differing opinions within the group. While working on the requirement specification, there were disagreements about the relevance of certain features. To address this, we held group discussions and reached a consensus that reflected everyone's input. Similarly, we had varied ideas when choosing the overall project topic. To ensure a fair and democratic decision, we conducted a group poll and proceeded with the most favored idea. Additionally, we encountered some issues related to Git commits, particularly with commit permissions and direct commits. We resolved these problems through active communication and coordination, ensuring that everyone followed the correct workflow moving forward. These experiences have strengthened our teamwork and problem-solving skills.

Personal Contribution Table

Below is the table that provides a summary of contributions of each team member, while developing the app. To see more details and also the contribution for other stages of the project (e.g. requirement specification or modeling), please either visit our Wiki page and navigate to Individual Contributions through sidebar or click the links at the right-most part of the table.

Name Summary of Work Contribution Wikipage (more detailed, including non-development activities)
Barathan Aslan Mobile-app features (admin/mod pages & UI tweaks #120, visual fixes #122)—built and iterated jointly with Ahmet Okta’s steady groundwork—plus fault-tolerant Environmental Stats API #140, Jest/RNTL test suite link, and cross-branch merge coordination #127. https://github.com/bounswe/bounswe2025group3/wiki/Barathan-Aslan's-Contributions
Selman Akman Developed basicly/majorly frontend-web components (login, signup, profile, dashboard, waste-log pages) with backend API integration #102, set up GitHub Wiki Home page and organized team bios#1 that further improved by other team members, created/reviewed/categorized project requirements and created template use case diagrams and class diagrams, created/reviewed sequence diagrams #18, #38, #41, #43, #49, #54, #74, conducted API tests with Postman, and wrote user, system, testing, and research documentation #126. https://github.com/bounswe/bounswe2025group3/wiki/Selman-Akman's-Contributions
Mehmet Emin Atak Developed the backend of waste, including waste models and waste logging. (Link to the issue and to the commit). Implemented the backend of goals part, including models, goal creating mechanism and connection to frontend. (See the related issue and a related PR). Wrote the backend for challenges part, necessary models and signals. (See the pull request). Wrote some unit tests for goals. (Issue and commit). Created Information Boxes on frontend and fetched definitions from Wikidata API. (Link for merged PR). https://github.com/bounswe/bounswe2025group3/wiki/Mehmet-Emin's-Contributions
Ahmet Okta Developed Majority of the mobile application, starting with login and register screens (#88). Continuously improved the app with waste, profile, and goal screens, token management, and API connections (#115, #121, #131). Made visual/functional improvements and bug fixes through time (#120). Reviewed mobile PR into develop (PR #140) and wrote mobile app manuals (#126). https://github.com/bounswe/bounswe2025group3/wiki/Ahmet-Okta's-Contributions
Mehmet Caglar Kurt I contributed extensively to our project across multiple areas. I regularly joined meetings and participated in project brainstorming (issue), and I took part in requirements gathering and review (issues, [27]). In modeling, I worked on sequence and use case diagrams (issues, [68], [70]). As a frontend team member, I suggested using React (issue), contributed to the UI design (issue), implemented core pages, navigation, and dashboard styling, login,signup,forgot password ... pages and created unit tests (issue). https://github.com/bounswe/bounswe2025group3/wiki/Mehmet-Caglar-Kurt's-Contribution-Report.
Berke Kartal Developed key frontend components including login, signup, dashboard components, and goals pages with backend integration. Designed UI designs in Figma, implemented Google OAuth, and integrated it with the backend with Ömer’s support. Enhanced the WikiData API feature to fetch sustainable development info. Contributed to requirements refinement and created sequence diagrams. Collaborated with Emin on improving the goals API. Stayed active through issues, code reviews, and PRs like #134 and #146. https://github.com/bounswe/bounswe2025group3/wiki/Berke-Kartal's-Contributions
Nilsu Tüysüz I focused on implementing recommendations and tips within the backend, which I pushed to the community branch. However, the branch was not merged as the frontend part of the feature wasn't going to make it to the deadline. Additionally, I integrated an external API from WikiData to fetch the definition of waste management, creating a pull request for this implementation. I also developed a unit test within the waste module, assessing the overall score calculation by adding different waste items. Furthermore, I completed all pending mockups, including those related to recommendations and tips, as well as user scenarios and requirements for these features. I also used Google Cloud Console to enable login with Google. https://github.com/bounswe/bounswe2025group3/wiki/Nilsu-Tüysüz's-Contributions
Ömer Faruk Bayram Led the backend sub-team: coordinated project planning, and code reviews; designed and implemented the domain-driven Django app structure; developed waste-log models/serializers/views and custom auth (dj-rest-auth + JWT + Google OAuth); added example docs with drf-spectacular; managed GitHub issues, milestones, PR reviews and task assignments; authored render.yaml and handled manuel deployment to Render.com for frontend, backend & PostgreSQL. https://github.com/bounswe/bounswe2025group3/wiki/%C3%96mer-Faruq's-Contributions
Mustafa Taha Söylemez Initialized backend setup and integration tasks: initialized Django project, implemented initial waste-log models/serializers/views, and developed GitHub OAuth login with dj-rest-auth + JWT; contributed to frontend GitHub login flow; participated in meetings and authored scenario/mockup for new waste type; conducted backend tech stack research and shared Git best practices https://github.com/bounswe/bounswe2025group3/wiki/Mustafa-Taha's-Contributions

Evaluations of Tools & Lessons Learned

We have used GitHub as the main platform for both communication and version control of code base. Additionally, we created a WhatsApp group at the beginning of the semester, to keep in touch with each other more easily. At the implementation stage, we created seperate WhatsApp groups for web, mobile and backend teams. We set meetings on Google Meet. < br/>

As tech stack on implementation, we chose Django, React, Figma and Render. Below you will find evaluations of those, as well.

GitHub

Since almost none of us were used to GitHub before, we had some difficulties on tracking the issues and tasks on GitHub at first. Moreover, we did not pull request exactly as we should have done. For instance, we sometimes directly committed to a branch, which lead some confusions and conflicts.

  • We should create a pull request for almost all code changes, in order to avoid conflicts and to gain better control.
  • We should warn each other on other platforms, even if we created a related issue on GitHub. This ensures the proper communication.
  • We should not create almost-duplicate issues, since they accumulate and may result in missing important issues. For example, one issue for sequence diagrams may be enough, instead of one for each diagram.

WhatsApp

  • We should have texted to each other more frequently, especially after a critical change.
  • We could be more active, since it is the most common communication platform.

Google Meet

We set up regular team meetings on Google Meet. We took notes and shared with everyone.

  • We could set more team meetings, especially in the implementation part.
  • We could set private meetings, in order to speed up the process. For example, to solve a bug, someone from backend and someone from frontend should have met on Google Meet. We did this a few times, but it was rare.

Django

It was easy to use Django and its integration with PostgreSQL.

  • First creating a proper class diagram is crucial while using Django. It eases the process enormously.

Figma

  • We arrange some UI design here for different pages and share the links of them to show our team.
  • We set in Figma our color codes, our structure of pages and harmony of different pages.

React

  • We can fastly manipulate css and js files and saw the difference we made instantaneously.
  • We clustered different groups, pages in pur folder so all the team and other teams like backend, can easily understand how our project works.

Render

We deployed our project on Render, which provides a free tier both for backend and frontend.

  • We could select other platforms, since sometimes our website is not displayed immediately. There can be a few seconds of loading screen, caused by Render.
  • We could try deploying backend and frontend seperately. For instance, Vercel is very easy to deploy frontend.

Labs

Team Members

Weekly Reports

Ahmet Okta
Barathan Aslan
Berke Kartal
Mehmet Çağlar Kurt
Mehmet Emin Atak
Muhammet Berkay Keskin
Mustafa Taha Söylemez
Nilsu Tüysüz
Selman Akman
Ömer Faruk Bayram

Meetings

Milestones

Templates

Research on Git

Projects

Project Resources

Software Design Diagrams

Documentation(Manuals & Research Doc)

CMPE352 Archive

Projects

Project Resources

Software Design Diagrams

Documentation(Manuals & Research Doc)



Documentation(Individual Contributions and/or Milestone Report)

Individual Contributions

Meeting Notes

Clone this wiki locally