jadjoubran / laravel5-angular-material-starter

Get started with Laravel 5.3 and AngularJS (material)
https://laravel-angular.readme.io/
MIT License
1.66k stars 400 forks source link

Laravel & Angular 2 starter - Design document #288

Closed jadjoubran closed 7 years ago

jadjoubran commented 8 years ago

Hi All,

I have started working on the design document for the next major version.

I added a few ideas, I'd love to get the community's feedback. Feel free to leave suggestions or comment here

https://docs.google.com/document/d/1OlOgMb3Z19T1RAE79jDyJ9hMXNZKaNIlynSRnKpyhIw/edit?usp=sharing

😄

jadjoubran commented 8 years ago

@paulsthorpe offering help 😄 The design document is a bit outdated though

Bodom78 commented 8 years ago

@jadjoubran Have you considered using JSPM as a package manager for the Angular2 version?

We are currently evaluating Angular2 development at work and the JSPM 0.17 beta seems quite good with the TypeScript transpiler.

Combined with Hot Reloading and Browsersync it can really speed up larger application development.

While I'm not a fan of the structure this ng2Boilerplate is one of the more comprehensive I've seen.

The downside I believe is that it's does add some additional complexity and more places for errors to occur when users go to setup their project for the first time.

jadjoubran commented 8 years ago

Hi @Bodom78, I'm in your timezone :D I just gave this talk at NDC Sydney

Are you using JSPM outside of Angular-cli? The thing is, for Angular 2, the core team is doing much of the work that was needed in Laravel & Angular 1.. For example: project setup, generators, tooling, etc.. But most of these stuff are taken care of now in angular-cli so I find we'll be reinventing the wheel if we try to setup the angular side of things.. So I was thinking of making a package which will allow people to easily upgrade to newer versions

Let me know what you think! I might've missed something

Bodom78 commented 8 years ago

@jadjoubran Hey, Welcome to AUS. Hopefully your talk all went well.

I was thinking about this earlier and looked further into the angular-cli and this may be a better fit for the sake of simplicity.

I think the majority will not be building "large" applications/platforms with the starter which as of now I think JSPM handles better. Also there would be nothing stopping someone from integrating JSPM themselves if necessary.

born2net sums up some of the pros quite well. Another pro is being able to hot reload modules as it saves so much time on large projects.

jadjoubran commented 8 years ago

Thanks it was great! Okay makes sense.. Then if the new version becomes a package, it means that people can install Angular however they want.. and then just install this is a "package" to their Laravel app.. What do you think?

Bodom78 commented 8 years ago

Agreed, as this will keep with the theme of this being a project being a "starter" to build upon as needed and not including too many additional libraries/dependencies.

jadjoubran commented 8 years ago

@Bodom78 yeah exactly 👍

jadjoubran commented 8 years ago

@chihab @flick36 @hackur @kiro64 and whoever's working on Angular 2 so far, I would love to get your feedback on the below:

Any feedback, concerns would be greatly appreciated 😄

flick36 commented 8 years ago

What do you mean by "Package" what would be the workflow?

jadjoubran commented 8 years ago

@flick36 just as you would install any Laravel Package.. composer install .. add service provider publish vendor files (if required)

it's still not clear what kind of features we can present but if you think about it, everything that Laravel-angular-material-starter does, is now available in angular-cli Which is awesome, if you think about it. Here are the list of features that we used to take care of, but now are taken care of by angular-cli:

jadjoubran commented 8 years ago

Another thing to add is that Laravel is embracing more and more API development In version 5.3 we now have a route file for web and another one for API All of the boilerplate that we were working on.. is not finally part of both frameworks 😄 Which pushed me to rethink what can be done for the upcoming versions of Laravel & Anuglar

flick36 commented 8 years ago

We finally have Stable Angular 2! :tada: let's do this!

paulsthorpe commented 8 years ago

A package sounds like a great idea, that will be useful for a lot of people. My first time setting up a combo Laravel and Angular 2 project I spent quite a bit of time just working on getting Laravel and Angular to play well and to figure out a decent folder structure. And tbh Im still not entirely happy with how I set it up.

jadjoubran commented 8 years ago

Hi @paulsthorpe Did you set them up in the same folder/repo? Having the new version as a package means they won't necessarily be in the same folder/repo Also can you list some of the challenges you've faced? so that we can take them into consideration for the next version 😄

paulsthorpe commented 8 years ago

If it is a package, then the components/services/etc and angular dependencies are going to be in the vendor folder right? And then they can be compiled to the public folder.

That is an assumption I had. Maybe I am wrong. I get that though, since we dont usually push the vedor folder @jadjoubran

jadjoubran commented 8 years ago

If it's a package, then there will be 2 different repositories. One for Laravel and the other for Anguular. The package itself will live in the vendor of the laravel project, but certain assets can be "published" to the app. However all the Angular 2 code will be in the second repository which is meant for angular 2 and typically generated by angular-cli.

llstarscreamll commented 8 years ago

The Angular project could be like Laravel packages philosophy too? I mean something like:

laravel_angular

Every Laravel package is just like plug and play, just add the service provider on the config/app.php file and that's all. It's a great way to build large projects, and it's very useful to reuse and maintain. Would be it a good workflow on Angular, do you think so?

Hey!! Really really great job man!!

globsecure commented 8 years ago

Big project! Congrats man!!!!!!!!!

jadjoubran commented 8 years ago

Thanks @llstarscreamll It's probably going to be 2 lightweight packages.. one for Laravel & another for Angular as you mentioned However as usual, we can't go ahead and develop User Management & Customers as these are specific.. The packages should be usable for everyone Especially that Material 2 is still in Alpha

llstarscreamll commented 8 years ago

yes @jadjoubran , I totally agree with you, the users and customers management were just package examples that can be easy plugged to the existing app, like Laravel way.

And what you think about adding multi language support? may be from Laravel lang files? or Angular side?

jadjoubran commented 8 years ago

This would also require some kind of recipe #149

puahyan commented 8 years ago

hi, is it mean angular1 ,version3.4 will be obsolete, replace by angular 2 project ? then angular1 with larael will be no longer support ?

jadjoubran commented 8 years ago

It's not going to be obsolete, if there are critical issues that needs to be fixed I will fix them for sure However we might not be adding new features (or maybe less frequently)

puahyan commented 8 years ago

oh, for your knowing, will google continue to upgrade to 1.6 and so on ? i think this stack currently suitable for small to medium size projects. for long term.

jadjoubran commented 8 years ago

Yes I think there will be a version 1.6 Here's a blog post

jadjoubran commented 7 years ago

Upcoming version brainstorming is here 💡

Any help would be greatly appreciated 😄 Thanks!

goowikns commented 7 years ago

When will angular 2 be implemented?

jadjoubran commented 7 years ago

I honestly think it's going to take a while.. especially that angular-cli is still in beta and I'm currently overwhelmed with work :( But anyway it's going to be just a thin layer, maybe a response macro on the laravel side, and an API service or similar on the Angular side

ghost commented 7 years ago

I hope to see you soon ( Laravel 5.4 + Angular 3 + Material 2 + Fuse Angular 2 Material Design Admin Template ) :)

DedSec49 commented 7 years ago

They are skipping Angular 3 and straight away coming with angular 4.

jadjoubran commented 7 years ago

Started the work here

jadjoubran commented 7 years ago

🎉 Website Repo