I need a web UI (preferred in PHP) for an application. Right now everything's hardcoded in the application, but I want to move the configuration to a MySQL database. The project only covers the UI, not touching the application. However, the project will not be considered complete until the configuration works completely with the application in production (testing will not be done by you, though we'll try to gather as much debugging information as necessary if needed)
If you don't have a strong track record here (at least 5 ratings avg above 9), don't bid more than $75 (else it will be considered bidding spam), but DO consider bidding or talking to me to prove your worth.
## Deliverables
It works like this:
Customer (Just a string - only admins can see them or create them) is top level object (for user grouping, too)
Customers has many keywords (simple text string)
Keywords have Locations (Hardcoded list managed by admin - there might be many of these, so a "combobox" with autocomplete would be better than a dropdown for the UI)
Locations have a configuration (data type):
Campaign Name (freetext for user)
URL Match (regexp - perl flavored regexp and the UI should have some simple engine for validating/testing the regexps entered)
Report Recipients (arbitrary list of email addresses)
Affiliates (arbitrary list of strings)
There needs to grouping info so that a user can define a group of affiliates or a group of email addresses so that a big group can be added/removed from many "configuration"s quickly without needing to do them one-by-one. It would be nice if higher level users could share groups with users below them too. One other thing on this I mention below...
Users have 4 levels:
Admin
Supervisor
Team Leader
User
The lowest level of User can be given access to keywords and each level up can see the keywords of his subordinates. For now, any user can add a keyword or remove his (or his subordinates) keyword, and superiors can grant/revoke access to any keyword that they can see to anyone below them. Supervisor will be one-to-one with a customer object (from above) so each "Customer" will have only one Supervisors, and possibly many users below. Admins can see across customers.
There should be an option for bulk import/export/changes via an import/export CSV feature, as the teams who use it love using excel to manage bulk changes. The groups I mentioned above are supposed to be helpful for the same reason. As such (this is the thin I promised to "mention below") I'd like for the way groups worked internally to actually save the data to the database as a collection of entries (emails or affiliates), and when a "configuration" is read from the DB to be displayed in the UI, try to determine if there is a bunch of entries that consitute a group and display it as such in the UI (so the DB always has a flat list, and the grouping only exists on the UI level). If you have a better idea of how to let the groups co-exist with the CSV import/export, let me know.
The system also produces simple reports which will work as follows:
There are 3 parts of the report - counters (just incremented numbers) and a list of URLs each which get reset daily (though we need to be able to show counters from previous days) and results (no results is "good", having results is "bad" just FYI) which consist of 2 strings (one will be a multiline string containing basic HTML - just needs support for tags < a > < b> and < br > and should support UTF-8 characters). Results will be tied to a specific "configuration" from above, and available for viewing by anyone with permission to edit a configuration.
Counters exist for the following stats:
Total scans per day
Total locations scanned per day
Total keywords scanned per day
Total domains per day
+
List of URLs per day (should be links)
Let me know if you have any other questions. Also, if this goes over well with my customers, I might have a follow-up project which is closely related - very similar inputs, but different reports. Waiting to hear from you.