kitchen-site icon indicating copy to clipboard operation
kitchen-site copied to clipboard

[Lets Talk] Some refactor suggestion on generator, repository management and future of the project

Open cyclops24 opened this issue 9 years ago • 13 comments

Hi @perak , Meteor 1.3 released and it has many improvement. I think it's time to refactor some part of generator for example these are my basic suggestions:

  1. Using npm based package for some wrapper package like moment.js
  2. ES6 support and some cleanup on generated code (from simple things like use let and const rather than var till import & export and ES6 module system)
  3. New folder structure for generated app
  4. Router selection between flow-router, iron-router or react-router (because now kitchen support react well).
  5. Fix some important _security bug_ on dependent packages like this and other security improvement.
  6. Use more maintained and more documented package from community for some part. (for example use alanning:roles rather than perak:user-roles)
  7. Close old issue or use label for organize them for some cleanup on this repository.
  8. Use more project management and source control tools that available here in github from milestone and split branching till gitter chat or other tools for extend project community and brighter way.
  9. I really love meteor-kitchen and want to know future roadmap and news about the project, maybe more update or more detail on What's Up? page useful or maybe better to split _version history_ page from _kitchen news_ (as a new page on kitchen-site) I think it's being useful for lovers like me to know really what's up in now and future not only version history and past changes.

_And one other thing:_ I still think that if you decide to open kitchen-cli source, _now it's best time_ because Meteor 1.3 comes here and I think many changes and new feature needs on meteor-kitchen and always teamwork is better and more reliable.

If you want lets talk about refactor suggestion or future of the project here.

Thanks for your attention bro.

cyclops24 avatar Mar 30 '16 05:03 cyclops24

@cyclops24

Thank you for this nice list!

You're right about all... but time I can spend on this (hobby) project is limited, so thing is going slow (and will continue to be slow) :(

Most of code was written in time when I was learning Meteor (my way to learn: create generator! :D), so generated code is far from perfect.

Project somehow survived all MDG's "earthquakes" (from Meteor 0.6 to 1.3) but I am not sure would it survive the next one - too much work for the single man (especially now with Blaze and React in parallel).

If I open the source, that will require significant amount of my time for review/test/merge etc. code and keep project moving in the right direction. I'll end in the same problem (maybe worst). Also, kitchen-CLI is written in C++ which additionally complicates things (not very popular in this JavaScript oriented community).

Maybe it's time to find some funding, assemble the team of (paid) developers and make awesome development tool from this project - something between webflow and ionic creator (actually I am already doing that with a new GUI - but again, moving too slow).

This is what I am currently doing:

  • CLI: React is not fully implemented yet. Adding missing components. Compatibility table is here: http://www.meteorkitchen.com/compatibility
  • New GUI: Working on a new GUI. More intuitive and more visual (similar to ionic creator), with social features (similar to webflow). Moving forward, slowly.

That's it (in short).

I am always ready to talk, let's keep this thread open.

:+1:

perak avatar Mar 30 '16 08:03 perak

BTW, I cannot post link to new GUI. It exposes user profiles and all their kitchen projects (users will have option to choose what to keep private before transition to a new GUI).

Here is few screenshots:

screen shot 2016-03-30 at 10 20 31 am screen shot 2016-03-30 at 10 22 43 am screen shot 2016-03-30 at 10 23 38 am screen shot 2016-03-30 at 10 24 15 am

(visual app designer is under construction)

BTW, database shown in screenshots is old. There is 3125 users and 4500 apps at the moment and growing - adding React to "kitchen" makes extra traffic :)

perak avatar Mar 30 '16 09:03 perak

Hi,Perak At first I thank for this perfect code generator. I think this issue helps to improve your project. I agree with cyclops24 opinon. and a funny thing I am in this picture :-) 6108a9da-f666-11e5-925a-3d9d8c719574

saeedjalalisj avatar Mar 30 '16 17:03 saeedjalalisj

@saeedjalali1 :D :D :D too bad no profile picture! Smile please! :)

