Inspiration
When COVID-19 impacted our lives almost everyone resorted to learning in a cyber environment whether that’s having a hybrid schedule or going full cyber. As we transitioned to learning online, I realized that communication between students and teachers became slow and hindered the learning experience. For many schools, students and teachers usually contact each other through emails. However, emails tend to be slow and are easily missed as more and more student emails overflow a teacher’s inbox. My friends couldn’t get their work done because they had no one to ask for help. And when they did get help, it was hard for the teachers to answer follow-up questions. Of course, there are other chatting platforms in the App Store. However, people are overwhelmed by features that they may never use and become afraid to use them. Moreover, these apps don’t provide great flexibility for students to chat with their peers. Students have to switch between different chatting apps for their group projects or clubs and these chats can be easily lost in their list of contacts by messages from family members or friends. I wanted to fix this and put everyone on the same page by creating a simple, easy to use chatting app made solely for school.
What it does
MyClass has everything a messaging app needs from images, audio messages, message replies for easy question-to-answer chatting. Setting up is easy; all you need is a code to start chatting. Teachers have to create a class group-chat and provide the class code for their students to join. Classroom chatting isn’t the only feature in MyClass. Direct messages and group chatting provide a way for students to directly contact their peers and teacher. They can swipe on a user in the class settings screen to private message them. All of these features provide a wide range of flexibility for chatting; both students and teachers are able to chat however they want.
How we built it
I created this app using a Javascript and TypeScript framework called React Native. I used Expo Client to run my app on my emulator and my real phone. For my backend, I used AWS Amplify and its User Pool DynamoDB to store user accounts for login and sign-up. I used its graphQL Appsync API to store, fetch, mutate, and update user data like their name, what classes they're in, and more. Also, I used AWS Storage S3 to store image and audio data. In my code, I created components like list items and buttons for data mutations and I created screens to create the frontend. Each screen usually has two parts in the file’s code: half of it fetches data from my backend, and the other half displays this data to create the frontend of my app.
Challenges we ran into
One of the most challenging aspects of creating the app was setting up the backend structure. It had the most mistakes because there were plenty of outcomes that we did not expect to happen. Sometimes the logic did not work out and we had to restart the backend entirely. Moreover, the frontend was one of the most time consuming parts of the app. There were several edge cases where the styling was not working properly and hurt the user experience. Overall, we were able to overcome these challenges!
Accomplishments that we're proud of
I'm proud that I managed to get the project fully functioning as intended in the end!
What we learned
Over the course of the hackathon, I learned a lot about CSS and styling after hours spent on tutorials on how to achieve certain stylings. I also learned . Most importantly, I learned how to work under pressure and create a functioning app by the end of a hackathon.
What's next for MyClass
In the future, I hope to expand on the features of MyClass. More specifically, I hope to include a public, open-forum chatting feature for students to ask others for advice on academic matters such as what classes to take or what extracurricular activities they should participate in.
Built With
- aws-amplify
- aws-appsync
- expo-cli
- javascript
- react-native

Log in or sign up for Devpost to join the conversation.