diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c7b9aa2..ae7a61d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,25 +1,25 @@ name: CI on: push: - branches: [ $default-branch ] + branches: [$default-branch] pull_request: jobs: test: runs-on: ubuntu-latest strategy: matrix: - ruby: ['2.7', '3.0', '3.1'] + ruby: ["3.0", "3.1", "3.2"] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up Ruby ${{ matrix.ruby }} uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby }} bundler-cache: true - name: Set up Node - uses: actions/setup-node@v2 + uses: actions/setup-node@v3 with: - node-version: '14' + node-version: "18" - name: Install dependencies run: bundle install --without production - name: Run tests diff --git a/README.md b/README.md index c7508aa..14255d2 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ -Projekt Euler -============= +# Projekt Euler ![Build Status](https://github.com/projekteuler/projekteuler/workflows/CI/badge.svg) @@ -7,30 +6,31 @@ This is the Ruby on Rails web-app powering [projekteuler.de](https://projekteule It allows visitors to view and suggest German translations of the maths puzzles found on [projecteuler.net](https://projecteuler.net). ## Getting started -1. Download this repository, e.g., with `git clone`. -2. Make sure [NodeJS](https://nodejs.org) is installed. -3. Navigate inside the repository folder. -4. Use bundler to install all required gems. - + +1. Download this repository, e.g., with `git clone`. +2. Make sure [NodeJS >= 18](https://nodejs.org) is installed. +3. Navigate inside the repository folder. +4. Use bundler to install all required gems. $ bundle install - -5. Setup the database: +5. Setup the database: $ bin/rails db:setup - -6. Start the server: + +6. Start the server: $ bin/rails server - -7. Open `http://localhost:3000` in your browser. You should see the web app up and running! -8. Start playing with the web app. By default, the database will contain some users and translations. The user `admin` can review translations, while the user `translator` has submitted some translations. -You can login as any user by clicking the Login button and entering their name. This is simply a mock OAuth login; in production mode, GitHub is used for login. -9. If you ever want to reset the database to the original state, run `rails db:reset`. + +7. Open `http://localhost:3000` in your browser. You should see the web app up and running! +8. Start playing with the web app. By default, the database will contain some users and translations. The user `admin` can review translations, while the user `translator` has submitted some translations. + You can login as any user by clicking the Login button and entering their name. This is simply a mock OAuth login; in production mode, GitHub is used for login. +9. If you ever want to reset the database to the original state, run `rails db:reset`. ## Contributing + Do you have a suggestion for an improvement for the web app? Please create an [issue](https://github.com/projekteuler/projekteuler/issues) for it. Do you want to implement this improvement yourself? Follow these steps: + 1. Fork this repository on GitHub. 2. Create a new branch for your improvement 3. Implement your improvement, and create tests for it if applicable. @@ -43,12 +43,12 @@ Do you want to implement this improvement yourself? Follow these steps: 3. Copy all files from this repository. 4. Make sure the Rails environment is set to `production`. 5. Set up the following environment variables: - * `RAILS_MASTER_KEY`: The master key for decryption of the Rails credentials - * `DATABASE_NAME`: The name of the MySQL database - * `DATABASE_USERNAME`: The username for the MYSQL database - * `DATABASE_PASSWORD`: The password for the MYSQL database - * `GITHUB_CLIENT_ID`: The client ID of your GitHub OAuth App (that you will need to create) - * `GITHUB_CLIENT_SECRET`: The client secret of the GitHub OAuth App + - `RAILS_MASTER_KEY`: The master key for decryption of the Rails credentials + - `DATABASE_NAME`: The name of the MySQL database + - `DATABASE_USERNAME`: The username for the MYSQL database + - `DATABASE_PASSWORD`: The password for the MYSQL database + - `GITHUB_CLIENT_ID`: The client ID of your GitHub OAuth App (that you will need to create) + - `GITHUB_CLIENT_SECRET`: The client secret of the GitHub OAuth App 6. Install all required gems with `bundle install`. 7. Load the database schema with `bin/rails db:schema:load`. 8. Precompile all assets with `bin/rails assets:precompile`. @@ -57,4 +57,5 @@ Do you want to implement this improvement yourself? Follow these steps: Anytime you update the files, you should run `bin/rails db:migrate`, `bin/rails log:clear tmp:clear`, `bin/rails assets:precompile` and then restart the server. ## License + This project is released under the [MIT License](https://opensource.org/licenses/MIT).