Senior Design Project

By Julio Aguero

About the App

Quickstop is an android application that allows users to scroll through to uncover the best local deals, events, and pop-up sales right in your neighborhood. Whether that be garage sales, bake sales, food trucks, and other events in the coomunity. Users are allowed to make their own posts for others to see.

Features

Technology Used

This app was built using the following technologies:

Weekly Reports

Report 1
An android app that lets users post sales including garage sales, yard sales, bake sales, or other community-based events similar to those. Users are given notifications when nearby events are going on and they have their preferences match. Users who post these events can set tags specific to what they are selling, descriptions, and images.
9 / 8 / 24
Report 2
This Week I added a new tool to use for my app, Expo. Expo has tools that allow for easier routing between the different parts of the app, similar to NextJS, which is a JavaScript framework I am familiar with. For the most part, I spent my time looking at documentation and tutorials in order to figure out the best way to lay out an application. So far, I have made only a navigation bar that navigates between empty home, map, and profile tabs. I've also looked into Firebase to implement authorization, but failed to come up with a result this week. Hopefully, I can implement a sign-in and sign-up feature for the profile section in the following week.
Profile Screen Profile Screen Profile Screen
9 / 16 / 24
Report 3
This week I managed to get authentication working with Firebase, as I was able to have a user create an account using email and a password, which are then uploaded to the Firebase database. A user with an account created can log back into their account as well with a sign-in button. I am unable to sign out at the moment, which means that if I want to try another account, I have to rebuild the app. I plan on fixing this in the following week and improving upon the profile tab.
Profile Screen Profile Screen
9 / 23 / 24
Report 4
This week, I used Google's API services in order to display a visual map on the map tab and have an autocomplete form that automatically fills in valid addresses. These addresses are fed to the map and the location is displayed as a pin on the map. I plan on completing the create tab so that it stores the information needed for an event such as pictures, address, description, and tags into Firebase. I struggled for a bit to get the API and its keys working as most documentation and guides were for websites.
Profile Screen Profile Screen
9 / 29 / 24
Report 5
For this week I attempted to use Firebase in order to store events that are user-created so that they could be seen later by other users in the area. Unfortunately, I was unable to create a connection as it seems some of the Google tools I am using are conflicting with Firestore, which is the Firebase database I am trying to use. I will try to get something working in the next couple of days; unfortunately, my app does not work as intended right now.
10 / 7 / 24
Report 6
This week, I managed to implement Firebase Firestore, a NoSQL database, into my application. I have a create tab that allows a user to input an address, description, and tags to create an event. These events are then stored in the database. As of now, all uploaded events are displayed on the home menu and all events have a marker that is displayed on the maps tab. You can click on the markers to get directions. I want to look into displaying information when a marker is clicked on the map. I also want to make it so events can include pictures, but I was having some trouble with that. Smaller things include wanting to have a delete function or have all events delete after 24 hours, and having all fields be filled out before being able to create an event.
Profile Screen Profile Screen Profile Screen
10 / 13 / 24
Report 7
For this week, I managed to get posts removed by their creators, ensuring that only they can delete their own posts, by having a user ID attached to each post. I also managed to display information on the markers displayed on the map area; currently, they display both the address and description given by the creator of the event. At the current time, I am still learning about how to implement a push notification system that will allow users to receive notifications if an event pops up near them, which is taking more work than I expected. For a while, I had an issue that caused my map to not display at all, which took a while to fix.
Profile Screen Profile Screen
10 / 21 / 24
Report 8
This week for my project, I wanted to implement a push notification system that would alert users when others have posted an event around them. Trying to accomplish this has been the most difficult part of the project so far. I have attempted to use both Expo-notifications and Firebase together to produce a system that can work but have run into a lot of difficulty trying to get push notifications to even function. Unfortunately, I am having trouble connecting my project ID to the Expo system, which means that I cannot gain access to “tokens” required to send notifications. It seems that I am running from one problem to another, as I need to use a physical device to even have the ability to use push notifications, and the way I’ve configured my app has caused some extra difficulty in using the same tools as other tutorials/users have, which makes finding information harder.
10 / 30 / 24
Report 9
This week, I changed my mind on how I want users to be notified about events near them. Instead of push notifications, an alert is sent out to the app if an event is posted within the user's selected distance threshold. So if a user has the app open and selects their radius to 5 miles, anything uploaded within their range will be given a notification. I also made some changes to my create event and profile sections, cleaning them up and setting up my profile section to have settings added later. One thing I have also figured out how to do this week is have an APK of my app downloaded onto my physical device through Expo application services, allowing me to use my app wherever I want.
11 / 6 / 24
Report 10
This week for my project, I implemented pictures that users can upload and will be shared on the main screen. I used Expo Image Picker and Firebase Storage in order to get things working. I also added some minor UI changes such as adding icons to the tabs. I also changed the home screen so newer events are located towards the top of the screen, thus the first thing users see. I still want to do more to change the way the app looks, make it look more “professional”. I also want to add search by tags, so users can filter out results that interest them.
11 / 13 / 24

Screenshots

Login Screen
Home Screen Zoom Screen Map Screen Google Screen Create Screen Profile Screen

Videos

Early demonstration of event creation in my app

Updated demonstration of the event creation with images added

Demonstration of search function that uses tags to filter through posts