SaaS Application with Ruby Gems
Closed - This job posting has been filled and work has been completed.
I would like to build a small SaaS application aimed at small businesses. It will manage the "procure to pay" part of the company's operations. Functionally it will replicate the Procurement module of any standard ERP system. I don't care if you use Rails or Sinatra. It has to be one of these two though.
The app will be hosted on AWS most likely or on Rackspace as an alternative. You can use the standard gems like cancan, rolify, etc and a standard CSS framework like blueprint or zurb-foundation. Preferably use haml or slim. Stripe for payments. The only deviation from these standard gems would be not using devise - unless it supports Google Apps Marketplace. May be it does, because GAM just uses the OpenID protocol.
Here is a high level work flow for the SaaS Application. Lets call it PomsApp (short for Purchase Order Management System App).
All purchase orders start off as Purchase Requisitions (PRs for short). A PR is has a title or name that describes briefly the purpose of the purchase. For example "Laptops for new hires in June".
In its simplest form the PR has one item that describes what needs to be purchased and a quantity. So in the above example, the item might be "Macbook Pro 13 inch" or "Lenovo W530 15 inch", and the quantity might be 4. This will take care of providing laptops for three new employees and a loaner for the loaner pool.
You can go ahead and request approval for this and continue. Or you can add a second item called "Cable lock for Macbook Pro" with a quantity of 4.
After you have added the items, you can "save as draft" or "submit the PR". When you submit it, a notification is sent to the approver.
Once the approver accepts the PR, the status of the PR changes from PR created to PR accepted. The requester or Purchase Department can now gather quotes from Vendors. You can create vendors records or choose from previously created vendors and add them to the PR. When you click "Request Quote" on the PR a notification will be sent to all the selected vendors. You can add new vendors and request quotes from each of them at any time. The vendor receives a link that they can use to submit their quotes directly into the system. If you receive a quote by email you can add that directly to the PR as well.
After reviewing the quotes you can pick a vendor and request approval to issue a PO to that vendor. The terms of the PO must be entered at this stage. The approver is notified as before. The approver can click "Approved" and the PR is now in the Approved state. The PR can now be converted to a PO valid for that vendor.
All vendors on the PR are notified at this time. The vendor who won the PO can update the delivery schedule. When the products are delivered the vendor and/or you can update the system indicating the delivery was completed. You can then inspect the items and schedule payment.
Note: Vendors do not need to login to be able to see or edit their purchase order if they have the right URL. But if they do create an account in the system, then all their customer POs will be accessible from a tab.
Needless to say, use Ajax, Automated Tagging, and all things Web 2.0 to make this a rock solid app.
TDD/BDD is a must. You must be available via a cell phone or Skype. Must be able to meet for 10 to 15 minutes daily to follow agile methodology for development.
Skills: agile, management