With so many responsibilities keeping people at home in light of COVID, and many shelter-in-place orders, more and more people are finding it difficult to run even every day errands, like going to the store. Delivery services can get pricey and aren't available everywhere.
What it does
ShopTogether helps friends, families, and neighbors connect and share when they are running errands to the store so they can pick up goods for them along the way! Save on fees, reduce group risk, and stay connected.
As new parents, my significant other and I are very sensitive about the trips we take outside. Nearby family and friends have been great with helping us get the errands done that we need. This app idea came from the idea of making that type of coordination easier for everyone.
Our app is deployed on Vercel and heavily uses the built-in serverless function capabilities. Our database is hosted in MongoDB Atlas. The application is written in Ionic Framework with React, and uses React-Redux-Tools to manage the React Store. Finally, authentication is provided by Auth0!
How I built it
Hackathon Submission Release: https://github.com/ryantenorio/co-shop/tree/v0.1-alpha
We started with one person getting the most raw form of the page flow written in Ionic. This helped establish some baseline coding standards and sample code to work from for team members less familiar with the framework. Then, a group of us focused on cleaning up the Ionic app while two of us handled the data store, backend API, and authentication integration. Finally we brought it all together in a flurry of live tests and silly commits.
This app is designed to be ran in vercel. You will need to have these ENV variables set up and then fix the db urls in the go files found in the
/api directory. That should be the only place in this release where code changes are needed.
DB_USERNAME DB_PASSWORD REACT_APP_AUTH0_DOMAIN REACT_APP_AUTH0_CLIENT_ID REACT_APP_AUTH0_AUDIENCE
Because we use Go, make sure you have the latest Go version installed.
It should be smooth sailing from there. In your vercel enabled environment, hit that
npm install followed by that
vercel to link it up into your own vercel account and you are off to the races! Mileage may vary with
ionic serve because of the serverless functions.
vercel dev are great because they let me test my serverless functions locally with my app!
Challenges I ran into
- react is hard!
- redux is harder!
- scoping is always a challenge
Accomplishments that I'm proud of
- we got persistence working!
- barebones but already useful application
What I learned
What's next for ShopTogether
- Take advantage of our Ionic choice and create native mobile apps
- better social integration so you can share with existing contacts and not just via email
- start your trip and send live notifications to your co-shoppers when you get their item or are unable to find it
- add more optional fields for items
- integration with shops and payment providers?!