Snyppr
Snyppr is a fullstack web applicaiton for getting on demand hair cuts. If you're the type of person that needs a hair cut, but hates having to schedule, travel, and wait to get a haircut, Snyppr has you covered. Just load up the app, find a barber that's within 20 miles of your location, and then schedule a Snyp.
Table of contents
- Quick start
- What's included
- Bugs, feature requests, and contributing
- Creators
Quick start
-
Fork a copy of the repo and then clone the repo locally to your computer by forking via the Github GUI, and then entering the following command into the Terminal:
$ git clone https://github.com/[your_username_here]/snippr
-
Make sure you have npm installed.
-
Once npm is installed, run the following commands in separate Terminal tabs:
$ npm install
to install the npm dependencies in thepackage.json
file.- If you need seed/dummy data in your database, run
$ npm run seed
.
-
Make sure you have an ElephantSQL account.
-
Set a
PORT
and add your ElephantSQL url asESQL_URL
in your .env file.- If you want to work off a database on your local machine, change the options in the Sequelize constructor as needed, located in
server/models/db.js
.
- If you want to work off a database on your local machine, change the options in the Sequelize constructor as needed, located in
-
Run
$ npm start
and navigate to http://localhost:[YOUR_PORT]/ on your favorite web browser to be directed to the login page.- On the landing page to Snyppr, you'll have the option of either signing up as a Snyppr (a barber) or as a Snypee (a client that's looking for a haircut).
APIs You Will Need
- Make an account and replace the public keys in the code with yours
- Auth0
- Stripe
- Google Maps Geocoding and Places APIs
Deploying
- Deploy to aws and add the following keys to your .env file with these variable names:
AWS_ACCESS_KEY_ID
,AWS_SECRET_ACCESS_KEY
- Or your choice of hosting service and replace the aforementioned variables in the code.
Technologies Used
- ElephantSQL (PostgreSQL)
- Sequelize ORM
- Express
- React
- Node
- Auth0
- GoogleMaps Geocoding and Places API
- Stripe
- Amazon Web Services
- S3 for image storage
Current Snyppr issues
- Here are some bugs we are aware of:
- If Snyppr signup is interrupted before you can make a Stripe account, you can't use that account because of the current routing logic.
- Everytime you login after account creation, the page will hang on the
/newUser
endpoint (profile collection page). You have to refresh to get past it. - Any post to the database does not trigger a rerender and will not be reflected in the UI until you refresh.
- Sockets sent payment request to all connected channels instead of just one channel.
Creators
Mariano Okpalefe, Product Owner https://github.com/Chimpytheape
Kevin Liu, Scrum Master https://github.com/kevinliu6102
Ebrima Jobe https://github.com/enjsmoove
Jaime Mendoza https://github.com/jaimemendozadev