mirror of
https://github.com/projekteuler/projekteuler.git
synced 2025-12-10 16:46:42 +01:00
62 lines
3.0 KiB
Markdown
62 lines
3.0 KiB
Markdown
Projekt Euler
|
|
=============
|
|
|
|
[](https://travis-ci.org/projekteuler/projekteuler)
|
|
[](https://www.codacy.com/app/projekteuler/projekteuler)
|
|
|
|
This is the Ruby on Rails web-app powering [projekteuler.de](https://projekteuler.de).
|
|
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.
|
|
|
|
$ 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](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.
|
|
4. Submit a pull request.
|
|
|
|
## Deployment
|
|
|
|
1. Make sure [NodeJS](https://nodejs.org) 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](https://opensource.org/licenses/MIT).
|