To set up this project, you need to have the following software installed on your computer:
- Ruby 3.1.0
- Rails 7.0.0 or higher
- PostgreSQL 9.5 or higher
- Redis 7.0 or later
- Yarn or Npm
- Heroku CLI (Follow the link for installation instructions)
For detailed instructions on how to install these dependencies, please reference our Wiki step-by-step guide for installing dependencies on Mac or Windows.
You can view open issues here.
To get started with this project, follow these steps:
- Clone this repository to your local machine:
git clone [email protected]:agency-of-learning/PairApp.git
- Navigate to the project directory:
cd PairApp
- Run the setup script. This will install dependencies and create, migrate, and seed the database.
Note: The Preparing database
step may fail with a LoadError
. Issue may be resolved by installing the dependencies manually after checking that they do not exist on paths excluded in the ones as reported by the error. At least one error report with an M1 mac was due to missing glib
and vips
.
bin/setup
- To start the project locally, run:
bin/dev
This will start the development server, the asset compiling for CSS and JS, and background worker. Open your web browser and go to http://localhost:3000 to see the application running.
Please reference our wiki for more information about the project and our development practices.
If you want to contribute to this project, please follow these steps:
- From your local clone, create a new branch for your changes:
git checkout -b your-feature-branch-name
- Make your changes and commit them:
git add .
git commit -m "Add your commit message here"
If you are pairing with someone, you may want to do pair commits. Check our wiki on how to do it.
- Running Pre-Flight Checks
In order to pass our continuous integration, your PR will need to pass the RSpec test suite and lint for both Ruby and JavaScript. We've rolled all of this into one command you can run to make sure everything is in order before submitting a PR.
bin/checks
For linting errors, you can pass a flag to Rubocop and/or ESLint to have the tool try to autocorrect any linting offenses:
# for Rubocop
bundle exec rubocop -a
# for ESLint
yarn eslint --fix
- Push your changes to origin:
git push origin your-feature-branch-name
- Create a new pull request on the original repository and wait for the maintainer to review and merge your changes.