1
0
mirror of https://github.com/projekteuler/projekteuler.git synced 2025-12-10 08:46:41 +01:00
Go to file
2019-12-24 10:59:50 +01:00
app Update header and footer, use cards for problems 2019-12-24 10:09:35 +01:00
bin Update to Rails 6.0.0 2019-09-24 21:54:11 +02:00
config Update rails to 6.0.1 2019-11-23 17:50:57 +01:00
db Show translation diff for admins 2019-10-26 15:06:34 +02:00
lib Project setup 2014-11-30 16:38:53 +01:00
log Project setup 2014-11-30 16:38:53 +01:00
public Project setup 2014-11-30 16:38:53 +01:00
test Update header and footer, use cards for problems 2019-12-24 10:09:35 +01:00
vendor/assets Update codemirror, stop using codemirror-rails gem 2019-09-22 20:42:48 +02:00
.gitignore Add authentication via GitHub 2019-02-04 16:06:09 +01:00
.travis.yml Fix bundler error on travis 2019-12-20 12:04:33 +01:00
config.ru Project setup 2014-11-30 16:38:53 +01:00
Gemfile Switch to Bootstrap 4 2019-12-23 17:49:54 +01:00
Gemfile.lock Switch to Bootstrap 4 2019-12-23 17:49:54 +01:00
LICENSE Create LICENSE 2019-02-02 20:05:33 +01:00
Rakefile Project setup 2014-11-30 16:38:53 +01:00
README.md Update README with installation instructions 2019-02-11 21:24:20 +01:00

Projekt Euler

Build Status Codacy Badge

This is the Ruby on Rails web-app powering projekteuler.de. It allows visitors to view and suggest German translations of the maths puzzles found on projecteuler.net.

Getting started

  1. Download this repository, e.g., with git clone.

  2. Make sure NodeJS is installed.

  3. Navigate inside the repository folder.

  4. Use bundler to install all required gems.

     $ bundle install
    
  5. Setup the database:

     $ bin/rails db:setup
    
  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.

Contributing

Do you have a suggestion for an improvement for the web app? Please create an issue 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.
  4. Submit a pull request.

Deployment

  1. Make sure NodeJS is installed.
  2. Set up a MySQL database.
  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
  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.
  9. Start the server, e.g., with bin/rails server.

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.