Inspiration

What inspired us to create this app is the lack of interaction we witnessed between students through virtual classes. Students join the call, the teacher teaches and gives instructions, and then students leave the call. Especially during the school year, a time for students to make friends and work together on their academic and future pursuits, Covid-19 has left a huge impact on our lives. Even after schools reopened, it was difficult for many students to get used to the faster-pace of in-person classes and interact with their peers after a year online. Because of this need from our fellow students in school for more interaction, we decided to create an app that would help students connect with each other even when they can’t see or get to know each other in person. Our app makes students feel comfortable seeking help from others and reduces the awkwardness of asking students you are unfamiliar with online or in class for help, as everyone using Studdy is seeking people to study with.

What it does

With our app, students will be able to easily interact with their peers and other students globally and make learning during COVID 19 a better experience. Even though the initial inspiration for the app was based on COVID, we feel that Studdy is a useful tool for students during all times because it helps them find and interact with other students that they would not have met without the app. Within the app, students are able to set up a profile, select the subjects they are interested in, and chat with people with the same interests.

How we built it

We used Visual Studio as our IDE for this project. We created the basic UI/color scheme of our app using Notability. We used Firebase to store user information such as email, password, name, date of birth, grade, subject, and extra information. We also used Firebase to store the chat history for our chat functionality (text messages and images). We used Flutter and Dart to code our app UI and functionality, along with Xcode to test our app.

Challenges we ran into

One technical difficulty we faced was Flutter not initializing correctly. We had to consult online sources such as Stack Overflow to download different packages and troubleshoot. Another difficulty we had was connecting our app to Firebase. We had to watch YouTube videos and research in order to figure out the logistics of it, such as where to import the GoogleService-Info.plist file in our app directory. We had difficulties in choosing the best color scheme and font, and we finally chose lavender as our main color because it's a very inviting color that will promote good feelings and positivity on the app. Another technical issue we faced was allowing our app to access the device's location in order to effectively use the Geolocator package as the location was returning null. We spent hours trying to resolve this issue and ended up figuring out that we needed to manually add a NSLocationWhenInUseUsageDescription in the Info.plist life.

We also faced coding difficulties in retrieving data from the Firebase storage because our syntax was incorrect, and we had to consult Stack Overflow many times to help resolve issues. Another coding difficulty we had was importing custom fonts into the app, which require a lot of research and troubleshooting. We realized the Dart is very picky about spacing, so when adding our new fonts to the pubspec.yaml file, we had to maintain proper spacing and indentation. We faced multiple coding difficulties while creating the algorithm for our app to move from one state to another, and we had to do a lot of trial and error to make it behave the way we want to. Using Visual Studio Code was highly beneficial to us because we were able to debug our code and see exactly what lines were causing issues or returning null. Additionally it allowed us to download Flutter and Dart extensions to guide us while coding helped us maintain proper syntax.

Accomplishments that we're proud of

Since both of us are relatively new to Flutter and Dart, we are very proud that we were able to create an app from start to finish in 48 hours. We're also proud of our the way we persisted through multiple errors and issues to bring our vision of the app to life and create something that can benefit others.

What we learned

Through this process we learned a lot of new things, such as Firebase and how to use streams, and built on our previous knowledge of Flutter/Dart. We also learned a lot about Git and version control, which we previously didn’t understand the value of. These skills will be transferable in later years as we work on bigger and more complex projects. Another skill that we developed was debugging our code. Overall, we learned a ton about app development in general,

What's next for Studdy: Find Your Study Buddy

We believe that Studdy is adaptable to a lot of different uses. If we were to make Studdy 2.0, we would add many more features to our app so students can easily communicate with others through the single app. We could add a video chat feature in addition to the chat feature so students can video call. Additionally, we can further divide the options for choosing subjects into more specific categories, such as Anatomy and Physiology, Organic Chemistry, Basic Calculus, etc as well as an option to add your own subject if it’s not already present. This way students would not have to search through multiple users to find one studying the similar subtopic. As always, the internet is a dangerous place, and to make Studdy a safer experience for students, we could implement features such as being able to block users, filter out inappropriate words, and verify students’ identities. Additionally, we could add an option to filter by school/location, so that students who plan to meet up in person can do so. We could also create a feature for professionals such as teachers or tutors to join, so that students seeking help from well knowledged people instead of their peers can do so.

Share this project:

Updates