Skip to content
This repository was archived by the owner on Jan 15, 2024. It is now read-only.

Developers guide

georginae edited this page Nov 5, 2012 · 11 revisions

This document gives an overview of the system for future developers including those who may wish to reuse the application and/or contribute changes.

Refer to Development Environment Setup for how to set up your local environment.

Key Components

  • Ruby on Rails application (the application has been tested on Apache with Passenger (mod_rails), but can be run on your preferred deployment stack).
  • PostgreSQL database (other databases can be supported).
  • File system (when batch files are uploaded, they are stored on the file system prior to being processed)

Navigating The Code

ACData is a Ruby on Rails (3.0) application so it follows the standard Rails application layout. Refer to the official Rails guides if you need an explanation of the directory layout. Some key libraries we use are:

  • Devise (authentication)
  • Cancan (authorisation)
  • JQuery
  • Prawn (PDF generation)
  • Paperclip (file upload)
  • Whenever (Cron tool)

Refer to the Gemfile for a more complete list

Refer to the Domain Model for an overview of the database tables/domain concepts involved.

Automated Tests

ACData has a full suite of RSpec and Cucumber tests. RSpec is used to unit test our code. Cucumber is used for acceptance testing. We elected not to write RSpec tests for views or controllers as these are very well covered by the Cucumber features.

Some of the libraries we use for testing are:

  • RSpec
  • Cucumber with Capybara
  • Factory girl
  • Email spec

Guide For Contributing

We welcome any contributions to the code base. Please send us a pull request with your changes. Any changes should have accompanying RSpec examples and Cucumber features, and the full test suite should be passing.

Clone this wiki locally