bike_index

All the code for Bike Index, because we love you

https://github.com/bikeindex/bike_index

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.6%) to scientific vocabulary

Keywords from Contributors

interactive projection packaging serializer measurement cycles charts network-simulation archival shellcodes
Last synced: 11 months ago · JSON representation

Repository

All the code for Bike Index, because we love you

Basic Info
  • Host: GitHub
  • Owner: bikeindex
  • License: agpl-3.0
  • Language: Ruby
  • Default Branch: main
  • Homepage: https://bikeindex.org
  • Size: 151 MB
Statistics
  • Stars: 296
  • Watchers: 17
  • Forks: 74
  • Open Issues: 65
  • Releases: 0
Created almost 13 years ago · Last pushed 11 months ago
Metadata Files
Readme Funding License Agents

README.markdown

BIKE INDEX View performance data on Skylight

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 asdf-vm 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

  • libvips and imagemagick for image manipulation

    • Eventually, imagemagick will only be required for testing (via chunky_png), but we're not there yet

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/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
  • 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.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 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 and psql bikeindex_test) and add the extension.

sql 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 bundle exec turbo_tests

  • Run bin/rake parallel:prepare to synchronize the test db schema after migrations (rather than db:test:prepare).

  • Run specific files or test directories with bundle exec 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.

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

  • Name: Bike Index
  • Login: bikeindex
  • Kind: organization

GitHub Events

Total
  • Issues event: 5
  • Watch event: 20
  • Delete event: 272
  • Issue comment event: 35
  • Push event: 1,207
  • Pull request review event: 13
  • Pull request review comment event: 12
  • Pull request event: 533
  • Fork event: 5
  • Create event: 257
Last Year
  • Issues event: 5
  • Watch event: 20
  • Delete event: 272
  • Issue comment event: 35
  • Push event: 1,207
  • Pull request review event: 13
  • Pull request review comment event: 12
  • Pull request event: 533
  • Fork event: 5
  • Create event: 257

Committers

Last synced: 12 months ago

All Time
  • Total Commits: 4,365
  • Total Committers: 36
  • Avg Commits per committer: 121.25
  • Development Distribution Score (DDS): 0.14
Past Year
  • Commits: 287
  • Committers: 7
  • Avg Commits per committer: 41.0
  • Development Distribution Score (DDS): 0.063
Top Committers
Name Email Commits
sethherr s****r@g****m 3,753
Jake Romer 4****r 247
Robert Gervais R****2@g****m 108
Jake Romer j****e@b****g 91
Tim Kelly t****y 21
Jake Romer m****l@j****m 17
runt2pb r****b 13
Chris Olin c****t@c****m 13
dependabot[bot] 4****] 12
Andrew Herr l****s@g****m 11
Geoff Ereth g****b@g****m 11
Will Barrett w****l@t****m 10
G. Torres g****y@o****m 7
Jack Alto 3****k 6
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
Seyamack Afzali s****k@g****m 3
Steve Piercy w****b@s****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****p@g****m 2
Andrew Ford b****d 1
Ben Sheldon [he/him] b****n@g****m 1
Bryan Purcell p****r@g****m 1
Amit Kapadia a****t@z****g 1
Florin Popa p****n@p****m 1
and 6 more...

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 331
  • Total pull requests: 2,858
  • Average time to close issues: 10 months
  • Average time to close pull requests: 18 days
  • Total issue authors: 50
  • Total pull request authors: 48
  • Average comments per issue: 1.37
  • Average comments per pull request: 0.29
  • Merged pull requests: 2,558
  • Bot issues: 0
  • Bot pull requests: 38
Past Year
  • Issues: 3
  • Pull requests: 561
  • Average time to close issues: 8 days
  • Average time to close pull requests: 2 days
  • Issue authors: 3
  • Pull request authors: 7
  • Average comments per issue: 0.67
  • Average comments per pull request: 0.07
  • Merged pull requests: 471
  • Bot issues: 0
  • Bot pull requests: 22
Top Authors
Issue Authors
  • sethherr (183)
  • 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)
Pull Request Authors
  • sethherr (2,082)
  • jmromer (418)
  • Robertgervais (129)
  • dependabot[bot] (37)
  • torresga (22)
  • willbarrett (18)
  • aokj4ck (16)
  • timlkelly (15)
  • realchrisolin (14)
  • gadogado (13)
  • runt2pb (12)
  • adherr (10)
  • joshchernoff (6)
  • eld120 (5)
  • londerson (5)
Top Labels
Issue Labels
Ruby (52) Enhancement (45) Small (25) Medium (19) bug (18) Priority (11) Javascript (9) Large (6) Authentication (5) Visual (4)
Pull Request Labels
dependencies (37) Ruby (29) Javascript (7) security (1)

Dependencies

package.json npm
  • 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
yarn.lock npm
  • 1684 dependencies
Gemfile rubygems
  • 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
Gemfile.lock rubygems
  • 281 dependencies