Coder Social home page Coder Social logo

land-of-apps / bike_index Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bikeindex/bike_index

0.0 1.0 0.0 106.89 MB

All the code for Bike Index, because we love you

Home Page: https://bikeindex.org

License: GNU Affero General Public License v3.0

Ruby 50.70% JavaScript 6.28% CoffeeScript 1.61% HTML 12.09% CSS 5.56% Shell 0.11% Dockerfile 0.01% SCSS 7.73% Haml 15.92%

bike_index's Introduction

BIKE INDEX Cloud66 Deployment Status CircleCI Test Coverage 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 the following dependencies that Bike Index uses.

Running Bike Index locally

This explanation assumes you're familiar with developing Ruby on Rails applications.

Toggle in development command default
Caching bin/rake dev:cache disabled
letter_opener bin/rake dev:letter_opener enabled
logging with lograge bin/rake dev:lograge enabled

Running Bike Index with Docker

For running you need to have docker and docker compose installed.

  • docker-compose up build and download containers:

    • Install Ruby and Javascript dependencies
    • Starts all servers (you need to setup the application on the first time, see bellow)
  • docker-compose run app bin/setup sets up the application and seeds:

  • Add docker-compose run app before any other rails command, f.e.:

    • docker-compose run app rails console for Rails console
    • docker-compose run app bundle exec rspec for running tests
    • docker-compose run app yarn install to install or update JS dependencies
  • Go to localhost:3001

Internationalization

See the internationalization docs for details.

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.

    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 than db:test:prepare).

  • Run specific files or test directories with bin/parallel_rspec <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:

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.

ESLint

ESlint is configured to run on project JavaScript. To run it, issue yarn 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

bike_index's People

Contributors

ackime avatar adherr avatar chancancode avatar dependabot[bot] avatar florinpopacodes avatar gadogado avatar greysteil avatar jmromer avatar joshchernoff avatar kalmanh avatar laraferroni avatar pdk avatar purcebr avatar realchrisolin avatar robertgervais avatar runt2pb avatar sethherr avatar stevenbuccini avatar stevepiercy avatar tarnelope avatar timlkelly avatar wwwbruno avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.