Bike Index
Bike registration that works: online, powerful, free.
https://github.com/bikeindex/bike_index
Category: Consumption
Sub Category: Mobility and Transportation
Keywords from Contributors
activejob activerecord mvc
Last synced: about 19 hours ago
JSON representation
Repository metadata
All the code for Bike Index, because we love you
- Host: GitHub
- URL: https://github.com/bikeindex/bike_index
- Owner: bikeindex
- License: agpl-3.0
- Created: 2013-07-25T21:52:26.000Z (over 12 years ago)
- Default Branch: main
- Last Pushed: 2025-12-16T17:13:30.000Z (8 days ago)
- Last Synced: 2025-12-17T09:47:11.660Z (7 days ago)
- Language: Ruby
- Homepage: https://bikeindex.org
- Size: 161 MB
- Stars: 301
- Watchers: 13
- Forks: 76
- Open Issues: 27
- Releases: 0
-
Metadata Files:
- Readme: README.markdown
- Funding: .github/FUNDING.yml
- License: LICENSE
- Agents: agents.md
README.markdown
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.
Dependencies
We recommend mise for managing versions of Ruby and Node. Check the .tool-versions file to see the versions of required versions of:
Bike Index also requires some additional libraries. We recommend installing them via your system package manager / homebrew
-
PostgreSQL
-
Redis
-
libvipsandimagemagickfor image manipulation- Eventually,
imagemagickwill only be required for testing (via chunky_png), but we're not there yet
- Eventually,
Running Bike Index locally
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/setupsets 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/devstart 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.dev 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 |
Localization
See the localization docs for details (we use translation.io for localization).
Testing
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
fuzzystrmatchextension, 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_developmentandpsql bikeindex_test) and add the extension.CREATE EXTENSION fuzzystrmatch;
We use turbo_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/turbo_tests -
Run
bin/rake parallel:prepareto synchronize the test db schema after migrations (rather thandb:test:prepare). -
Run specific files or test directories with
bin/turbo_tests <FILES_OR_FOLDERS> -
Run Guard with parallelism
bin/guard -G Guardfile_parallel
Code Hygiene
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
EditorConfig ensures whitespace consistency. See the Download a
Plugin section of the EditorConfig docs to find a plugin
appropriate to your editor.
StandardRB
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.
StandardJS
standard is configured to run on project JavaScript.
Install it with npm install
Run it with npm run lint.
Bug tracker
Have a bug or a feature request? Open an issue.
Community
Keep track of development and community news.
- Follow @bikeindex on Twitter.
- Read the Bike Index Blog.
Contributing
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
Owner metadata
- Name: Bike Index
- Login: bikeindex
- Email:
- Kind: organization
- Description:
- Website: https://bikeindex.org
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/4251544?v=4
- Repositories: 17
- Last ynced at: 2024-04-14T19:14:24.822Z
- Profile URL: https://github.com/bikeindex
GitHub Events
Total
- Issues event: 33
- Watch event: 21
- Delete event: 290
- Issue comment event: 39
- Push event: 1262
- Pull request review event: 14
- Pull request review comment event: 14
- Pull request event: 559
- Fork event: 5
- Create event: 273
Last Year
- Issues event: 33
- Watch event: 21
- Delete event: 290
- Issue comment event: 39
- Push event: 1262
- Pull request review event: 14
- Pull request review comment event: 14
- Pull request event: 559
- Fork event: 5
- Create event: 273
Committers metadata
Last synced: 10 days ago
Total Commits: 4,483
Total Committers: 37
Avg Commits per committer: 121.162
Development Distribution Score (DDS): 0.141
Commits in past year: 373
Committers in past year: 4
Avg Commits per committer in past year: 93.25
Development Distribution Score (DDS) in past year: 0.075
| Name | Commits | |
|---|---|---|
| sethherr | s****r@g****m | 3852 |
| Jake Romer | 4****r | 247 |
| Robert Gervais | R****2@g****m | 108 |
| Jake Romer | j****e@b****g | 91 |
| dependabot[bot] | 4****] | 28 |
| Tim Kelly | t****y | 21 |
| Jake Romer | m****l@j****m | 17 |
| Chris Olin | c****t@c****m | 13 |
| runt2pb | r****b | 13 |
| Andrew Herr | l****s@g****m | 11 |
| Geoff Ereth | g****b@g****m | 11 |
| Will Barrett | w****l@t****m | 10 |
| Jack Alto | 3****k | 8 |
| G. Torres | g****y@o****m | 7 |
| Patrick D. Kelly | e@p****o | 6 |
| Andrew Herr | a****r@g****m | 4 |
| Josh Chernoff | d****s@g****m | 4 |
| Londerson | l****n@g****m | 3 |
| Steve Piercy | w****b@s****m | 3 |
| Seyamack Afzali | s****k@g****m | 3 |
| Josh Chernoff | j****c@d****s | 3 |
| Bruno Almeida | w****o | 2 |
| Grey Baker | g****l@g****m | 2 |
| Steven Buccini | s****i | 2 |
| Mateus Pereira | m****s@o****m | 2 |
| laraferroni | l****a@p****m | 1 |
| ackime | a****x@b****g | 1 |
| Teresa Tarn | t****e | 1 |
| Amit Kapadia | a****t@z****g | 1 |
| Sam Whited | s****m@s****m | 1 |
| and 7 more... | ||
Committer domains:
- ombulabs.com: 2
- bikeindex.org: 2
- github.com: 1
- samwhited.com: 1
- zooniverse.org: 1
- project529.com: 1
- digitalcak.es: 1
- stevepiercy.com: 1
- pdk.to: 1
- tallgreentree.com: 1
- geoffereth.com: 1
- chrisolin.com: 1
- jakeromer.com: 1
Issue and Pull Request metadata
Last synced: 13 days ago
Total issues: 332
Total pull requests: 2,890
Average time to close issues: over 1 year
Average time to close pull requests: 18 days
Total issue authors: 50
Total pull request authors: 49
Average comments per issue: 1.38
Average comments per pull request: 0.29
Merged pull request: 2,581
Bot issues: 0
Bot pull requests: 49
Past year issues: 4
Past year pull requests: 559
Past year average time to close issues: 8 days
Past year average time to close pull requests: 2 days
Past year issue authors: 3
Past year pull request authors: 6
Past year average comments per issue: 0.5
Past year average comments per pull request: 0.08
Past year merged pull request: 470
Past year bot issues: 0
Past year bot pull requests: 33
Top Issue Authors
- sethherr (184)
- jmromer (22)
- runt2pb (20)
- appsforartists (14)
- moleon (13)
- realchrisolin (12)
- joshchernoff (10)
- adherr (4)
- stevepiercy (4)
- braaar (3)
- blske101 (2)
- timlkelly (2)
- pqhf5kd (2)
- stevevance (2)
- jmcelroy5 (2)
Top Pull Request Authors
- sethherr (2,103)
- jmromer (418)
- Robertgervais (129)
- dependabot[bot] (48)
- torresga (22)
- willbarrett (18)
- aokj4ck (16)
- timlkelly (15)
- realchrisolin (14)
- gadogado (13)
- runt2pb (12)
- adherr (10)
- joshchernoff (6)
- eld120 (5)
- londerson (5)
Top Issue Labels
- Ruby (52)
- Enhancement (45)
- Small (25)
- Medium (19)
- bug (18)
- Priority (11)
- Javascript (9)
- Large (6)
- Authentication (5)
- Visual (4)
Top Pull Request Labels
- dependencies (48)
- Ruby (39)
- Javascript (7)
- security (1)
- github_actions (1)
Dependencies
- caniuse-lite ^1.0.30000697 development
- cypress ^3.2.0 development
- enzyme ^3.9.0 development
- enzyme-adapter-react-16 ^1.11.2 development
- enzyme-to-json ^3.3.5 development
- eslint ^5.15.3 development
- eslint-config-airbnb ^17.1.0 development
- eslint-import-resolver-webpack ^0.11.0 development
- eslint-plugin-import ^2.16.0 development
- eslint-plugin-jsx-a11y ^6.2.1 development
- eslint-plugin-react ^7.12.4 development
- jest ^24.9.0 development
- jest-json ^1.0.2 development
- jest-junit ^6.3.0 development
- jest-worker ^24.9.0 development
- postcss-cssnext ^3.1.0 development
- react-testing-library ^6.0.4 development
- webpack-dev-server ^3 development
- @babel/core ^7.12.9
- @babel/plugin-transform-runtime ^7.0.0
- @babel/preset-env ^7.16.4
- @babel/preset-react ^7.0.0
- @emotion/core ^10.0.10
- @honeybadger-io/react ^0.0.2
- @rails/webpacker ^5.4.3
- @uppy/core ^1.1.0
- @uppy/dashboard ^1.1.0
- @uppy/drag-drop ^1.1.0
- @uppy/file-input ^1.1.0
- @uppy/form ^1.1.0
- @uppy/progress-bar ^1.1.0
- @uppy/tus ^1.2.0
- @uppy/xhr-upload ^1.1.0
- babel-loader ^8.2.3
- bootstrap ~>4.3.1
- chart.js ^2.9.4
- chartkick ^3.0.2
- core-js ^3.6.3
- es6-promise ^4.2.8
- eslint-plugin-react-hooks ^1.6.0
- honeybadger-js ^0.5.5
- i18n-js ^3.3.0
- ignore-loader ^0.1.2
- jquery ^3.4.0
- lodash ^4.17.13
- lodash-inflection ^1.5.0
- loglevel ^1.6.1
- moment ^2.22.2
- moment-timezone ^0.5.23
- pluralize ^7.0.0
- popper.js ^1.14.4
- prop-types ^15.7.2
- rails-ujs ^5.2.6-3
- react ^16.8.5
- react-dom ^16.8.5
- react-spinners ^0.5.3
- regenerator-runtime ^0.13.3
- sass ^1.15.2
- sass-loader ^10
- selectize ^0.12.6
- webpack ^4.46.0
- webpack-cli ^3.3.12
- whatwg-fetch ^3.0.0
- 1684 dependencies
- bullet >= 0 development
- database_cleaner >= 0 development
- dotenv-rails >= 0 development
- factory_bot_rails >= 0 development
- foreman >= 0 development
- guard >= 0 development
- guard-rspec >= 0 development
- i18n-tasks >= 0 development
- i18n_generators >= 0 development
- letter_opener >= 0 development
- parallel_tests >= 0 development
- pry-byebug >= 0 development
- pry-rails >= 0 development
- rails-controller-testing >= 0 development
- rb-fsevent ~> 0.10.3 development
- rerun >= 0 development
- rspec ~> 3.4 development
- rspec-rails ~> 4.0 development
- rspec-sidekiq >= 0 development
- rspec_junit_formatter >= 0 development
- simplecov >= 0 development
- standard >= 0 development
- terminal-notifier >= 0 development
- vcr >= 0 development
- webmock >= 0 development
- MailchimpMarketing >= 0
- active_model_serializers ~> 0.8.3
- api-pagination >= 0
- axlsx ~> 3.0.0.pre
- bcrypt ~> 3.1.7
- bootsnap >= 0
- bootstrap = 4.0.0.alpha4
- carrierwave ~> 0.11.2
- carrierwave_backgrounder ~> 0.4.2
- chartkick >= 0
- coderay >= 0
- coffee-rails >= 0
- doorkeeper ~> 5.2.5
- doorkeeper-i18n >= 0
- eventmachine >= 0
- facebookbusiness >= 0
- faraday_middleware >= 0
- fast_blank ~> 1.0
- flamegraph >= 0
- flipper >= 0
- flipper-active_record >= 0
- flipper-ui >= 0
- fog-aws >= 0
- geocoder >= 0
- grape ~> 1.3.0
- grape-swagger = 0.11
- grape_logging >= 0
- groupdate >= 0
- hamlit >= 0
- hashie >= 0
- honeybadger >= 0
- httparty >= 0
- i18n-country-translations >= 0
- i18n-js >= 0
- jquery-rails >= 0
- kaminari >= 0
- kramdown = 2.3.1
- kramdown-parser-gfm >= 0
- lograge >= 0
- logstash-event >= 0
- memory_profiler >= 0
- mini_magick >= 0
- money-rails ~> 1.11
- multi_json >= 0
- oj >= 0
- omniauth ~> 1.6
- omniauth-facebook >= 0
- omniauth-globalid >= 0
- omniauth-strava >= 0
- omniauth-twitter >= 0
- paranoia >= 0
- pg ~> 1.0
- pg_search >= 0
- postmark-rails >= 0
- premailer-rails >= 0
- puma >= 0
- rack = 2.2.3
- rack-mini-profiler >= 0
- rack-throttle >= 0
- rails ~> 6.0
- rails-assets-Stickyfill ~> 1.1.3
- rails-assets-jquery ~> 3.4.1
- rails-assets-jquery.dirtyforms ~> 2.0.0
- rails-assets-lodash ~> 4.9.0
- rails-assets-mailcheck ~> 1.1.2
- rails-assets-moment ~> 2.18.1
- rails-assets-moment-timezone ~> 0.5.13
- rails-assets-mustache ~> 2.2.1
- rails-assets-select2 ~> 4.0.3
- rails-assets-selectize ~> 0.12.1
- rails-assets-tether ~> 1.1.0
- rails-assets-waypoints ~> 3.1.1
- rails-i18n >= 0
- redis >= 0
- responders >= 0
- rqrcode = 0.10.1
- sass-rails >= 0
- secure_headers ~> 2.5.0
- sidekiq >= 0
- sidekiq-failures >= 0
- sitemap_generator ~> 6
- skylight >= 0
- soulheart >= 0
- sprockets = 4.0.0
- sprockets-rails >= 0
- stackprof >= 0
- stripe >= 0
- swagger-ui_rails >= 0
- thor >= 0
- translation >= 0
- twilio-ruby >= 0
- twitter >= 0
- uglifier >= 0
- webpacker >= 0
- 281 dependencies
Score: 9.403931521028369