Bike registration that works: online, powerful, free.
Registering a 🚲 only takes a few minutes and gives 🚴♀️ a permanent record linked to their identity that proves ownership in the case of a theft.
We're an open source project. Take a gander through our code, report bugs, or download it and run it locally.
We recommend asdf-vm for managing versions of Ruby and Node. Check the .tool-versions file to see the versions of the following dependencies that Bike Index uses.
-
PostgreSQL >= 9.6
-
Imagemagick (railscast)
-
Requires 1gb of ram (or at least more than 512mb)
Follow the Getting Started guide for a complete set up. Or if you're familiar with developing Ruby on Rails applications start with these steps and a local Postgresql installation:
-
bin/setup
sets up the application and seeds:- Three test user accounts: admin@example.com, member@example.com, user@example.com (all have password
pleaseplease12
) - Gives user@example.com 50 bikes
- Three test user accounts: admin@example.com, member@example.com, user@example.com (all have password
-
bin/dev
start the server. It starts redis in the background and runs foreman with the dev procfile. If you need/prefer something else, do that. If your "something else" isn't running at localhost:3042, change the appropriate values in Procfile_development and .env -
Go to localhost:3042
Toggle in development | command | default |
---|---|---|
Caching | bundle exec rails dev:cache |
disabled |
letter_opener | bin/rake dev:letter_opener |
enabled |
logging with lograge | bin/rake dev:lograge |
enabled |
See the internationalization docs for details (we use translation.io for localization).
We use RSpec and Guard for testing.
-
Run the test suite continuously in the background with
bin/guard
(watches for file changes/saves and runs those specs) -
You may have to manually add the
fuzzystrmatch
extension, which we use for near serial searches, to your databases. The migration should take care of this but sometimes doesn't. Open the databases in postgres (psql bikeindex_development
andpsql bikeindex_test
) and add the extension.CREATE EXTENSION fuzzystrmatch;
We use parallel_tests
to run the test suite in parallel. By default, this will spawn one process per CPU in your computer.
-
Run all the tests in parallel with
bin/rake parallel:spec
-
Run
bin/rake parallel:prepare
to synchronize the test db schema after migrations (rather thandb:test:prepare
). -
Run specific files or test directories with
bin/parallel_rspec <FILES_OR_FOLDERS>
-
Run Guard with parallelism
bin/guard -G Guardfile_parallel
We use the following tools to automate code formatting and linting:
Run bin/lint
to automatically lint the files and/or add auto formatters to your text editor (e.g. prettier-standard)
EditorConfig ensures whitespace consistency. See the Download a Plugin section of the EditorConfig docs to find a plugin appropriate to your editor.
StandardRB is an opinionated Ruby style guide, linter, and formatter - it is "a spiritual port of StandardJS".
See the how do I run standard in my editor section of the StandardRB docs to find an appropriate plugin for on-the-fly linting.
ESlint is configured to run on project JavaScript. To run it, issue yarn lint
.
Have a bug or a feature request? Open an issue.
Keep track of development and community news.
- Follow @bikeindex on Twitter.
- Read the Bike Index Blog.
Open a Pull request!
Don't wait until you have a finished feature before before opening the PR, unfinished pull requests are welcome! The earlier you open the pull request, the earlier it's possible to discuss the direction of the changes.
Once the PR is ready for review, request review from the relevant person.
If your pull request contains Ruby patches or features, you must include relevant Rspec tests.
... and go hard