meditation music player
Creating a new aurora
descrypting aurora sent by friend
more steps prompt to decrypt aurora
stargazing room entry
The near past changed a lot and shifted a lot of things online. Friends found it difficult to meet with each other and many lost their motivation to go out for walks and exercises, or maybe just to take small breaks. People kind of forgot what was it like to live in the moment and have fun together. That's why we came up with the idea and named it Awestruck, redefining the social media platform.
What it does
It's a mobile application, and in a way a whole new form of social media. It brings friends together, and lets them do many amazing things, including watching the stars and taking walks! And everything comes with a reward so yea it induces the sense of worth in using these features.
Majorly, a user can
- Login/Signup to the app,
- Make an amazing profile with username, status, profile picture and a starmap of their birthday,
- Add friends and chat with them with texts and cool stickers [end to end encrypted],
- Send super encrypted texts to friends, and they'll need to walk certain steps to decrypt it down, we've called such texts as "auroras",
- Walk steps to decrypt aurora messages sent by someone else,
- Share your walking progress, meditation status and starmaps on snapchat as custom made stickers.
- Create or join stargazing rooms and watch the same sky in a 3D environment, based on actual scientific positions of the celestial bodies,
- Meditate and calm yourself down using a wide range of copyright free music available in the app, with a soothing theme,
What's a starmap
Starmap is a map of the night sky, based on how it would exactly above a certain location at a given time. It works by using complex scientific calculations and is aesthetically very pleasing. That is exactly what we've integrated in Awestruck. This is one example of a starmap from Noida, India during the nighttime [9:00 pm] on 21st February, 2021.
How we built it
We followed a stepwise procedure and got everything to work. The app has the following major features :-
Authentication and profile management
We used Firebase auth and Firestore for this purpose. We let users enter some basic details and their pfp. Then they could edit the default birthday and obtain the starmap for their birthday, that would show up in their profile, along with cool things like level, determined by the steps walked, and their star sign, determined by their birthday.
We integrated a way to add friends and respond to pending requests using firebase's realtime database. Then we also included Snap's sticker services. For that we made graphql post requests from flutter and stored the top 2 sticker results based on user's search query, and rendered them using Image.network(url) into the screen, and that gets pushed to the database when user taps on it, and shows up on chat! Also, additionally users can send an amazing super encrypted text called aurora. Auroras are sent to friends and friends need to walk certain steps to decrypt the message. This feature is integrated to induce productivity and making people realise the importance of taking breaks, through a small but effective reward.
The pedometer is integrated through a flutter package that works using the accelerometer sensor and counts steps. The steps data is stored into the database according to the day, and gets updated each time a user walks steps. Users can see their weekly history and the total number of steps walked till date. Also, these steps translate to coins, and those coins can be used to decrypt auroras!
To get this working, we searched for the best relaxing audios that are 100% free to use individually and commercially, and put them into different categories and let the user decide what they wanna listen, pretty much like music apps like Spotify and soundcloud, but meditation focused. User can also view their last played music and continue from there. For this, we hosted the music files online in the raw [mp3] form and those are called using a music player package that fetches them from internet and plays them accordingly. The last played music data is managed through a small firestore function!
Challenges we ran into
A big challenge was to find a way to integrate Snapchat's creative kit into flutter as there are no official releases for flutter specifically yet. So we had to make our methods and invoke them from flutter to make it work. Also, we had some features that were really complex for us to implement, like live stargazing and pedometer challenges.
Also since we were a team of only two members, we had to do good time management to complete such big features in the given time, and present them well.
But we eventually found our way through them and made everything working.
Accomplishments that we're proud of
We're very proud that within the given time, we were able to utilize Snapchat's API and other APIs and features to make an app that is, according to us, pleasing to people who like to use amazing social media apps like Snapchat. These features in our app are in working condition for free:-
- Login through Snapchat
- Creating/Joining rooms for stargazing
- Stargazing with friends with in-screen chat feature
- Adding friends and chatting with them
- Sending encrypted texts
What we learned
The whole hackathon was very amazing for us from learning point of view, we learnt to do a lot of things, including:-
- Using SnapKit's SDKs for integrating stickers and sharing media files from app to snapchat directly,
- Making a flask api service and get data in real time,
- Making a fully fledged application in flutter and connecting it to Firebase services like firestore and authentication,
- Making proper designs and mockups,
What's next for "Awestruck"
We would like to let users make their experience more personalized and special, and also we would like to include some in app animations to make everything seem more pleasing. We are gonna focus on the scalability of our app and use best practices so that we can actually make it a final launchable product.