Objective is a prototype of a secure membership site with role based authorization. Members get access to services that use data from database. Members will be differentiated as to access to services and in number of databases/tables accessible for different services Only one service will be produced for this project, but provision should be made for the addition of further services. Code delivered for this project will form the basis for further development. Code must be maintainable, with self-documenting variable/function/etc names and comments in code as necessary. Flashy elements such as AJAX are probably best avoided at this point. Easy-to-extend-and-maintain is beautiful. A written overview of the program's source code structure is desired. For instance, a summary of the rails generator/etc commands used and which files have been modified. Not exhaustive documentation, just enough to help other coders familiar with ruby on rails understand the program. User interface should be functional but need not be pretty. Some error handling is expected. Some use of rails' testing infrastructure is also expected. We will need to make changes and need to be able to run some tests that will give us confidence that nothing has been broken. This is in-house software, So free/opensource licensed plugins/generators/etc acceptable, provided the license allows that the software can be modified and used in a commercial environment. For instance LoginEngine/UserEngine or ActiveRBAC might be used Program will selectively access tables in a database (mysql); selection of rows in database tables to be based on user input at runtime. A simple regex search of each row in the given tables will be the method of selection. Each row that matches the selection function will be processed by a function we will customize. A concatenation of the results will be made available as a downloadable text file. This application will not handle financial data or payment processing.
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, to be installed by buyer on buyer's server. Application should run independently of web server environment. Should be runnable under Webrick, Apache2 with FastCGI and Lighttpd with FastCGI. Seller will provide any assistance necessary to get program running.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased, except code previously licensed under Free/Opensource style license by a third party. Such licenses must allow software to be usable as in-house software in a commercial company.
## Platform
Software will run on Apache2 and FastCGI or Lighttpd and FastCGI or Webrick on a Linux server. Output will be viewable in all major web browsers, particularly in IE and Firefox.