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
- Authentication: Create your own profile.
- User Posting: Create listings for your sales and events.
- Search Integration: Find sales near you with filtering options.
- Google Maps Integration: View sales locations on an interactive map.
Technology Used
This app was built using the following technologies:
- Android Studio
- React Native
- Expo
- Firebase
- Google Maps API
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.
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.
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.
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.
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.
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
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