Inspiration
edUcate is inspired by the current events that are taking place around the world and the current lack of awareness people tend to have of those events. We wanted to create something to help bridge the knowledge gap among the public and provides an avenue for change. Our specifically targets younger generations that either aren’t getting exposed to information or are getting it solely from social media platforms that can many times present biased information in an echo chamber. Our goal is to create a more educated and informed public while limiting the effects of media bias.
What it does
edUcate has 5 main features including a main view, 4U view, a 4All view, 4Us view, and login/signup. The application is able to keep you logged in when you exit the app and saves your information. Through the main view, edUcate provides major must-know news events with multiple perspectives of each event. The 4U view takes inputs from the user to filter topics and provide relevant and up to date articles. The feature is implemented to handle all errors that may occur with the API, such as it not loading, the picture not loading and there being no picture. Additionally, it can handle all sizes of pictures, titles, and descriptions that may come with the API. The 4Us view is a discussion board that is designed to cover any knowledge gaps that could come from bias within the media and expose people to other ideas while providing a forum for interaction over current affairs. The 4All view is a map that allows users to locate places to find more information such as libraries and locate relevant events to their interests such as protests. Users can search within the map for types of locations and it will pin locations near them with information about the locations provided.
How we built it
First we developed a design and a goal for the application. We thought through each feature and drew a rough sketch of each page with a full Figma created for every page. Following this we created a repository in GitHub, which each team member cloned. We decided which features we were each going to work on and began coding. For the main feature of the application, we used a news api and integrated it into our project. For the login, the backend was created using Firebase. For the map feature, we used MapKit. After creating basic functionality, we modified the features to follow a consistent design scheme as outlined by our initial Figma. Then we worked on code documentation and fixing errors.
Challenges we ran into
With the newsAPI, we struggled with formatting the images we pulled. There were so many different sizes so we had to continuously test and rewrite the code for the images. When creating the map, we struggled with integrating the search functionality and allowing it to take user search input and sending it between files to the map view. When we were designing the login, we were challenged with connecting firebase to XCode.
Accomplishments that we're proud of
We successfully merged our individual projects in a timely manner, accomplishing a lot in a day. We take pride in our well-functioning API implementation, continuously updating with live news. In addition we were able to maintain consistent design practices based on our Figma to create a cohesive final product. Individually each feature of the app has the desired functionality that we defined when outlining our MVP. We met MVP and were able to work past it to achieve post-MVP with a final product we are very proud of.
What we learned
We honed our collaborative skills on GitHub, adeptly resolving merge conflicts. Moreover, we mastered SwiftUI and harnessed Swift effectively. We also gained expertise in MapKit and streamlined API integration tailored to our project requirements.
What's next for edUcate
Post-hackathon, our goal is to enhance user experience by integrating a more diverse range of APIs, expanding our content sources. We plan to develop an interactive homepage that filters news from different outlets, presenting contrasting perspectives on the same topic. Additionally, we aim to create a dynamic live discussion board, fostering meaningful user interactions.
Log in or sign up for Devpost to join the conversation.