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 https://github.com/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
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
- 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!