Valid Coffee is a web application designed to stream line user reviews experiences. It uses Yelp business data for coffee shops in Albuquerque, while providing a unique interface for leaving reviews.
It's a Docker-based full stack web application utilizing Postgresql, Express, Next, and React.
-
Create
project.env
in the root directory:POSTGRES_DB=coffee POSTGRES_USER=username POSTGRES_HOST=sql # generate a unique diceware password: https://secure.research.vt.edu/diceware/#eff POSTGRES_PASSWORD= REDIS_HOST=redis REDIS_PORT=6379 SESSION_SECRET=WHATeverIwant # mailgun credentials from: https://www.mailgun.com MAILGUN_DOMAIN= MAILGUN_API_KEY= # get a Yelp Fusion API key: https://fusion.yelp.com YELP_API_KEY= # E-mail required for SSL support CERTBOT_EMAIL= # Server domain name(s) for SSL certficiate. Ref: https://nginx.org/en/docs/http/server_names.html NGINX_SERVER_NAME=
-
Create
.env.development
in/frontend
:REST_API_URL=http://localhost:8080# domain of your development container PUBLIC_API_URL=http://localhost:3000# always localhost
-
Run
docker compose up
to start the containers in development. Usedocker compose -f production.yml up
to start the containers in production (adds SSL, certbot, and better caching).
Every time the containers spin up, the front end app will check the database tables. If any are empty, it will download the relevant data from Yelp and insert some data for a test account.
Warning
The free tier of Yelp Fusion limits you to 500 requests per day. This is enough to download data for all coffeeshops
in Albuquerque once. If you try more than once, you'll end up with incomplete data and get locked out. If this happens,
wait 24hrs and do docker compose down -v
to reset the database.
- Once you've got the container spun up, visit our documentation to get started!
- If you have something you would like to contribute, please file an issue to discuss it!