Meteor Kitchen - code generator for Meteor

Thanks @perak for all the hard work even if you have little time to this project! :+1:

Awesome project for sure! I have been fiddling with the kitchen site hoping to create a json sub-view in the object editor. I did this mainly because I find that it is hard to keep track of where you are in the object editor and the total json view is just too big.

Anyways awesome project and keep up the good work!!

New fancy example added: application showing radiation level from IoT geiger counter in spline chart real time (useful in case of nuclear war :slight_smile: ).

Live example is here: http://generator-geiger.meteor.com/

Source code (input file for generator) is here: https://github.com/perak/kitchen-examples/tree/master/example-geiger

Enjoy!

1 Like

Just got back from a trip and saw this latest M-K radiation app. I love it!

It’s funny, because that’s actually what I do right now. Cell phones instead of geiger counters, but it turns out they can still detect radiation!
http://gammapix.com/sites/ and http://www.imageinsightinc.com/

Meteor Kitchen just keeps getting better!

By the way, I ran into another issue that I’m not sure has a good solution yet. I’m wanting to use an npm module (node-opencv) via @arunoda’s meteorhacks:npm. That package adds a packages.json file to the root directory and you can add arbitrary npm dependencies there. Is there a way to define the contents of that packages.json file within a Meteor Kitchen definition file? It would be great to have “npm” as another optional field in the “packages” object and just define dependencies there…

Thanks again!

Great Application Perak! :smile:

By the way, maybe you want to check out meteor upload csv importer on my github repo and maybe you can integrate it on your dataview and forms example. It has bugs but it’s working locally.

Thanks!

New cool feature added in v0.9.43: describe application in everyday human language and meteor-kitchen generates code!

Something like this:

My dear computer,

I want site with three pages: home, customers and about.
In home page I want jumbotron with title: "This application is written in human language!", text: "Human to describe app, machine to write code!", button url: "customers".
Please create one collection: customers.
In customers collection I want three fields: name, address and e-mail.
In customers page I want CRUD for customers collection.
In about page I want text: "This application is written in human language using Meteor Kitchen, code generator for Meteor".

That's it, please create this application for me.

Thank you.
Petar

See source code is here: https://github.com/perak/kitchen-examples/tree/master/example-human
Live application is here: http://generator-human.meteor.com/

Enjoy! :smile:

3 Likes

Gotta love meteor kitchen.
This is what I’ve always looking for.

My only suggestion is, instead of being a generator, why not make it reactive?
e.g. the files and structures update everytime we save the JSON file. It’ll be a killer.

1 Like

Hi, I agree. Maybe you can write simple npm module (“hot-kitchen”?) that executes meteor-kitchen with all received command line arguments, but stays running and observing json input file (date/time modified or md5 checksum?). If input file is changed it executes kitchen again with the same argumemts.

Hi @perak I started building an app with Meteor-kitchen using the GUI and building it locally and I am very impressed by the result so far.

While building the app I had this error:

While building the application:
   client/views/home_private/accounts/accounts.html:743: Expected space
   ... {{optionIsSelected .userLanguage "FR"}}>...

Which I fixed with a workaround by removing the extra space after the {{optionIsSelected

<select class="form-control" name="userLanguage" data-type="string">
		<option value="FR" {{optionIsSelected .userLanguage "FR"}}>
			French
		</option>

This error occurred with all the Select forms and I posted a message on Meteor Forum.

Now I need your help because I am blocked when running the app.
I posted a help request on Stackoverflow and Meteor forum because when I start Meteor I am blocked with an error message code 8
Meteor Error Exited with code: 8 - TypeError: Object [object Object] has no method ‘config’

Overall, my feedback is that Meteor-Kitchen runs very smoothly but the adoption is difficult because there are so many fields in the GUI and I had to go back and forth between the code source, examples of code source and API reference page to understand them.

Thanks in advance for your support and feedback.

Bruno

1 Like

Hi Bruno,

I think you don’t need that dot: {{optionIsSelected userLanguage “FR”}}

Hi Perak
The space and the dot are generated by Meteor-Kitchen.
I removed the spaces like below and it seems to work well:

<option value="FR" {{optionIsSelected.userLanguage "FR"}}>

Hi Perak,

I am wondering if what is the direction of meteor-kitchen on router side of things? it seems that iron router is slowly going away and latter part of US summer, MDG is planning to integrate router into the core mentioned in their blog post.

Cheers!

Marvin

Sure, got it on radar

Meteor Meetup in Melbourne, Australia (August 5th) - Meteor Kitchen and human2machine was presented by Michael King. Video (non-official) is here: https://www.youtube.com/watch?v=4onSUkj4hKc

P.S. Can’t wait for official videos - want to see other presenters too.

1 Like

Hi Perak,

Great work!! I’m using Meteor Kitchen to build a prototype. What would you do if you have a field that’s an array and the values are selected from another collection? For example, a product has many parts, so the product collection has an array of part id. Could you please give me some pointers? Are there any examples? Your help will be greatly appreciated!!

Thanks,
Jeff

Hi @jchan202

unfortunately there is no magic way (not yet). What you can do is maybe specifying field’s property “input”: “custom” and set path to hand-written input template “input_template”. Path is relative to json and points to html and js file, without extension (for example: “files/my_control” is correct path to “files/my_control.html” and “files/my_control.js”). Generator will insert that code into your form.

Btw, if you make useful control, please share it with me, and I’l add that functionality into generator.

Thanks @perak! I’m a newbie to Meteor, but will give it a try.

Meteor Kitchen (v0.9.49) is now compatible with Meteor 1.2

Enjoy! :stuck_out_tongue:

3 Likes

Wow, that’s really impressive!

Now you can build and download android .apk from meteor-kitchen GUI - with single click!

(be patient: it takes 3-5 minutes - my server is $5 VPS…)

Enjoy! :smile:

2 Likes