nova-framework / framework

Demo application using Nova - this is an extensive playground, use "app" repository for real applications.
http://novaframework.com/
MIT License
418 stars 211 forks source link

How you would like to be NovaIgniter (the default shipped Modules) from Nova Framwork? #548

Closed LuckyCyborg closed 8 years ago

LuckyCyborg commented 8 years ago

Dear friends,

now, as Nova\ORM being in a better shape, and probably closer to the final thing, it is time to prepare for the entering into development of the NovaIgniter, aka a series of Modules, which will be shipped by default into Nova Framework, forming the base for a future Application.

To note that those default shipped Modules will be easy to remove, just like the now present Demo Module, for a full custom implementation, and they will be well self-contained, to not require invasive changes into Nova's System.

Our basic ideas, for NovaIgniter, are:

The Backend (Administration) will use a new Template, based into AdminLTE. The Backend will contain support for Users Management with their associated Areas, Groups and/or Roles. A simple API and Cron Management will be also implemented.

As a special dedication for our friend and favorite Tester, who messed his time testing diverse DBALs and even the ORM, known there as @jimgwhit , there will be present a Dogs Module, which will demonstrate also the concepts of organizing the Content into associated Categories.

Then, what?

We can stop there with those default Modules. We can implement a Blog website style Frontend with associated Backend, with Posts organized into Categories. We can implement a News website style Frontend with associated Backend, with Pages, organized by Menu entries, and Articles organized into Categories. Not as last, we can implement another style, as you would like.

Then, lets discuss about what you consider the best and more useful structure of NovaIgniter. What you consider the best to have by default, yet simple to rid off, if is the case?

All the best!

tomvlk commented 8 years ago

Why change the structure again and again. Anyway, I don't really care anymore...

LuckyCyborg commented 8 years ago

@tomvlk I change nothing into structure, Tom. And you know well. :smirk:

There is about a concept discussed into #324 , and supported by @daveismyname , about shipping some Modules into Nova Framework, which form a initial/ready-to-go structure for the new websites.

LuckyCyborg commented 8 years ago

@tomvlk BTW, what Modules you would like to have at your disposition by default into Nova? Just the API, CRON and Users management, a Blog style website or a News style website?

Or you have another ideas?

dcblogdev commented 8 years ago

I like the sounds of this, these modules will be useful for

a) understand how modules work b) building on top of or just using as is.

More modules can be built of course, but to get things off the grounds we should limit them then more can be added later.

Lets have what you've suggested:

Backend system API, Cron, Blog, News

These are modules I have in my base CMS (just for ideas):

AdminBar - gives a toolbar at the top of all pages on the frontend with quick access to sections only when logged in. Codes - code snippets to allow running extra code injection Edit inline - ability to click on an element and make changes and AJAX saves the changes Gallery - standard image gallery Slides - Slideshow of banners Twitter Feed - custom twitter feed using the Twitter API User Online - see who is where on the site XML Sitemap - sitemap for search engines

They can be seen on this repo https://github.com/daveismynamecom/smvccms/tree/master/app/Modules

LuckyCyborg commented 8 years ago

@daveismyname Dave, thanks for suggestions! Considering that Nova is not essentially so different from SMVC2, those modules are really useful code to be ported to Nova with some adjusting.

In other hand, to understand that you are of opinion to have our NovaIgniter as a small, but full-fledged, CMS?

dcblogdev commented 8 years ago

No I was mentioning those just for ideas sake, I think build a CMS should be down to the end user, Nova should be about providing a solid framework, the NovaIgniter is a bit of a springboard to give sample of what can be built and how they are done.

I would be building a CMS more than likely but it's not the purpose of Nova.

LuckyCyborg commented 8 years ago

@daveismyname Okay, then we think the same about NovaIgniter objectives.

Clearly, we have to promote a sane Users management, using the best known practices, to avoid eventually risks resulted from a poor implemented design into. As ideas, maybe even structured into two designs, as simple and advanced, considering that not all of us need a very advanced Users management, completed with their Groups or Roles...

Also, I think about a new Frontend Template, also a Premium one, like AdminLTE, as a counterpart to. Suggestions about it?

dcblogdev commented 8 years ago

about the simple and advanced a good idea I'd rather have the roles but I'm sure not everyone will do.

Have a nice theme for them it's also good, you'll see in my repo I'm using AdminLTE it's a great theme, we don't want to over complicate things too much through with it being a starting point so need to find a nice balance.

LuckyCyborg commented 8 years ago

@daveismyname When I talk about "simple" authentication, I think about User belonging to one Role, and eventually those Roles being defined into App's Configuration, in a "hard-coded" way.

While "advanced" one being ability to have a user belonging to many Roles, i.e. "editor", "moderator", "staff". Sure, this second one style imply entering of our native ORM, to handle those belongsToMany.

In other hand, I agree that AdminLTE is the best free, yet Premium, theme for a nice Backend. Sure, we can use for the Frontend (public) Area the now native Bootstrap 3.x, but if there are pertinent suggestions for a versatile free Premium theme for using into Frontend Area, I think is a nice to have.

BTW, our little Nova\ORM happens to be very lightweight for an ORM, practically with no big differences of response speed compared with using directly Nova\Database, thing about what I'm very proud. And it sports a Laravel-esque API, think about somthing like a mini-Eloquent... :smirk:

There you can see the Nova\ORM into action:

http://smvc3.giulianaeassociati.com/demos/models/orm_model