A scalable waste management system powered by IoT.
- cleanurge-mcu: Containing the source code for the microcontroller
- cleanurge-backend: Containing the source code for the Express backend
- cleanurge-app: Containing the source code for the Android App
This is the repo for the app part of project Cleanurge
- Description
- Project roadmap
- Getting started
- How the app looks like
- Built with
- Current Issues
- Contributing
- Authors
- License
- Acknowledgments
Today, waste is a significant global issue. Increasing volumes of waste are being generated as the global population and living standards rise. The environmental impact is significant, with massive volumes of waste generated annually with only basic or little treatment to minimise its impact. People are increasingly concerned about the production of waste and its effect, and are seeking ways to deal with the problem.
Our project serves to prevent overaccumulation of waste at public bins by maintaining a log of their waste accumulation levels. The authorities will have the feature to get live status of the various public bins and appoint garbagemen to clear off any bins on overaccumulation. Moreover, the local residents will be able to report if there is an urgent attention needed in case of an overflow outside the garbage bins or excess accumulation of wastes nearby.
The idea is to have wireless beacons configured at various public bins to detect and measure the level of waste accumulation at the bins. When the level at any of the bins cross a threshold, a request is triggered to a web server that is then used to send notifications to the authorities in an app as well as web based software. The mobile application also supports the feature for individuals living in the locality to report of any waste accumulation directly to the authorities.
The project currently does the following things.
- The self-reported issues are visible with image, address and time
- The beacon information is visible with exact map location
- User can add new issue with report title, image and address
- User can track resolved and unresolved issues
See below for our future steps.
- Showing self-reported issues with exact location
- Adding recycler pagination
- Real-time data fetching
- Real-time network status checking
- Bug Fixes
- UI upgrades
- and lot more...
Everyone is welcomed to contribute to our project. Mentioning in bold, you do not need to know the tech stack and tools beforehand to be a part of our project. This is a learn-and-build projects where the contributors build alongside learning the various concepts and technologies involved. Below are a few prerequisites and installation guides:
- Android Development using JAVA 8
- Working with API
- Using Firebase
The best way to learn the following is to google each and everything!
-
Very basic understanding of git and github:
- What are repositories (local - remote - upstream), issues, pull requests
- How to clone a repository, how to fork a repository, how to set upstreams
- Adding, committing, pulling, pushing changes to remote repositories
-
Android:
-
Postman:
- Testing API
- You'll find all the API endpoints used in this project here -> https://cleanurge.herokuapp.com/docs/
A step by step series of instructions that tell you how to get the project running locally is given below. Google every issue you face following the below instructions or just ask us in our Discord / WhatsApp group.
- Fork and clone the repository.
- Open Android Studio --> New --> Project from Version Control... ---> Paste the repo url ---> Clone
- Wait for the gradle sync to finish and click the play button to install the app on your local device / emulator.
- Improve the layout of Login and CreateAccount screen
- Merge all the Registration Activities in a single activity
- Add a filter in 'HomeFragment' to filter out the reported issues
- Wrap all the EditTexts in the app with TextInputLayout
- Add an entry animation for the single report items in HomeFragment
- Add a toggle visibility of password in Login and CreateAccount Section
- Convert all the HardCoded text in the XML files to String Resources
- Remove the character '#' from all the Beacon CodeName in Beacon List
- Add character limitation for Report Content Title and Report Address in PostReportActivity
- Replace all the Toast and the EditText Error Messages with appropiate message text
Please read contributing.md for details on our code of conduct, and the process for submitting pull requests to us.
This project is licensed under the GNU Public License - see the LICENSE file for details.