Inspiration
While thinking of project ideas, we knew that we wanted to create a general purpose application which would benefit us and those around us. Our group came up with various data managment ideas, which would help those in the Boston community. This lead us to thinking about the large Boston demographic - students. Students who live in dorms have so many logistics to cover with their roommates. Therefore, we wanted to create this application to make it easier for everyone.
What it does
Our project has a shared calendar for all of the roommates to notify the others of significant dates. They can be used to mark billing dates or to mark birthdays as two examples. A checklist of items needed for the apartment where roommates can add items to buy on the page for the apartment, and click on the items in the checklist once the items are bought. Lastly, an anonymous ping feature - which would allow individuals to message those who live with them anonymously.For example, if someone has left a mess in the living room, a message regarding the need to clean can be sent anonymously without anyone feeling embarrassed.
How we built it
Our process for this project started with general project ideation on a shared Google Doc. Then, we used a whiteboard to map out what features we wanted to include after agreeing on the idea for an app for roommates as a group.
Once we had brainstormed features, we evaluated them based on priority/most important and also based on difficulty levels. We landed on having a shared calendar, a checklist of things needed for the apartment, and an anonymous ping. We also scrapped ideas, including a method to automatically split billing/rent payments because of the limited time. We discussed as a group deciding what software/programming languages we wanted to use. Initially, we wanted to use Swift as we wanted an application but then landed on React Native as it might be simpler to use for first-time app developers. We coded everything in VSCode. After planning, We then split up into two groups to draw and map out the UI for the application - one for the base page + calendar application and the other for the anonymous ping + to-buy list. We pair-programmed and implemented the features. We referenced online sources and tutorials. Finally, we combined our pages together and submitted our final product.
Challenges we ran into
One of the struggles and challenges we faced during this process was the wifi. Due to these challenges, we had a slow start and this slowed down efficiency. We also struggled to set up our environments. Since all of us had a mix of Mac and Windows laptops and iPhones and Androids, it was hard to set up everything we needed and it didn’t work for all of us. Specifically, we struggled with connecting our code on VSCode and changes showing up on Expo Go. Our two mac users were able to get it working, so we split the pages into two groups to pair-program. Lastly, no one had any experience with app development, so we learned to use React Native or Expo Go before so it was a new experience for all of us.
Accomplishments that we're proud of
The wifi issues were incredibly frustrating and making any progress took a long time because of our minimal experience. Despite these challenges, we persevered and are very proud of the final application we created!
What we learned
On the technical side, we learned front-end development from scratch, implemented React Native, and put together an interactive application with a polished UI. Coming in with no prior experience with front-end frameworks, we grappled with the fundamentals of React.js and front-end development. From coding in React JSX to maintaining version control, we were able to work together as a team and build the entire app from scratch. It was also important to make our app accessible to as many people as possible. Successfully implementing React Native enabled us to cross-compile to both IOS and Android. This will also be incredibly helpful for future projects – enabling us to make broadly accessible software through Native’s “learn once, write anywhere” ideology. The non-tangible skills were equally important. This includes everything from teamwork to creative workarounds for unexpected bugs – all on the route to creating a fully functioning app in 36 hours. Collectively agreeing on what to keep and what to scrap, designing a functional, yet aesthetic layout, and even deciding on the project’s target platform were just a few of the decisions we resolved in the past 36 hours. We learned to work as a team together while figuring out how to split up work. We pair-programmed in groups, but we also often had entire team conversations. We learned the new language and software quickly and efficiently. We went through all of the steps from project ideation/requirements gathering to the planning process and to the implementation. We communicated and reflected on our project and will present our final deliverable. Most importantly, we worked together to overcome challenges and design a minimum viable product (MVP).
What's next for SunShare
Hackathons are always a great place to learn new skills at a breakneck pace – while having fun along the way. One aspect we would have liked to incorporate is a feature that can keep track of money owed between roommates. Ideally, this would also have payment software integrated, letting users settle their balances within our app. We also wished to add more functionality to the calendar. This could include scheduling activities (eg. chores, bonding activities) at certain times, or even tying this in with the do-not-disturb feature. For future projects, it might be useful to use Figma more extensively. This would help us coordinate a common graphical layout and have a more polished user interface. We would also like future projects to include functional server-side architecture. Back-end frameworks are often a crucial part of a well-developed application, and we would aim to add more back-end architecture to SunShare in the future.
Log in or sign up for Devpost to join the conversation.