An audio-video (AV) content purchase and playback portal is being developed using Ruby on Rails.
The AV content will be purchased using a modified version of the Spree ecommerce system. The project will use its own user interfaces (web, Android, iOS), but will modify and use the Spree ecommerce platform's APIs, database schemas and ROR code. Additionally, multiple ROR gems will be used for features such as user authorization/authentication, payment gateway, analytics, etc. Additionally, several new ROR modules will be developed, including a license server (already partially developed), full text and tag search, business rules engine, etc.
The architecture and design of the backend/server (ROR) project is SOA and cloud-based. The backend/server code will be split into 2 layers:
1. A secure API layer that can be invoked by any client such as a web client (AngularJS) or mobile client (such as Android or iOS), and
2. A business logic layer that implements and orchestrates these services, by communicating with a MySQL database.
This specific sub-project - Sprint 1 - will require the development of only certain modules (APIs and business logic) of the whole project, including authentication, authorization, user profile management, user management and administration, AV content authentication and authorization (through the license server and business rules engine) and content security.
Many parts of this have already been partially developed, such as:
1. Use of Spree ecommerce (only backend and database),
2. Use of Devise gem with Spree for authentication,
3. Use of OTP gem with Devise for registration and authorization,
4. Development of some custom APIs to expose user authentication, authorization and management.
However, the current state of the design is that it is not quite layered or based on SOA. The APIs are tightly coupled with the backend. Additionally, many APIs are missing. The license server is partially complete (skeleton code only). The business rules engine has not been developed at all.
This specific sub-project - Sprint 1 - has been estimated to be completed in 120 person-hours. Freelancers must complete work on this sub-project in 120 person hours or less to qualify for the next phase of the project. Design documents, existing source code will be provided.
1. Separate the APIs from the backend, and link them using REST calls, (estimated effort: 16 hours)
2. Complete the license server, (estimated effort: 8 hours)
3. Develop the business rules engine, (estimated effort: 32 hours)
4. Integrate the business rules engine with the license server, (estimated effort: 8 hours)
5. Complete all remaining APIs and their backend code (estimated effort: 32 hours).
Proposals MUST be complete, with rates and AT LEAST 5 milestones, matching 1 to 5 above. Quotes/effort estimates CANNOT EXCEED 120 person hours.