Inspiration
Skating is a diverse and informal sport. Anyone from any where can participate, with little to no barriers on skill-level, practice, enjoyment, and the ever tightly knit and accepting community. Although the previous allows for a sport riddled with an amplitude of discrete style, persona, and character, often times organizing skate sessions and finding a cool place to shred is simply hard! Even though the world may be our playground, we like to try and compete with each other at cool spots that offer unique challenges, and share these challenges with others who want to improve themselves or try something rad. Thus, we aimed to seed the beginnings of a social experience designed for skaters, by skaters.
What it does
Drop In is an application designed to allow skaters to share cool skate spots and progressions in their local area, and discover and share their talents through location based uploads. Skaters can collect the spots they have been to, discover cool spots that seem to be getting a lot of attention, and upload cool images taken at the spot of their choosing. For skaters the world may only be bound by our imagination, but sometimes we love to hang with others and take advantage of the communities discoveries. Thus, the app allows you to discover skate sessions that happened locally and draw inspiration!
How we built it
Drop In is built using a React Native Frontend for iOS deployment. We support our user experience utilizing a Flask server hosted on Heroku. Our data storage needs are supported by MongoDB Atlas. We extensively utilized repository management tools for collaboration and contribution. We began our app with a prototype which evolved into our frontend, and then shifted our focus towards supporting our desired functionality with our server as we saw fit. We aimed to minimize the amount of API calls we needed to conduct to ensure the smoothest experience for our user, and took great consideration of our app's design to ensure we met our demographic (a.k.a us!). An appealing app is truly the key to a good experience.
Challenges we ran into
As we began our slow drudge towards our aspirations of creating a functional prototype, we faced initial unfamiliarity with utilizing React Native to design our frontend as neither of us had extensive experience with React nor JavaScript in general. However, ample reading and a (little) assistance from our most beloved friends at Stack Overflow drove us towards proficiency. When it got to crunch time however, things started getting sloppy and we occasionally missed minor errors that would cause propagative breaking impacts, an example of which is the authentication. Although we assured a functioning response from the backend, we spent a long time deciphering why we would not receive the correct authentication value back from our API. It turns out, it was simply a minor oversight in the method for the request (GET instead of POST)! This helped us realize that although it may be enticing to dive into nitty gritty debugging, it is often a great idea to begin with high level concepts. Observing this allowed us to more efficiently debug minor issues and move closer to our prototype!
Accomplishments that we're proud of
Given that neither of the team members were experienced in JavaScript or React, and had rather distanced themselves from frontend development in general, we are super proud of accepting the challenge face on and learning the fundamentals of JavaScript and React. We also are proud of successfully integrating the Google Maps API to integrate the map and have it conform to the color schematic of our application, given that it was initially an ambiguity if a custom map was possible. Although we were not fully able to implement image storage functionality (partly due to being limited to a free instance of MongoDB Atlas and thereby encountering storage constraints), we were super stoked at holding profiles and storing the global pins off the device thus allowing them to load in whenever the app is initialized. We also love the way the app looks, and hope it is a useful app that helps unite and expand the horizons of the skating community.
What we learned
As we mentioned before, we learned a huge amount of front-end development strategies including the utilization of React and JavaScript. We also gained valuable insight in integration and backend development, and even the efficient usage of storage models! We experimented with a non-relational database which made development a little bit easier, but also showed us the importance of accurate data-modeling techniques to ensure efficient and stable manipulation of data, even though we may have "hacked" together some last minute solutions :)
What's next for Drop In
Everything! We plan to expand our media sharing features beyond their current prototypical stages and push efficiency updates. We also plan to include more social components to our profiles, including the ability to form relations with skaters and gain "expertise" by performing tricks, as well as the ability to hold and display live skate events! But this is just the near future, stay tuned for an application that not only brings the skate community together, but encourages adventures and in person interaction! Hope to see you there!
- Dhruv and Jack from DropIn.
Log in or sign up for Devpost to join the conversation.