All Projects → maccman → Saasy

maccman / Saasy

Licence: mit
Rails SaaS and SSO solution

Programming Languages

ruby
36898 projects - #4 most used programming language

== Welcome to Saasy

Saasy is a Rails app that bills and authenticates, so you don't have to. The idea is that you host Saasy on a subdomain, and communicate with it using SSO/REST protocols. That means you're free to do more interesting coding.

At the moment this is alpha code - use at your own risk

I'd like to thank Made by Many (http://madebymany.co.uk) for supporting this project.

Alex MacCaw

http://eribium.org [email protected]

== Screenshots

== Overview

  • Subscription management
  • Recurring billing
  • Credit card management
  • User authentication and SSO

== Features

  • No local credit card storage
  • Automated billing script that should be run nightly
  • Configurable subscription plans (price/duration)
  • SSL protection for account creation (and when updating CC info)
  • Account can have multiple users, interface for adding more
  • Trial ending mailer
  • Invoice mailer
  • Automated notification and retry of failed renewals
  • Plan upgrade/downgrades
  • PDF invoices
  • Forgot password retrieval
  • OpenID support
  • Shared secret SSO
  • Credit card verification
  • REST API for users and subscriptions

== Getting Started

cp config/database.example.yml config/database.yml

cp config/application.example.yml config/application.yml

cp config/subscription.example.yml config/subscription.yml

rake db:schema:load

Setup a cron job to run rake subs:daily daily

configure application.yml

configure subscriptions.yml

script/server -p 3001

== Gateways

Currently the following gateways are supported:

  • Braintree
  • TrustCommerce
  • PaymentExpress

== Choosing a Gateway

Braintree seems to be a good choice, and they're friendly to Railers to:

== Test transactions

As far as I could tell, Braintree are the only Gateway that lets you test transactions without signing up.

== SSO (single sign on)

I've implemented a simple SSO using shared secrets. have a look at lib/sso.rb for more information.

== Gotchas

I've made some extensions to various plugins/libs which I've yet to push back:

  • Extended ActiveMerchant's Braintree and Trust Commerce gateways (see initializers)
  • Edited acts_as_state_machine:
    • Added named_scope 'in_state'
    • Stopped it overriding any states I specified before creation
    • Make it update all the attributes on save, not just the state column
  • Used the Rails 2.2 version of prawnto (http://github.com/filiptepper/prawnto/tree/master)
  • Edited ssl_requirement so that it's disabled in development/test mode.
  • Rails error_messages_for now uses spans, instead of divs, to be standards compliant
  • Add a float component to Prawn (see initializers)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].