P.S. chance to appear here was 3910/8, consider playing LOTTO :+1:

perak avatar Mar 30 '16 20:03 perak

Thanks for participants ( @perak & @saeedjalali1 ) for keep this open.

@perak new UI is very awesome and beautiful but for me CLI is more important :+1: because many things need port to react and more work and issue still open there.

Ok this is my new suggestion that I think maybe useful based on your talks: Because of that kitchen-cli was based on C++ I suggest to create kitchen parts independent as a meteor modules (like as you done for perak:roles or perak:join package for kitchen roles and join functionality rather than hard code that in generated app) with this approach we take these advantage:

  1. Other meteor community also can use some part of kitchen as a standalone package.
  2. We can update some part of generated app with a simple package update (for example for me multilingual is important if DataView available as a meteor package I can fork that and translate resource then I simply change my package for example from perak:kitchen-dataview to cyclops24:kitchen-dataview)
  3. Now I generate app and then polish them by hand (translate pages and change some form and code) but after sometimes you release new version that fix some bug or new feature but I can't regenerate my project because I done many changes because of this I forced to wait using new features in my next meteor project and my old projects can't use new kitchen advantage. But if kitchen parts available as a meteor package I can update many parts without breaking.

With this approach after some times we have:

  • A set of kitchen packages
  • A C++ based generator that able to generate more modular code and prevent many duplication for common parts like dataview, forms, ...
  • Many small community around these package set that can help you for maintaining and keep project live.

(I think need to say that you are the owner of this awesome project and this is my personal opinion please do not upset from me friend :wink: )

cyclops24 avatar Mar 31 '16 05:03 cyclops24

And @perak I also suggest see aldeed:tabular I think it's a good alternative for DataView also you can mix them with matteodem:easy-search for beautiful and configurable search functionality. (aldeed:tabular also support I18N for multilingual and also bootstrap theme, sort, pagination and other useful things).

You can also use aldeed:autoform rather than current form component because when you able to create schema why not use simple one line autoform form generation??

With using these packages and deprecate some part of kitchen like DataView and Form components you also have more time for spend in other more important parts (for example react).

From the other hand for react you can use reusable components from here.

cyclops24 avatar Mar 31 '16 05:03 cyclops24

I fully support you looking for funding and assembling a team. I think the project has a lot of commercial value and should be able to attract serious funding.

xauxatz avatar Mar 31 '16 07:03 xauxatz

@cyclops24 @saeedjalali1 @xauxatz thank you for suggestions. Most of them are usefull. I'll add milestones when I find some free time). :+1:

perak avatar Apr 03 '16 07:04 perak

BTW, what do you think about this CLI feature:

I plan to implement generator hooks - for each action it performs to call external (node).js file. For example: onCreateDirectoryStructure, onCreateRoute, onCreatePublication, onCreatePage etc. with all required arguments to perform action from your js. Inthat case you'll be able to override code that kitchen generates.

Comments?

perak avatar Apr 03 '16 07:04 perak

Hi, @perak I think this feature is very very very very nice :+1: I agree with you. I thank you very much for this feature

saeedjalalisj avatar Apr 03 '16 08:04 saeedjalalisj

Very very good idea. One of the main problems that I often spend a significant amount of time on is to figure out how to override auto-generated code.

On 4/3/2016 9:25 AM, Petar Korponaić wrote:

BTW, what do you think about this CLI feature:

I plan to implement generator hooks - for each action it performs to call external (node).js file. For example: onCreateDirectoryStructure, onCreateRoute, onCreatePublication, onCreatePage etc. with all required arguments to perform action from your js. Inthat case you'll be able to override code that kitchen generates.

Comments?

— You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub https://github.com/perak/kitchen-site/issues/270#issuecomment-204897928

xauxatz avatar Apr 03 '16 11:04 xauxatz

Nice!

kjetilge avatar Apr 03 '16 12:04 kjetilge

@perak, Woooooow, It's so good. I also needs this many times. Always repetitive task needs after code generation.

cyclops24 avatar Apr 03 '16 14:04 cyclops24