PHP + Ajax MySQL administration + user website
Required skills : MySQL / PHP / AJAX
End-platform : Centos5.2
Please see attached database design. Some conventions about the database design : fk_data1 in data2 table references pk_data1 in data1 table. username = email address. See yellow comments in the jpg for other conventions.
Job Description : Based on the database_layout.jpg, create the following in PHP and AJAX :
1) login page in php
Both admins and users login using the same login page. If user is member of a group with "isadmin=1" then that user is directed to the administration website. If the user is not member of a group with "isadmin=0" then user is logged into a user website. We do not require that you use this database design exactly as is represented: If you have a better way of handling user + group security, we welcome you to use freedom to design it your way. The login page should be able to have a "remember login" option (perhaps cookies?) so users don't have to remember their login details everytime. Also a "forgot password?" option should be implemented that emails the password to the end-user ( username=email ).
2) administration page
in the administration page, the admin user can create groups and users. He can make users members of groups and remove users from groups. He can easily assign access rights to groups on values in data1 table based on pk_data1. Access rights define what the users are able to edit in data2 table. Admins can create new data in data1 table, edit it, remove it etc. Also , they will link data1 table with access rights and groups. The look and feel should be similar to slGrid ( see http://www.senzalimiti.com/slgrid/pages/en/download.html ). Ideally, there will be a menu on the left where admins can easily select the different tasks ( create user / create group / assign user rights / create data1_1 / etc.
3) user page
Users are members of 1 or more groups. They can only change values in data2 table. Users should be able to ( depending on their "accesslevel" value in accessrights table :
- view only the values for which they have accessrights ( based on group membership )
- edit values for which they have accessrights ( group membership )
- insert new value in data2 from a dropdown list populated by "data1_1" values based on accessrights. The dropdown list is made by the accessrights table and data1 table. Values in fk_data1 for which the user has accessrights will be shown in the dropdown menu. They select a value from dropdown then enter info which is stored in data2_1 and data2_2.
- remove any entries AS LONG as it's not the last entry ( there should always be at least 1 valid entry per dropdown. ( we don't want data1.pk_data1 values without at least 1 matching data2.fk_data1 value. )
All database editing needs to be done based on AJAX.
A sample of how we would like the end product to look and feel can be found here : http://www.senzalimiti.com/slgrid/pages/en/download.html
Upon acceptance of the project, the coder will be given the real table names as well as a MySQL database creation script ( .sql format ) The coder is free to implement a solution using another database layout, as long as the functionality remains.
We need to be the full and only owners of all code and have all copyrights to all the code that was produced for this project. This means that the code will have to be coded from scratch and not based on freeware or opensource code.
Payment conditions : payment will be made in two milestones : Half the payment will be given after login page + administration page are complete. Other half will be given when the userpage is complete and the full project has been tested and accepted.
Please include how much time you think it will take you to program this.