I would start by designing the database. Don’t forget about foreign keys. If you do that properly and are satisfied with the result generate all admin CRUD.
Now probably do some adjustments in the database schema. It’s hard to get it right at the first time.
After that design user roles and other auth items and place checkAccess() in proper places.
At last do some custom views adjustment to make most common tasks easier.