-
Our customized Google Map style, Starry Night. From afar, the world is a sea of stars.
-
A screenshot of our Android app at my location. From up close, the world is a sea of stars.
-
Landing Home Screen
-
Login Screen
-
Home view of the map, friends, and what they are doing
-
Alignment event screen that shows the details of how and why you want to meet with friends
-
Friends List
-
Locations List
-
Design Assets
Inspiration
We're friendly people, and each of our friend groups are fairly large. Our team makes up about a fifth of our shared friend group. It's pretty difficult to create solid plans together due to scheduling differences that come from large groups. Activities largely spawn just from encountering people as we go about our days, or by messaging a million group chats to let people know where we'll be for the next few hours. But, wouldn't it be nice to know where they were going to be? Or to know that a few of us are pretty close together, with some time to kill? What about being notified of the various pop-up activities on campus, like resume reviews, companies, or even just doughnuts in the GCCIS Atrium? This is what launched our idea into space.
But it didn't start there. We actually started with the idea of something closer to a submarine locator. Little green blips you could be notified of if you were close enough. Something unobtrusive, simple but beautiful, that encourages more in-person community and interaction than we were able to get organically. We liked the utility of community boards, but wanted something faster and more simplified than Campus Groups or Career Connect to let us know what exactly is going on around us. This is how Proxima was born.
What it does
Proxima, named for the closest star outside our solar system, allows you to create a ping to notify your community and friends (separately, we're not that friendly) about where you are, what you're doing, and how long you'll be doing it. Once that "event" is created, anyone within a radius of that event (determined in part by the organizer and in part by your settings) gets a notification with the details. In the app, you'll be able to see your friends locations and how long it would take to get to them, manage your friends list and preferences, see any events going on in your wider area, and look for specific types of events and people.
How we built it
We split the project into four, our UI maven Olivia taking on the design and prototyping of the project. She used Figma to catalog inspiration, development planning and progress, the framework of the app and the mockups for each screen and each part of the UI. Lily took on building the app's front end in Kotlin, getting the maps and basic navigation working along with starting the implementation of Olivia's designs. Klaire took on the backend of the app, creating the API it'll use to communicate with the database she created to hold the user's and event's information using GoLang and JSON as the wire format. She also hosted the database in a Docker container in a Kubernetes cluster. Dani created the website for the app, giving a more in depth look at the app than something like the appstore would, pointing users to download the app, and implementing web-side account creation.
Challenges we ran into
Frontend - Lily
I've never done any kind of app building before. I've worked on other people's at co-ops but they were still in a language I was comfortable with. This was my first time even hearing of Kotlin, and I have to say I'd be content if it was my last. Everything about it seemed more simple to accomplish in other languages, and being tossed into an unfamiliar structure on this made it really difficult. It was about fourteen hours into the hackathon that I realized I had structured the app completely wrong, and wouldn't be able to complete everything we wanted to do without starting over completely. I didn't let it stop me though. I decided to hard pivot into implementation of the design into the app. Since it took so long to change and fix even little things, I knew I could fill the rest of my time making progress instead of fretting over what I knew I couldn't fix in time. I was able to get a decent chunk of it completed, and though it's very much still in developer mode, I've been able to create an MVP that demonstrates that given more time, our app would be able to do everything we wanted it to.
Backend - Klaire
Protocol buffers are a data interchange format that allows you to define how messages look in a protobuff file, and then compile code that's able to interact with it in multiple different languages. Sounds perfect for a hackathon right? What could go wrong! Well. Turns out with great capability comes with great complexity. While something smaller might be able to handle it well, our dreams were much bigger. With the location API and Android app, it was just too much to handle in 24 hours. So while I got to learn a lot about how they worked (yay!) I realized about halfway through that it wouldn't be able to work with the group by the end of the project. Instead I switched to a more RESTful API framework using the GoLang framework, JSON object format. This allowed me to take advantage of the simpler, more traditional implementation for the sake of speed, but I was also able to learn new ways to use them. I had never used this framework before and am still quite pleased with how it turned out!
Website - Dani
Design - Olivia
I wanted to take a very professional approach to this. Going through the process of gathering requirements, outlining the experience the user will have from beginning to end to ensure a smooth development. As we went, I realized we were building many features, and were very quickly moving out of scope with our limited time frame. I needed to use my advanced knowledge of Figma to prototype the ideal end product. This would be no MVP, but a Perfect World Product, and would be thrown to the programmers as fuel to direct them toward the product we wanted to make. I was able to experiment and learn more about some of the more unique parts of Figma, like utilizing some of their more math-focused functions that I normally wouldn't be able to touch. Things like animations, and dipping my fingies into the 3-D modeling. Keeping the animations subtle but noticeable, and toeing that line proved difficult, but enjoyable. I was able to learn new techniques my courses and co-ops hadn't provided me with the opportunity to learn, so I seized this one, and certainly came out better for it.
Accomplishments that we're proud of
Frontend - Lily
I've never done any of this! But now I have an app on my phone that I made!!!
Backend - Klaire
I'm happy I was able to get an API up, running, and publicly hosted under stress, in a new language, in under four hours. That's definitely something to be proud of.
Design - Olivia
Of course, I'm proud of the design and its intricacy, but more than that, it's a testament to my skill under pressure and my dedication to personal improvement.
Website- Dani
What we learned
Frontend - Lily
I learned that when you're making an Android app, you should really keep the Activities minimal. They're basically the app itself. Instead, you should create a Fragment, which are more modular and can be hot-swapped for other pieces, keeping your app running smoothly and nicely. I learned I really enjoy JavaScript and TypeScript in comparison to app languages, so now I can also refine the careers I'm interested in pursuing.
Backend - Klaire
When you pick something you want to learn for a hackathon, it's important to keep your expectations within scope. Think about your previous pace of work, and if at any point it looks like you're rearranging deck chairs on the Titanic, it might just be better to find a lifeboat. On a more positive note, I learned GoLang, which I didn't have experience in before. A new framework too, I feel really accomplished with what I've managed to get done. A valuable note, sometimes a more traditional and widely used framework is more popular because it's easier to use.
Design - Olivia
I truly learned just how advanced Figma can be, and that sometimes putting more deckchairs on the Titanic is a valuable pursuit. If you're already doomed, might as well die doing what you love, right?
Website- Dani
What's next for Proxima
The team in interested in further pursuing our work on Proxima, if not to release for the world, because it'd be nice to use amongst ourselves. At the very least, Klaire can text one less group chat when she decides to camp out at Java's for three hours. First up would be a massive overhaul of the frontend. Get it back to where it is now but with a stronger foundation, and hook it up to the backend, make sure we're talking correctly. Then we can move on to getting the Android app looking like the design doc, along with the website. Polish it up, push it harder to be a pitch document. Following that would be trying to do it over again for Apple, so learning Swift! And maybe someday, perhaps on our next mission to Proxima Centauri, we'll get it to work with protocol buffers.
Built With
- accessibility-checkers
- android-studio
- behance
- command-line
- css3
- docker
- figma
- geodist-go-package
- go-gin-web-framework
- golang
- google-cloud-services
- google-maps
- html5
- java
- javascript
- json
- kotlin
- kubernetes
- podman
- spline
- vim
- w3c-css-validator
- xml
Log in or sign up for Devpost to join the conversation.