Advise needed - which Rapid Application Development Framework using PHP and MVC meets this specific need? - model-view-controller

we are a parents initiative who runs a small kindergarden / child nursery and we set out to build a basic web based documentation and reporting application for our nursery.
After spending a week doing research on the various PHP MVC frameworks, I have a few questions that I could not answer myself - even after having a closer look (installed on local machine) at CakePHP, Symfony, CodeIgniter, YII and Joomla.
The goal is to build a web application where site managers, staff and parents (roles) can log in to do simple tasks, depending on their role (hence I need a RBAC). Site managers will for example be able to add staff to the database, staff will be able to add children and do some documenation on children (select a child and enter details on special needs etc.). Parents should be able to update information about who is picking up the child, or inform the staff if a child will not come in at a certain date.
Now, since this is all basic CRUD with only a few tables underneath, tables connected via some foreign key constraints, I would like the framework to generate CRUD skeletons for me.
And since I need to manage roles and limit access to certain pages, I would like a basic user management out of the box.
Plus, PHP and MySQL and MVC are set - otherwise I would have used Oracle Apex as I have some experience with that.
So, I looked at a vast amount of PHP frameworks and found the following to be promising:
CodeIgniter (with Bonfire plugin)
Symfony2
YII framework with GII
CakePHP
Joomla
BUT none of the frameworks I looked at seemed to fit my need:
creating CRUD skeleton pages based on my ERD with foreign keys (MySQL InnoDB) / Scaffolding
offering a basic user management out of the box with up to date security measures in place (passwords stored using phpass or salted hashes & md5, user registration, defining roles and limiting tasks to roles/users).
If somebody could suggest a PHP Framework that comes with those two requirements build in, I would be very happy to hear about it. THANK YOU very much in advance!!
(I really liked CodeIgniter because it was simple to set up and lightweight, I liked the Bonfire user management plugin but was disappointed when I found out they sacked scaffolding in the lasted release
And I liked Joomla for its user management, but found it quite hard to get started on component development, plus no scaffolding).

You should check FuelPHP and its ORM, Oil and Auth packages. It's really great. If you liked CodeIgniter, you'll probably love Fuel.
http://www.fuelphp.com

Related

Using in a Spring project an admin site from other frameworks

Spring Boot doesn't contain an admin site.
By an admin site I understand the staff only section of the site for admins and editors to creade, edit or delete information.
With Spring Boot you will have to create write the admin site by hand. It will take labour of several people (at least a frontender, and maybe an analyst and maybe a UX designer). And anywah, an admin site is a ton of JavaScript and business logic.
Anything simple is not convenient to use.
On the other side, there are web frameworkds that contain an admin site (either out of the bos or as a pluggable module). Examples, Django, Laravel, Ruby on Rails. Let it be Django.
Could you tell me whether it is prodent for small projects to combine Django and Spring, setting the same database for them. I underline once again that it is only for small projects.
So, Django and Spring work in the same database.
And their models correspond to each other.
In the project Django will be responsible for:
Creating tables in the database (including migrations).
Admin site (including validation of data input by our staff).
Spring is responsible for:
Business logic (interation with ordinary users, that is not our staff).
Saving data input by ordinary users in the database (including its validation).
There is another way possible where we create models in Spring, then create tables in the database and then:
python manage.py inspectdb cities > models.py
This way django will perform reverse engineering and create a model from an existing table.
I have tried this in practice. Definitely it is possible. And why not: it is just a database with two superstructures over it (Django project and Spring project).
Could you tell me whether this is reasonable or absolute nonsence?

Laravel - Architecture question for multilingual wwebsite with control panel and more

