Skip to content

Latest commit

 

History

History
40 lines (28 loc) · 2.47 KB

contributing.md

File metadata and controls

40 lines (28 loc) · 2.47 KB

Code contribution

Before you contribute some code, please review the following aspects of this project:

  • See High-level MVP defintion that specifies what we are trying to build.
  • See actors of this system
  • See entity model this is a desired state to which we should converge. Attributes that are not important for business are left out. (if you think they should be there, open a PR)

JOIN OUR SLACK, where we coordinate development.

Business logic

Business logic is written into service objects. One service class per use case. Service classes are grouped by modules.

We use the pattern as described in this guide

Technologies and libraries

Following libraries and technologies are used:

  • Devise authentication gem with strong password check. But please no unicorns.
    • For email templates override device’s I18n locales to personalize translations
  • CanCanCan authorization. Make two or three roles (admin, superadmin, coordinator)
  • Rolify - user roles management
  • Sidekiq as activejob backend
  • ActiveAdmin for scaffolding controllers
  • rspec for unit/inegration testing
  • Postgres with postgis extension. Use activerecord-postgis-adapter
  • Google geolocation api - need to find appropriate gem, maybe geocoder

Definition of Done

This is the minimal definition of done that every code contribution must adhere to

  • Code implements the desired functionality
  • You have seen the code work (you have clicked through the UI / tried it in console)
  • Documentation exists on the level of Service objects
  • Entity model is updated if a change to the entities was made
  • Tests are written at least on the service object level
  • Please, where viable, include screenshot or gif or video recording of your functionality in the PR so that PO can determine quickly if this fulfills the business requirements