We're really excited to have you join the community of contributors for the RVA project! Make sure to read the following content comprehensively so that you can get a clear idea of how to contribute to this project effectively.
Re-Volt America should focus on providing the best competitive experience in terms of maintaining a reliable and interactive site where all online session results and leaderboards are kept public and available for all its players and the general public.
This application's aim is to provide Re-Volt America's administrators with the ability to parse session files (.csv) on-site and render results tables. All users should be able to visualise session results on-site too.
- The site allows the user to create new Seasons and Rankings for Re-Volt America.
- The site allows the user to create new Car and Track models and relating them to specific seasons.
- The site has the capacity of processing RVGL Session Logs (.csv files) uploaded on-site, and rendering its final table representation to the user.
This project's code style must follow the standard recommendations for Ruby programming:
- All the codebase and documentation must be written in English.
- In general, the entire project follows Ruby's naming conventions and other useful guidelines which you may find on the following site: RubyStyle website.
This project utilises the RuboCop gem to apply an standard format to
the codebase. All exceptions and directives to these standards are listed in the .rubocop.yml
file.
The RuboCop gem is installed alongside the rest of the project's gems. Therefore, once you run bundler install
to
download and install the project's dependencies, you will pull the RuboCop dependency too. Once installed, you may
inspect and auto-correct the code using the following commands, respectively:
rubocop # Inspect
rubocop -A # Autocorrect
Before writing your code, verify that the following general configurations in your editor are set to the following:
- Linebreak (EOL - End of Line) CRLF.
- UTF-8 encoding.
- No tabs -- Use 2 spaces.
- This project, being a Rails application, follows the MVC (Model View Controller) pattern.
- Databases are prefixed using the term
rv
(Re-Volt). Follow this standard when naming model databases. - Cache keys are named in lowercase, and spaces are replaced by underscores. In case of compound cache keys,
we use the following format:
object_type:id
object_type:id#field
object_type:id#embedded_object:id
object_type:id#embedded_object:id#field
- The
master
branch is where all general development takes place. Things may or may not be suited for production. - The
production
branch is the one that triggers the application's deployment workflow. This means that the code in the production branch gets sent to our servers and is served as the official website.
- Create an issue and a new branch originating from the master branch.
- Describe and list all the tasks which will be developed.
- Develop the code in the newly created branch.
- Make the commits to the issue branch.
- Mention the issue number in the commit message.
- Sending your code to the repository opening a pull request.
- Describe what will be implemented into the master branch.
- Describe the acceptance criteria and review of the code and changes.
- Label the PR with all the related labels.
- Mention the issue in the PR description.
- If the PR contains all the changes which complete the tasks for the issue being addressed, add 'Closes Issue #123'.
- Await approval from one of the project maintainers.
You may find a full list of files which are already configured to be ignored by git via the .gitignore
file. Check it
out to get a better picture of which files should not be version controlled.
Please be mindful when uploading new files to version control. Make sure they are appropriate to version before you send them in.