Melon
Inspiration
We, as a species, are producing more CO2 now than ever before. These emissions need to stop. We created Melon as an easy way for people to track their emissions and make sure they're doing their part in saving the world. Little by little, we can all make a difference.
What it does
Melon gives you fast and accurate data on companies and their practices. Instantly find out a company's energy sources and their treatment of workers.
Melon also puts you in charge of your consumption and emissions. Intelligently track your goals to help make the world a better place. Want to cut down on meat so that you contribute less to methane emissions? Melon makes it easy to track that. Feel like using the bike instead of the car from now on? Melon has you covered.
Melon also provides an emissions calculator to inform you about your total emissions in a journey. It has walking, cycling, bus, car, train, and cruise ship as transport options.
Melon allows you to achieve your environment-conscious goals in your own way.
How we built it
We used Python to get our project up and running as fast as possible.
For the server backend, we use Flask with the Jinja2 templating engine. We use SQLite for the database that holds all user data and company data. Of course, we want to keep users' accounts safe so we use Passlib with the bcrypt algorithm to hash passwords.
For the frontend we use HTML and CSS for the webpages, as well as JavaScript for interactivity. We use Bootstrap to create responsive pages. For ease of use and browser compatibility, we used the jQuery library for some functionality.
For the CO2 emissions calculator, we used geopy and OpenStreetMap to get world locations and to calculate the distance. We then researched data for different modes of transport to give accurate values on CO2 emissions.
We want to make sure that everything goes smoothly, so we use Mypy for statically type checking our codebase. We used GitHub Actions to create a build pipeline that allowed us to automate our type checking process on every push.
Challenges we ran into
Getting everyone up to speed with Git and GitHub wasn't an issue, but we did end up with a branching model that wasn't too tidy. For a Hackathon, this is fine because it's all about getting stuff done as quickly as possible, but looking at the commit history on the repo does require time. If we continue working on this in the future, we'd like to do a rebase of the repository so far in order to create a better commit reading experience.
Accomplishments that we're proud of
We're quite proud of how quickly we were able to mesh together and collaborate on something we all wanted to work on. From the brainstorming phase to the UI design to the programming, we were all able to cooperate on the project.
We were able to pitch ideas to each other without worrying about "being wrong", which helped us iterate through our ideas quickly. It was a very supportive environment where we were all able to contribute to the team.
Our planning and coordination was also really on-point, because we used GitHub Projects (similar to Trello) to assign tasks to each other. Everyone knew what they had to do, and we all took the initiative to get started on a new task if we were finished.
What we learned
We learned a lot about effective branching in Git, as well as learning new technologies. Not all of us were completely familiar with Flask, Jinja, Passlib, or Bootstrap, so we were able to teach each other how to use these frameworks in a collaborative way.
What's next for Melon
We weren't able to add automatic CO2 emissions tracking from driving, but we want to explore this idea further if possible. One possible extension would be to use the user's number plate to get information about their car to calculate the CO2 emissions more accurately.
If we had more time, we would've also added real data on real companies, but unfortunately during such tight time restrictions it made more sense to make up fake companies.
We also want to create a mobile app for Melon so it's even more accessible, however due to time constraints this wasn't possible so this will have to be completed at a later date.
We think that this idea has potential and we want to improve it even more. While we may need to refactor some parts of the codebase, we really want to add useful features like car tracking.
Google Slides presentation
For more information like proposed marketing and monetisation details, view our presentation here: https://docs.google.com/presentation/d/1lxNU18aihSiQ89gS5kCJaR-ul4X7VAqfnYD_3ogTBis/edit?usp=sharing
Log in or sign up for Devpost to join the conversation.