A website for Agile Ventures
Clone or download
dependabot[bot] and tansaku Bump stripe from 4.5.0 to 4.6.0 (#3014)
* Bump bundler-audit from 0.6.0 to 0.6.1 (#3007)

Bumps [bundler-audit](https://github.com/postmodern/bundler-audit) from 0.6.0 to 0.6.1.
- [Release notes](https://github.com/postmodern/bundler-audit/releases)
- [Changelog](https://github.com/rubysec/bundler-audit/blob/master/ChangeLog.md)
- [Commits](rubysec/bundler-audit@v0.6.0...v0.6.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>

* Bump brakeman from 4.3.1 to 4.4.0 (#3006)

Bumps [brakeman](https://github.com/presidentbeef/brakeman) from 4.3.1 to 4.4.0.
- [Release notes](https://github.com/presidentbeef/brakeman/releases)
- [Changelog](https://github.com/presidentbeef/brakeman/blob/master/CHANGES.md)
- [Commits](presidentbeef/brakeman@v4.3.1...v4.4.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>

* Bump grape from 1.2.2 to 1.2.3 (#3005)

Bumps [grape](https://github.com/ruby-grape/grape) from 1.2.2 to 1.2.3.
- [Release notes](https://github.com/ruby-grape/grape/releases)
- [Changelog](https://github.com/ruby-grape/grape/blob/master/CHANGELOG.md)
- [Commits](ruby-grape/grape@v1.2.2...v1.2.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>

* Bump kramdown from 1.17.0 to 2.0.0 (#3011)

Bumps [kramdown](https://github.com/gettalong/kramdown) from 1.17.0 to 2.0.0.
- [Release notes](https://github.com/gettalong/kramdown/releases)
- [Changelog](https://github.com/gettalong/kramdown/blob/master/doc/news.page)
- [Commits](https://github.com/gettalong/kramdown/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>

* Bump stripe from 4.5.0 to 4.6.0

Bumps [stripe](https://github.com/stripe/stripe-ruby) from 4.5.0 to 4.6.0.
- [Release notes](https://github.com/stripe/stripe-ruby/releases)
- [Changelog](https://github.com/stripe/stripe-ruby/blob/master/CHANGELOG.md)
- [Commits](stripe/stripe-ruby@v4.5.0...v4.6.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
Latest commit 8a8e689 Jan 23, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github rough changes to PR template (#2794) Nov 7, 2018
app try requiring in another place Jan 18, 2019
bin Upgrade to rails 5.2 (#2768) Nov 21, 2018
config 2652 paypal bug workaround (#2997) Jan 16, 2019
db WIP (#2975) Jan 3, 2019
doc Add route and controller for subscriptions api endpoint (#1959) Nov 17, 2017
docker Updated docker setup README file fixes #2617 (#2671) Oct 10, 2018
docs Update development_environment_set_up.md (#2800) Nov 6, 2018
experiments adjust home page to use images and text from design sprint (#2572) Sep 3, 2018
features 2652 paypal bug workaround (#2997) Jan 16, 2019
fixtures modal_spec for events passing Mar 2, 2014
lib try requiring in another place Jan 18, 2019
log New app created Jan 8, 2014
public Update 403.html (#2773) Nov 21, 2018
script add setup script and updated seeds.rb Jun 21, 2014
scripts Unvendoring the JavaScript (#1278) Sep 20, 2016
spec Fix future events query (#2922) Dec 13, 2018
test/fixtures/mailer Add email interceptor (#2363) May 14, 2018
vendor/assets WIP Add: calendar support (#1937) Apr 10, 2018
.buildpacks Unvendoring the JavaScript (#1278) Sep 20, 2016
.codeclimate.yml Exclude public path from codeclimate analysis. (#2200) Mar 6, 2018
.dockerignore Add dockeriziation (#2493) Jul 24, 2018
.eslintignore add codeclimate config file and linter config (#1418) Nov 23, 2016
.eslintrc add codeclimate config file and linter config (#1418) Nov 23, 2016
.gitignore ensure svg files are precompiled in production Sep 4, 2018
.pryrc.example Introduced configuration files Jun 21, 2014
.rspec 1076 investigate test coverage (#1260) Jan 13, 2017
.rubocop.yml Update rubocop.yml to latest release (#2698) Oct 17, 2018
.simplecov Activate second try. (#2384) May 17, 2018
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md (#1740) Aug 4, 2017
Dockerfile [WIP] gems updating and caching in docker Oct 17, 2018
Gemfile Bump kramdown from 1.17.0 to 2.0.0 (#3011) Jan 23, 2019
Gemfile.lock Bump stripe from 4.5.0 to 4.6.0 (#3014) Jan 23, 2019
Guardfile Remove travis.yml and fix Guardfile May 25, 2015
LICENSE adjust home page to use images and text from design sprint (#2572) Sep 3, 2018
Procfile Replaced Unicorn with Puma Web Server Sep 27, 2014
README-old.md switch to new README (#2199) Mar 7, 2018
README.md 2489 membership plans (#2534) Aug 13, 2018
Rakefile Upgrade to rails 5.2 (#2768) Nov 21, 2018
app.json [WIP] 845 fix injection attacks (#1363) Oct 27, 2016
changelog.md Name and Country are truncated if they are too long using css to styl… Apr 14, 2016
coffeelint.json add codeclimate config file and linter config (#1418) Nov 23, 2016
config.ru Optmizing App according to Codeship Guide Mar 15, 2014
docker-compose.yml [WIP] gems updating and caching in docker Oct 17, 2018
docker-entrypoint.sh [WIP] gems updating and caching in docker Oct 17, 2018
events_exploration.md Add static pages for plans (#1689) Jul 3, 2017
package-lock.json Redesign projects list three rows of three (#2546) Nov 1, 2018
package.json Install node dependencies, add docker instructions (#2511) Aug 6, 2018


Build Status Maintainability Test Coverage

AgileVentures WebSiteOne

This Ruby on Rails app powers the AgileVentures main developer site, showing lists of active projects, members, upcoming events, past event recordings, as well as all the machinery for Premium membership payments.


See the Project Setup documentation



See the site How To documentation


See our Contribution guidelines


in 2011, inspired by Dave Patterson and Armando Fox's UCBerkeley Software Engineering Massive Open Online Class (MOOC), Sam Joseph had the idea for a global online pairing community where everyone worked together to use the agile development methodology to deliver solutions to IT charities and non-profits. Thomas Ochman joined as project manager and led the development of the WebSiteOne codebase with Bryan Yap serving as technical lead. Initialy Sam was the notional "client", not getting involved in the tech development, and many different volunteers contributed code. During this phase the events, projects and user systems were developed. There was also a blog like articles system. Yaro Appletov led a tight integration with Google hangouts to allow recordable hangouts to be launched from the site and report back telemetry.

Later Raoul Diffou joined to take over as project manager as Thomas and Bryan had less and less time for the project. Sam took over the technical lead role in 2016 and also stared pairing with Raoul as project manager. Later in 2016 as Raoul had less and less time Sam became the sole project manager. During the course of 2016 Sam and long time AV contributor Michael revised the events framework, and replaced the articles system with a Premium payments framework intended to help ensure AV was sustainable into the future. In 2017 Google withdrew their Hangouts API breaking various functionality in the site. Sam and Lokesh Sharma replaced the API integration with manual updates, and Sam pulled in the agile-bot node microservice so that WSO now communicates directly with Slack to alert members about new online meetings and their recordings.


  • Agile Development
    • We try to work from user stories in regular sprints, offer daily standups, and get regular feedback from end users. We try to reflect regularly on our process and experiment with incremental changes to how we get things done.
  • Behaviour Driven Development (BDD)
    • We use Cucumber and RSpec testing tools that describe the behaviours of the system and its units
    • We try to work outside in, starting with acceptance tests, dropping to integration tests, then unit tests and then writing application code
    • We do spike application code occasionally to work out what's going on, but then either throw away the spike, or make sure all our tests break before wrapping the application code in tests (by strategically or globally breaking things)
    • Where possible we go for declarative over imperative scenarios in our acceptance tests, trying to boil down the high level features to be easily comprehensible in terms of user intention
  • Domain Driven Design (DDD)
    • Sometimes we switch to inside out, trying to adjust the underlying entity schema to better represent the domain model
  • Self-documenting code
    • We prefer executable documentation (tests) and relatively short methods where the method and variable names effectively document the code

Reading material


  • An example of a simple interface change
    • Here is the original user story
    • Here is the original cucumber scenario
    • We did not write a spec, as this would have involved a view spec which we don't feel add any value
    • Here's the code that implemented the feature


  • An example of a new feature involving a database change ...
  • An example of a bug fix ...