Good afternoon all,
I am relatively new to Laravel and software design. Recently my position within the company changed and I will now be developing the website (both back and front end) plus some utilities (forms, submitting data to database for ISO 9001 compliance etc.).
This will be an ongoing project as part of my role, so I expect this "task" to last 2 years. I have a decent understadning of PHP, HTML, CSS and have started to study Laravel.
The objective is to have within 1 year a:
CMS with CRUD capabilities for a multilingual website (or better various domains .cn, .it, .com will point to the locale version of the same laravel instance)
CMS back and front end for the website + blog
A bunch of utilities that are more concerned with submitting forms, logging data etc.
The question is: "What's the best way to GLUE all togehter?"
Should I have two separate Laravel installations (one for the website and one for the "forms/ERP part"? Or can I do that all with one installation? Pros? Cons? Things to consider?
I have a decent idea on how to implement the single components, just struggling to think long-term consequences and how to structure it all.
Thanks
Based on what I understood , You don't need to build more than one Laravel project .
You'll use Laravel MVC and sperate the folders in view , controllers For Admin (CRM) , and front .
Some packages you'll need :-
For Mutli-langugae
https://github.com/spatie/laravel-translatable
For roles and permissions
https://github.com/spatie/laravel-permission
For General Settings Crud
https://github.com/spatie/laravel-settings
BTW , you should know how to deal with blades which is powerful templating engine that is included with Laravel :- https://laravel.com/docs/9.x/blade
And you should know the basics of using the Mysql and the Elquoent Model in Laravel :- https://laravel.com/docs/9.x/eloquent
That's will be a good start for your task .

Multi domains for one project or multi domains for multi projects

I'm planning to make the graduate project about the e-commerce site using ASP.Net Core 2 MVC and SQL Server, but currently, I have some troubles:
Suppose I have two domain and sub-domain: domain.com and manage.domain.com. The domain.com will like the normal e-commerce site which allows customer go to browse, search, and buy the products. The manage.domain.com will only for staff to log in and do their stuff like manage staff, order, etc.
My questions are:
Is there possible to manage two domains on one MVC project or I have to split them up? If it is possible, then how can I manage it just in one MVC project?
If I have to split them up to two projects: one for e-commerce, one for staff, then should I create the WebAPI to connect as a data layer to communicate the projects with the same database as the suggestion of Sagar Shirke?
Are there any other approaches to my problems? Any comments and idea will be very very appreciated.
Thanks for reading my problems!
After thinking about this some more I think you are taking the wrong approach.
Why don't you look at using a premade framework with an admin template page to manage typical admin task (users, passwords, custom data, etc.) ?
Instead of using a subdomain like sub-domain: domain.com, you could use domain.com/admin.
Here is an link to ASP.NET Boilerplate templates. I would recommend you look at the simple todo task examples and see if this is concept is what you want. Using the free Module Zero admin page templates to develop quickly. I would make sure you do the tutorials and read the documentation.
This is a great tutorial on how to use subdomains.

Complex RBAC Codeigniter Library (for fine grained users permissions and group based limits)

i am in the middle of a project that evolved in a direction that it require some sort of RBAC integrated with the authentication, but with advanced functionality (setting "caps" or "limits on users, based on their role/group). A SaaS site with paid and free plans like GitHub, Basecamp etc. can be a good example.
I already tested:
Ion Auth - http://github.com/benedmunds/CodeIgniter-Ion-Auth
Wolf Auth - http://github.com/Vheissu/Wolfauth---A-Codeigniter-Auth-Library
Perm Spark - http://getsparks.org/packages/perm/versions/HEAD/show
Codeigniter-RBAC - https://github.com/pdiddy/CodeIgniter-RBAC
and some other (one for all: Bonfire). Some of these have only authentication features, some lacks auth but provide RBAC. None of these makes use or mention about the possibility to have user limits.
I started developing a similar library myself (trying not to break Ion Auth function naming, because i am moving out from there), but, considering that i have only finished to plan the database schema and implement it in migrations, i think it is better to use something ready and tested (if it exists) instead of reinventing the wheel. Does anyone know a library to accomplish this particular tasks?
I am working with CI: 2.1.0 + HMVC, thinking to add DataMapper or RedBean for this particular purpose.
Cant think of anything else right now except cibonfire. cibonfire provides Auth and RBAC both. Have been using for more than 2 years now.

Codeigniter admin/auth system?

I'm starting a new project with codeigniter, and I'd like to start on a system that's already built so I can reduce the time of development.
Is there a good system that handles user authentication along with an admin interface to manage users that can be easily expanded to a web-app?
If this is too vague, I can expand
This thread here appears to have some answers
But the question was more about libraries. Either way, implementing some of the things on that thread would save you time.
You're looking for is a Content Management System (CMS).
There are a few ones out there that use Codeigniter as a framework for their CMS.
Edit: Even if you can't find a boilerplate CMS that you like, you can google about CMS's to design a simple one of your own as there's LOTS of tutorials and information about requirements and such when you know the term CMS.
I recommend Redux Auth for CodeIgniter. It comes with an example implementation, and can easily be used to manage user authentication for your CodeIgniter site. I just implemented Beta2 with the latest version of CodeIgniter, so while it's not actively updated, it still works with the latest build.
I'm using Bonfire as default admin interface.
I've just started looking into Bonfire:
Bonfire helps you build CodeIgniter-based PHP web applications even faster, by providing powerful tools and a beautiful interface you won't be ashamed to show your client.
Ready to customize Admin Interface.
User Management with Role-Based Access Control.
Fully Modular codebase.
Built around HMVC.
Database backup, migration, and maintenance.
Powerful, parent/child capable theme engine.
Simple Email Queue to keep your ISP happy.
UI-based module builder.
Looks good at first glance!

Resources