Inspiration

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.

About

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.

Tech

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 and 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

  • vercel
  • redux

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?!

Built With

Share this project:

Updates