*Addition of a new module/section to an existing cakePHP website*
The module will allow user to view/edit/delete user data. Note that other basic user data from other pages is already being saved. The data from this page will go to/come from new tables/master tables.
The input data is broadly categorized into 18 sets. These sets are to be displayed in an efficient manner preferably in accordian (or any other efficient mode) kind of display on a single page.
Each set has its own simple table for storing data. Data is mostly numeric. There will be multiple rows of data in each set and user will have option to add/delete these rows. Sample code is present.
Each set has an output field. The output field is calculated by a simple formula using data of its own set.
The page has a final submit button. When the user clicks this button, the data from all sets are picked up and according to given formula output is generated. The output is displayed in a tabular format and a pie chart format. The user will also be given a category depending on the final value calculated. This will involve adding one column to an existing table to save the user's category.
Developer needs to code from the frontend to backend for this module and integrate it within the working website.
There will be dropdowns on this page, which will be populated from three new master tables in the database.
When the user will type anything in this dropdown the user will be shown matching options (similar to auto-select feature). There will be fields that will be populated from database depending on the input provided by user. Basic sample code is in place and can be re-used/modified for implementing auto-select feature.
Another requirement is to provide a page to admin to upload text file to update data in these three master tables - the admin user will provide three comma separated text files which need to be uploaded, parsed and then used to update the underlying master tables. In a few other tables, admin needs a section to directly update 2-3 fields which can be done from this page.
Code needs to be responsive and follow all good programming practises.