Kenny Tran CS @ UC Santa Barbara

Wave

A Flutter app created for a mobile development course at UCSB.

What is Wave?


Wave is a mobile app developed with the Flutter framework built by Google for Android and iOS development. It was built by me and three other teammates over the course of 10 weeks from September 2023 to December 2023 as part of a mobile development course at UCSB (CS 184).

The premise is simple: Users wishing to find other people to do things with can express their intent to do something on a certain day at a certain time, and other users can express their interest in joining them.

Over the course of the quarter, we worked with Agile methodologies to get a prototype up and running by Week 5, and polished the app over the last 5 weeks.

My Contributions

Utilizing Flutter’s built-in classes and a third-party library to control the swiping animations, I developed these expandable, flipping, and slidable cards.

On the backend, I was also responsible for the setup of the Firebase services that we used for user and event databases and user authentication. For more information, I have provided an excerpt from our design guide regarding the overview of the system architecture.

Wave Design Documentation

System Architecture Overview


When a user registers an account, their user details are stored in the Firestore Database and their account credentials are handled by Firebase Authentication.

The user is able to create, edit, and delete posts. After creating a post, the post appears in the View > Events tab and is available to be viewed by all users. A post created by a user can only be deleted by the user and those with admin privileges. Once a post is created, it is stored in the Firestore Database. If an image is uploaded by the user, it is stored in the Firestore Storage.

When the user navigates to the View Events tab, they can choose to accept an event. If they do so, it is added to the list of events they are attending on the Home Page under User Info. This is stored in the Firestore Database.

placeholder