- Node.js
- npm
- Docker OR PostgreSQL 15
To run the entire application using Docker Compose, run the following commands:
git clone [email protected]:bcgov/nr-rec-resources.git
cd nr-rec-resources
docker-compose up
Navigate to http://localhost:3000
in your web browser to view the application.
Before starting development on this project, run npm install
in the base
directory to install eslint and plugins to ensure linting is working correctly.
To run this on your local machine, you will need a working installation of PostgreSQL 16.
Create an .env
file in the backend
directory using the example in
backend/.env.example
as a template.
cd nr-rec-resources
make create_db
make migrate
Ensure you have the .env
file in the backend
directory from the previous
step.
cd backend
npm install
npm run dev
Create an .env
file in the frontend
directory using the example in
frontend/.env.example
as a template.
cd frontend
npm install
npm run dev
Navigate to http://localhost:3000
in your web browser to view the application.
Pre-commit is set up to run checks for linting, formatting, and secrets.
- Install pre-commit
- With pre-commit installed run
pre-commit install
in the root directory of the project - Pre-commit should now run on your staged files every time you make a commit
If you need to skip the pre-commit hooks for a specific commit, you can use the
--no-verify
flag. Some developers may use this when they are making a commit
that they know will fail the pre-commit checks, but they still want to commit
the changes. This is a perfectly acceptible workflow, though there is a
pre-commit check in CI so it may be necessary to run pre-commit on all files
before putting a PR up for review if this is skipped.
git commit -m "Your commit message" --no-verify
Sometimes it may be necessary to run pre-commit
on the entire project due to a
mistake or a configuration change.
pre-commit run --all-files
Commits follow the conventions defined in the Conventional Commits specification.
Schedule job runs every saturday and keep schema documentation upto date in github pages.