An existing system has users. As part of a project to increase system security, your company has asked you to upgrade the system's existing user access to role-based permissions. There is currently no interface to assign existing users to groups (i.e. roles).
Note: a user may be assigned to more than one group.
- Commit your code (via git) as if you are working on a production project
- Create a management interface for managing users with a focus on updating existing users
- Create backend CRUD code with a focus on reading and updating existing users
- Bonus (not a requirement for this assessment): Add front and/or backend code for creating and deleting users
- Submitted code provided must contain:
- PHP 7.3 or higher
- MySQL/MariaDB
- A basic users table has been provided
- A basic groups table has been provided
- Assume the environment is a LAMP stack with PHP 7.3+ and MySQL or MariaDB
- Assume a list view for users already exists
- You may leverage any frontend or backend framework to accomplish the assignment — be prepared to explain your choices
- You may create any programming structure you feel will accomplish the task effectively
- You may modify the provided databases tables or create new ones as needed
You have one week (7 days) to submit the assessment.
It is expected that you will spend no more than 4 hours total on this assessment. You may spend more or less time as you feel appropriate to complete the assessment.
Prioritize the areas of development you feel are most important and directly address the requirements. If your submission is not complete after one week, submit what you have.
You may submit your code after the period has elapsed, but you will be graded down for the amount of additional time taken.
Your submission must include:
- All files necessary to run your project
- Database dump or related database manipulation files
- If composer is used, please only include the composer.json and composer.lock files — omit any
vendor
directories - If npm/yarn is used, please only include the package.json and package-lock.json files — omit any
node_modules
directories - A readme or other instructions for how to build and run your project
Zip up your project folder (remember to include the .git folder) and email it to the contact who provided this assessment.
This project is for candidate evaluation purposes only. No ownership rights are granted herein. Code provided as part of this test will not be used as part of any commercial or personal applications and will be deleted following evaluation. This project is not intended to be defined as work for hire and will include no compensation for time spent.