Design and write a role-based user manager having the following characteristics:
- scalable to millions of users
- data store either MySQL, sharded Redis, or Amazon DynamoDB (or suggestions)
- single table, single script is fine. Denormalized data is fine provided you ensure consistency
- REST API. Use POST to create new (ensure user does not already exist), PUT to overwrite
- allow multiple accounts to have their own set of users, roles, etc
- Choose either Python/WSGI, PHP, or node.js as your backend.
- roles should have an access-control-list (ACL) design. For example, role "admin" should have "allow" "any" operation on "all" objects.
- Use Deny All, Allow Some as a general ACL principle instead of the other way around. For example, start out with Deny All.
- There should be an 'anonymous' or 'not-logged-in' concept that specifies what roles a user may have if not logged in.
In your proposal, you MUST describe (in general terms) your design. Entries that just say "I can do this for you" will be rejected.
Final deliverables are a tarball or zipfile containing your scripts with the following:
- The full build out in detail of the concepts you described in your proposal, including all of the table SQL (if you're using an SQL server)
- Full build out in detail all of the methods in either Python, PHP, Node.js, including a setup method if needed (such as to create the MySQL table)
- Full build out of the REST API front end, also including validation of login credentials (HTTP Basic Auth is fine)
The winner and runners-up will also be invited to bid on another project to write the user management portal -- ie., AJAX, full search, role creation, etc.
Thanks for your entry and good luck!
Pick your own solution architecture!
Python, PHP, Node?
NoSQL, MySQL, in-between?
10 freelancers are bidding on average $618 for this job
Thanks for inviting us to bid on this project. We have a team of highly qualified and creative professionals. Give us a chance to show our talents and we assure you quality.