-
Notifications
You must be signed in to change notification settings - Fork 8
Developers guide
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.
- 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)
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.
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
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.