Sophomore year, Eli and Josh explored a web app focused on mapping locations of vending machines around the world. Popular across campus and in large defense offices where employees can walk up to a mile to find a vending machine. However, the app saw limited use outside these scenarios. The two have since wanted to build a more generalized social mapping application - and this weekend, they did! Mappit, Reddit for Maps, was created to help communities of all sorts collaborate on maps and communicate locations easily and conveniently.
What it does
Mappit provides a web and mobile interface for viewing "topographies" (communities of pins), creating new topographies, and adding pins to existing topographies. These topographies are used by communities or events to organize, direct, and communicate current and local points of interest.
How we built it
Josh and Dalton built the mobile app in React Native. While Josh is proficient in React's paradigm, neither of the two were very familiar with React Native. React Native is a framework for building performant, native mobile applications by leveraging existing web technologies in a React paradigm focusing on declarative, functional user interfaces.
The team initially outlined features necessary to make a minimum viable product before moving on to later bonus features. This allowed the team to stay mostly in sync throughout development, while still leaving time to polish portions of the user experience.
Challenges we ran into
Collaboration was difficult for Josh and Dalton, due to their shared unfamiliarity with React Native. The two frequently wound up repeating work the other had done due to an unclear direction at first, but as the application developed, the pair found ways to focus on separate efforts more frequently.
Eli ran into a number of challenges integrating ReactiveX, as it had been some time since he last used the library. Additionally, the two teams had to explore how to share code in an API form between the two projects, but eventually decided to split down the middle as bridging Reactive with Declarative code was not always straightforward.
Accomplishments that we're proud of
We've finally created an app we've been wanting for years!
Eli was able to reuse previous experience with ReactiveX with relative ease, and was able to integrate Firebase's socketed database for instant updates!
Josh was able to develop his passion for React into an ability to build attractive, cloud-capable mobile apps with React Native!
Dalton was able to learn and contribute in an entirely new paradigm!
What we learned
- Collaboration in an unknown environment requires more research and careful planning and allocation of tasks, more so than we previously thought
- Hackathons are a great way to learn new tools and review past ones
What's next for Mappit
- Create / update comments on mobile
- Update comments on web
- Time-based pins that expire after some time (I.e., pins only visible for #N hours)