SDGoals On The Go
App Overview
SDGoals On The Go is an IOS app that hopes to inspire and help ordinary people make an impact on the United Nation's Sustainable Development Goals, a collection of 17 distinct goals that will make the world a better place for future generations.
Inspiration
My inspiration for this app was when I was in my Global Sciences class at school. We had a conversation about the UN's Sustainable Development Goals and I remember thinking to myself, "These goals are too difficult, it's not possible". But the more I thought about it the more I realized that I was thinking this because it felt like I could not make a difference on my own and I think a lot of other people feel that way as well. Yes, climate change is not going to be solved by one person. This is the reason why I wanted to make this app. To be able to let ordinary people make small impacts every day that will eventually add up and lead us closer to eventually achieving the Sustainable Development Goals. I'm hoping that this app will let people build the bridge for future generations to have a much more sustainable world.
What it does
The app lets you do several things:
Pages:
Home
This page lets you read and learn about all 17 Sustainable Development Goals. In each Goal there is an introduction and some statistics. This is meant to be a brief overview of the topic. Each Goal page also includes a list of 5 tasks that you can add to your Task List that relate to this certain Goal along with links that lead to further information.
TaskList
This page holds all of the tasks that you have yet to complete that you have added through either a Goal Page (info on that above) or a task that you created yourself. This page has the ability to add a task, delete a task and claim the task resulting in some amount of points being added to that user's overall point and task count.
Profile
A simple profile view of the user's username, points, tasks completed and badges earner.
Badges
This is where the user can view their badges. Some badges include:
- 50 Point Badge
- 100 Point Badge etc.
Leaderboard
A page where you can see your ranking compared to other users registered on the app (work in progress)
Overview
There are two things that can hold you back from doing anything in life, accessibility and incentive. In this context, accessibility refers to how easy a task is and incentive refers to the motivation behind a task. Accessiblity was the main reason I wanted to make this project an app. It's easy to pull out your phone on the way to Starbucks than pulling out a full out laptop. So that takes care of accessibility, what about incentive? The incentive portion of the app is fulfilled with the point system, badges, and leaderboard. Having a goal to work up to (badges), competition (leaderboard) and your own personal profile (point system) will make someone work harder to do certain tasks. Achieving these two things will ultimately make people feel more empowered and therefore achieve these goals to make the world a better place.
How I built it
The idea came quickly to me in this hackathon because of my vivid remembrance of my Global Sciences class. I knew I wanted to make it an app so I decided on using SwiftUI and Firebase, specifically Firestore, Firebase Auth, Firebase Storage. The app also follows a MVVM structure. I first worked on the key components of the app such as the Login page, Home page and Task page. After completing the functionality of those pieces, I started working on the Badges and Profile pages and making them work with Firebase. After the functionality was finished I went back and tried to work on the UI and UX for all of my pages including the Leaderboard page. In addition, I also designed a logo on Procreate that is featured in the Login page of the app.
Challenges
If I'm being honest, this was one of the first apps I have ever designed. There was a lot to do to make this app a presentable hack. The communication between SwiftUI and Firebase stumped me for several hours, but I was able to make it work after reading some documentation and Stack Overflow posts. In addition, the debugging was tricky. I had over 30 files that had to communicate with each other and it was a nightmare to figure out what the error was. I even came accross a purple error, a whole new type of rejection :D
Accomplishments
I am extremely proud of myself for being able to make this app functional and presentable in such a short amount of time. This was also my first time ever using Firebase as a backend service. Being able to learn about how the frontend communicates with the backend made me appreciate pieces of technology in a whole new way. I was also able to do research on the 17 Sustainable Development Goals in preparation for this app.
What I learned
I learned a lot from making this app:
- Full stack app development
- Frontend and backend communication
- More SwiftUI abilities
- How to connect Firebase and SwiftUI
- The Model, View, View Model structure of an app
- How to organize my files on Github with the terminal
- Source control within Xcode (my IDE)
- Some Procreate skills
What's next for SDGoals On The Go and Conclusion
I definitely want to expand the app more. First of all, link up Firebase to my Leaderboard page as well as finding more ways to help people make a difference in the world through the 17 Sustainable Development goals or otherwise. To conclude my experience at Starhacks, I am very happy with how my app turned out as well as the pieces of technology I built it with. I genuinely believe that this app can motivate people who feel powerless to make a difference in the world.
Developer
Ann Song
Images Used
Log in or sign up for Devpost to join the conversation.