This fullstack application was built as part of the curriculum for the Grace Hopper Program at Fullstack Academy. It allows a user to browse different items and add those items to a shopping cart, both as a guest and a logged in user. There are also certain tasks that can be done as an administrator. Technologies used include JavaScript, React, Redux, Postgres, Sequelize ORM, Express and Node.js.
To use this as boilerplate, you'll need to take the following steps:
-
Don't fork or clone this repo! Instead, create a new, empty directory on your machine and
git init
(or create an empty repo on Github and clone it to your local machine) -
Now you will have to add the fs-app-template as a remote and merge it into your own repository.
git remote add boilermaker [email protected]:FullstackAcademy/fs-app-template.git
git fetch boilermaker
git merge boilermaker/main
git branch -m master main
Now that you've got the code, follow these steps to get acclimated:
- Update project name and description in
package.json
npm install
- Create two postgres databases (
MY_APP_NAME
should match thename
parameter inpackage.json
): - These commands will create both your development and test databases
createdb <YOUR APP NAME HERE FROM package.json>
createdb <YOUR APP NAME HERE FROM package.json>-test
- By default, running
npm test
will use your test database, while regular development uses development database
Sync and seed your database by running npm run seed
. Running npm run start:dev
will make great things happen!
- start:dev will both start your server and build your client side files using webpack
- start:dev:logger is the same as start:dev, but you will see your SQL queries (can be helpful for debugging)
- start:dev:seed will start your server and also seed your database (this is useful when you are making schema changes and you don't want to run your seed script separately)
- Set up the Heroku command line tools
heroku login
- Add a git remote for heroku:
-
If you are creating a new app...
heroku create
orheroku create your-app-name
if you have a name in mind.heroku config:set JWT=<your secret here!>
to set a secret for JWT signing
Database Setup
-
heroku addons:create heroku-postgresql:hobby-dev
to add ("provision") a postgres database to your heroku dyno (This creates your production database) -
heroku config:set SEED=true
to get heroku to sync and seed your database -
note everytime your app restarts, the database tables will be dropped and re-created. To avoid this you can
config:unset SEED
-
If you already have a Heroku app...
heroku git:remote your-app-name
You'll need to be a collaborator on the app.
Now, you should be deployed!