💡 Inspiration 💡
We love sharing and writing stories. Though millions of stories are published over social media every day, we have always felt they lacked user interaction. Without this feature, they become bland and unenjoyable, even after a few reads. As small children, we would all love looking through choose your own adventure novels, eagerly flipping through pages, trying our best to succeed within the story. While these novels were a delightful read, they were hard to make as an author and hard to find as a reader. We made a social media app that makes it easy to not only create interactive novels but share those novels with thousands of people across the globe. Adventure Addict creates a connection between the author and the reader that is unparalleled, that is our inspiration.
⚙️ What it does ⚙️
Adventure Addict lets you scroll through posts made by other users on the site. Based on the posts you view and like, Adventure Addict recommends new posts tailored to your interests.
Adventure Addict also lets you create your own projects with its clean and easy-to-use interface. The speed at which you can create your own adventure game is unequaled.
🛠️ How we built it 🛠️
The app was built using Flutter for the UI design and frontend. Our logos and thumbnails were drawn and designed with Canva. For the backend, we used Firebase to store user data and Dart to access that data.
There are two recommendation systems for Adventure Addict, a TF-IDF and a cosine similarity system. Both systems are measured in cosine similarity and have a similarity rate of at least 0.7. The TF-IDF system takes into account the different categories while the cosine similarity system takes in the number of likes to return strongly recommended posts. When the recommendation systems are deployed, the TF-IDF system will find posts with similar categories and of those posts, the cosine similarity system will grab those with the highest number of likes to show the user.
😣 Challenges we ran into 😣
We ran into a lot of challenges with our recommendation system. One major problem was the accuracy of the models. We were getting below 0.3 for our scores, which in this case was unacceptable. Eventually, we changed some hyperparameters and code and got an acceptable score of around 0.7.
With the app, we also had some troubles. Since our app is focused a lot on ease-of-use, we wanted to design the app as user-friendly as possible. It was extremely hard to design the creation of posts to focus on usability, and it ended up taking a large chunk of the developing time.
🎉 Accomplishments that we're proud of 🎉
- Our time management of this app, being able to deploy an entire app with an advanced machine learning system
- The ability of our app to work on almost all major operating systems
- Picking up new technologies on the fly
- Solving a persistent bug without StackOverflow :)
📚 What we learned 📚
In a short 36-hour time frame, we learned how to deploy apps to multiple operating systems, using Flutter. We also practiced our UI designs by creating a simple yet beautiful interface. To better our app, a couple of members also picked up some new technologies, including Flutter, Firebase, and Dart. One of our rookie members also practiced his skills in Git and learned a lot about version control.
In terms of the recommendation system, we also learned a ton. We first learned about the basics of the system and ended up figuring out how to build an application-ready recommendation system. We also learned about cosine similarity and how it measures the similarity between word vectors, irrespective of size. Though we got confused a lot, and even worse, StackOverflow was down, we ended up figuring it out at the end.
⏭️What's next for Adventure Addict ⏭️
Since Adventure Addict is a social media, we ultimately need social interaction, thus we want more users for our app. We also want to be able to use a suitable business plan for our app, which could include personalized ads and more.
In terms of functionality though, we are always open to making our user interface easier for the general population.
🤪 Most Useless Hack (Vol Hacks) 🤪
For our most useless hack, we decided to make a question-answering machine... that raises an error whenever you use a question mark. Even if you get lucky to not use a question mark, it tells you to "Google it."
def QuestionChatBot(): while True: UserInt = input("Ask me any question! ") for i in UserInt: if i == '?': raise Exception("Unauthorized text") print("I dont know the answer, sorry. Go Google it here: Google.com") GoNext = input("Do you want to ask another question? ").lower().strip() if GoNext == "no": break else: print("You get to ask me another question anyways!") raise Exception("You didn't want to ask me any more questions :(")
🌐Best Domain Name🌐
We registered the domain, adventureaddict.tech for 'The Best Domain Name' Challenge. There is currently nothing on it yet