Create a hierarchical client structure with permissions and admin users in a Laravel application and build a CRUD user interface to manage client hierarchies, permissions, permission assignments and admin users
We need an admin GUI and the backing DB changes to create, update and delete clients, who themselves can have multiple sub-clients (parent-child hierarchy). This hierarchy needs to be represented in the existing database, so that each client can have an arbitrary amount of sub-clients, but always max. one parent.
Additionally we need permissions. These permissions must have a name and can then be assigned to clients.
We also need to have admin users which belong to a client. An admin user can be flagged as a superadmin, which will have the possibility to edit all admin users, clients, permissions and the attribution of permissions to clients.
Permissions are not client-specific but global, so all permissions can be used for all clients.
The following are proposals as to what data should in any case be present in the models (and in the DB of course). Further suggestions are always very welcome. Technical properties like timestamps and ids are omitted here.
Admin users: Username, Password, Latest login (datetime), Superadmin (e.g. as a flag)
If you have different ideas on how to represent the data you are very welcome to do it your way. I just ask you to adhere to the naming and coding conventions you find in the existing application and database. Please use english names for variables, models etc. in any case. All database changes should be reflected as migrations as it happens when you are create a model via 'php artisan make:model'. Please take care that all subsequent changes to the model or the database are represented in the migrations.
The goal is to have a CRUD admin user interface, which is accessible through a distinct admin url within the existing application (maybe /admin). It can be used by all admin users and each admin user can only work on his direct (sub)clients and their permission assignments. They can also create, update and delete admin users for their clients and for themselves. Permissions are always assigned to the clients, not to the admin users. This step may follow at a later stage.
All superadmins can edit all clients and all permission assignments. Additionally they can create, update and delete permissions. Permissions that are deleted, are flagged as inactive and can no longer be assigned to a user, however remain assigned to those users that already have them.
Superadmins can not be created in the GUI, this only happens directly in the database for now.
There is no need for a fancy design, it is completely sufficient to use the standard bootstrap classes.
Apart from that, you are absolutely free to create the user interface as you deem convenient. If you need or want dummy drawings of the GUI as we imagine it or of some elements in the GUI , I can provide you with those. I am always open for suggestions.
You will get an account to access a GIT repository in which the code resides, where you will access a development branch in which you commit and push your work once it's done.
If you want, you can use the docker-compose file from the repo to setup a working docker environment in which you can quickly start your work. This is of course not obligatory, you can use the environment of your choice.
Communication is possible by email 24/7, though response time may be a bit longer due to different time zones. We can of course always make an appointment for a Skype/Zoom/MS Teams call, if you think it helps you more to get the work done.
In this first step we are looking for 40 hours of work put into this work package.
56 freelancer chào giá trung bình €26/giờ cho công việc này
Hello Laravel is my core skill. In recent, I have completed one Laravel project successfully. I can prove my skills in the 40rhs work. Let's discuss the project in detail. Thanks Dusko