Busy Buddy was born out of a need for remote workers and teams to keep on task and on track with their goals despite the hurdles distance may provide.
Busy Buddy lets you create teams and create tasks to be assigned to users. When a task is due, we use the Courier API to remind you about your task.
We built the Busy Buddy system using Flutter and Dart for the mobile apps and Laravel/Lumen for the backend web processing. We chose Flutter and Dart for the speed and efficiency given the time constraints. The write once run anywhere for IOS and Android was a huge time saver and promoted good code reuse. Flutter also has many popular libraries and tooling to prototype quickly and get the app off the ground. Flutter also uses the nice-looking Material UI from Google out of the box, so modern UI elements like buttons and widgets are quickly available for rapid development.
Laravel is used for its organization and available tooling. With Laravel, we can build out an API that allows us to create, delete, update, view, and interact with the tasks. Laravel also provided us a wonderful ORM complete with migrations for managing our database. Building a relational database that was repeatable on any system and could be checked into version control ensured that our team was in sync with the latest changes to our data model and everyone was on the same page. Laravel also provided a clean way to centralize the data flowing through our phone apps and handle dispatching notifications centrally. This framework was also chosen because of its ability for future growth. Although we started with a very minimal API, basic notification dispatching, and simple queueing for the notifications. Laravel can continue to serve as our API backend and a web application for a front-end to reach audiences agnostic of the mobile platform in the future.
Challenges we ran into
We were a little TOO excited to work with all the APIs that we wanted to. Our goal was the ditch Laravels' built-in authentication scaffolding for Auth0's modern, secure Authentication as a service and to use Courier to send on as many channels as we could physically program in one night. However, as the day and night progressed, we found difficulty getting Auth0 implemented and setting up all the channels we wanted to on Courier, primarily because of the time constraints. Due to the learning curve, time constraints, and other issues that inevitably pop up during development, some parts of the API are missing, only email works on Courier right now, and Auth0's authentication for native mobile apps remains untested despite it being implemented on both the Laravel backend and on the Flutter front-end.
Accomplishments that we're proud of
We build the majority of a front-end AND backend in a day. We are very proud of what we have complete on the notifications, API, mobile apps, and backend. We believe that it would not take anything more than a few more days to have an excellent platform ready for users to utilize in their day-to-day lives.
We also had the privilege of having a graphic designer on board our team that built a friendly interface in Figma for us to implement. We, unfortunately, didn't get the chance to implement all of her interfaces, but some of the designs she created are loosely available in the form of our task list and task details. You can see more of her design in the attachment we have submitted.
What we learned
Before today, we all had limited experience with some of the technologies in play. Though we were familiar with their power, Flutter and Dart had not been used by any of us extensively before today. We were new to the frameworks, and to have built something like this was a great dive into that world.
Notifications and Authentication as a Service were again concepts we were familiar with but lacked experience using them. Getting to play with these technologies was a hands-on learning experience that I'm not sure any of us honestly would have ever bothered to try were it not for ShellHacks. Now that we have, I'm glad to say that it's another tool in our toolbelts that we will continue to learn.
What's next for BusyBuddy
Busy Buddy has pretty fun to build. The project is on GitHub open source, and we hope to, maybe in the following days, finish off what we couldn't quite finish here so that we have a 1.0.0 that anyone can expand on.

Log in or sign up for Devpost to join the conversation.