Inspiration

As COVID-19 is changing our lives drastically, one of the most obvious changes that we see in our daily lives is a tremendous increase in virtual meetings (and hackathons!). While existing meeting scheduler apps provide functionality of creating a potential meeting where each participant can fill in their availability, the meetings are often scheduled during inconvenient periods. The biggest problem is that each participant is often encouraged to fill in their availabilities as much as possible, even if it is not a preferable time. In addition, most of existing meeting apps are web-apps such as LettuceMeet, ScheduleOne, whenIsGood, and many more. For some web-apps, the user interface is extremely hard to navigate in mobile setting and there has not been many android meeting scheduler apps in the market.

What it does

The _ JacketsMeetJackets _ app is an android based meeting scheduler app where you can fill in your available and preferred time slots for a given event. Once the meeting organizer creates an event by inputting basic information about the meeting, a Meeting ID is generated. Each participant can use the Meeting ID and sign up for the time slots. After each participant submits their available and preferred time slots, the app utilizes an algorithm to recommend most preferable meeting times for everyone.

How I built it

Our team used Android Studio in Kotlin to develop an android app. After basic research about the Android Studio platform and Kotlin language, the team was divided into 2 sub-teams, where each focused on developing either the "Create Event" or the "Add to and existing Event" feature. Github repository was utilized to collaborate on codes.

Challenges I ran into

All 4 teammates were new to Android developing and the initial learning curve was tough until a mentor popped in and introduced about basic functionalities of Android Studio. A lot of time was spent on researching about features of Android Studio such as SharedPreferences or referencing variables from other activities. The team designated a person to research in depth about certain features and discussed together whether we wanted to implement it to the project and how. While one teammate focused on researching about unfamiliar technology, another teammate focused on implementing the functionalities in less tech-savvy way. Whether it was hard-coding in multiple buttons or passing dozens of booleans to the next activity, the team tried to balance between ideal technical solution and less elegant, but functioning program. Another example of this was using Github. Most of the team was also new to using Github and had many issues such as merge conflicts or not being able to push/pull codes. We got around this by creating a .zip file of the entire project folder and sharing it with google drive after few hours of struggle.

Accomplishments that I'm proud of

In the beginning of hackathon, we were all satisfied with just being able to run a virtual emulator in Android Studio. At this point, we have a functioning app with fantastic UI that can navigate through screens, prompt user response, and pass down data to next activities. This QuackHacks was an amazing learning opportunity for all of us and we never have imagined that we would be able to finish developing an app that can actually run in our phones. To be honest, I was very skeptical about choosing to go for an android app in the beginning since none of us had any experience with it. Looking it back, I think it was our best design choice that we made.

What I learned

We learned about Android studio and its underlying features such as Kotlin language and XML files consisting an activity. From a paper sketch, we were able to create a layout of a screen in xml file and implement its functionalities in Kotlin files. I did not even know that a language called Kotlin existed before this hackathon and now we learned to create an user-interactive interface through android.

Another skill we learned is the structure of hackathon and all other developments. From coming up with ideas to implementing and testing for issues, we were able to go through the development cycle and understand how it works. It will prepare us moving into other hackathons and CS career in future.

What's next for JacketsMeetJackets

We would like to implement SQL database that uses meeting IDs as the primary key and store all meeting information in the database, so that any users can access and edit information. Other tools such as Google Firebase or MongoDB can also be researched. We have an algorithm to recommend meeting times based on the user input, but due to time constraints, we were not able to implement it to the app. Once the database component is implemented, the algorithm can also be used to output recommended time slots based on real-time data.

Built With

Share this project:

Updates