kisanjong / rotalabutterfly

Planted Tank Nutrient Calculator
6 stars 8 forks source link

What's Next! #1

Closed kisanjong closed 9 years ago

kisanjong commented 9 years ago

Post created so we can all get together and discuss how we should go about this.

Your ideas and comments please.

Thanks :)

ravenwilde commented 9 years ago

Well... why don't we get started by introducing ourselves and respective skill-sets? I'll go first...

My name is Jennifer... I am a planted tank hobbyist and front end developer. I am proficient in HTML, CSS, Sass and pretty good with Javascript & PHP. I work on a Symfony based project during my day job but have no preference how you all want to handle the back end as I am pretty flexible although if you go Ruby it will take me a bit to get up to speed.

That's.... me :)

ravenwilde commented 9 years ago

Oh... and I've worked before with HighCharts, Charts.js and Google Charts api... so I'm ready to plot stuff out all pretty like.

kisanjong commented 9 years ago

Hi Jennifer :) Jason here.

I'm more of a admin with a server (http://rotalabutterfly.com) for a few aquarium related websites.. www.barrreport.com being one of them.

Along with helping run this project, I can help by getting feedback from the users of rotalabutterfly.. What works, what needs changing, new features if any.. Etc.

Thanks :)

kisanjong commented 9 years ago

I think we should stay with a more friendly language as mentioned php, javascript and SQL if its even needed?

Moving away from ruby?

kisanjong commented 9 years ago

For anyone that is not apart of the development team but would like to have your say you are more than welcome to join the conversation at

http://www.barrreport.com/forum/barr-report/aquatic-plant-fertilization/225720-a-new-nutrient-calculator

Thanks :)

ravenwilde commented 9 years ago

Do we have an index of the old site plotted out anywhere? Its been years since I used it and I don't remember things like:

fablau commented 9 years ago

Hi Jennifer and Jason, I am Fabrizio. I met Jason on the barrreport, I am a passionate planted aquarium lover, as well as a web programmer. My specialities are PHP, MySQL, JavaScript, jQuery, CSS and HTML (Perl also, but nowadays is outdated). I have also good knowledge of basic system management and configurations on Linux, but, I say it right away, I don't know Ruby at all!

Jennifer, if you feel confident working on the UI, I could take care of the more mere backend (PHP and MySQL). Any more people interested in jumping on the wagon?

kisanjong commented 9 years ago

Welcome Fab great to see you here :)

kisanjong commented 9 years ago

Hi Jennifer

Most of the answers you need can be found here

https://github.com/kisanjong/yet-another-nutrient-calculator/tree/master/constants

The best way to see what's going on is to use the running code here

http://yanc.rotalabutterfly.com

fablau commented 9 years ago

Thanks Jason, glad to be here!

I think the best and easy way to go would be to establish a nice HTML interface (Jennifer?), and interface it to the back end via AJAX with jQuery (very easy to do). That would give high responsiveness, similarly to Wet's calculator. I could work on the back end interfaced via AJAX. I can help with jQuery if needed. jQuery could also help us to create a very responsive interface (jQuery UI is very cool!).

Just my ideas to start, in some way :)

fablau commented 9 years ago

The constants at: https://github.com/kisanjong/yet-another-nutrient-calculator/tree/master/constants

Can be easily put into a MySQL database for retrieval via PHP. That's the easiest part :)

kisanjong commented 9 years ago

The constants are great news that will save a lot of time :)

In the back end can we add a admin interface so new products can be added with ease?, it does not need to be anything special just basic with name and contents fields I.e. fe % etc

Fab your plan sounds good to me :)

Should the layout stay the same? Left side calculate, right side result?

Thanks :)

ravenwilde commented 9 years ago

That could be a way to go... I have been wanting to work with React.js though, I can still make Ajax calls to the database or API with React - thoughts?

Either way - I like to plan things out beforehand. I will sit down this weekend and draw up some super basic wireframes/flows we can review before I jump into code. Sound good?

ravenwilde commented 9 years ago

Also, Hi Fabrizio! Welcome to the party :)

ravenwilde commented 9 years ago

Question - how/where do we handle the mathematics & calculations?

fablau commented 9 years ago

Hi Jennifer! React sounds good to me, I have never heard of it, but if you are familiar with it, that's ok with me. I was thinking at jQuery because it also could help us with the UI (possible sliders, graphics, etc) and because it is probably the most known and popular JS library out there. So, anyone in the future can easily put his hands on that. Just my 2 cents!

I think the best way to handle mathematics would be via PHP with AJAX calls. I have already done several projects that way, and works great.

To Jason: Yes, I like the idea to keep the old interface structure, it is intuitive and people are already used to it. And of course, we can easily make a back end interface (sort of "Control Panel" or whatever). That's easy!

ravenwilde commented 9 years ago

I'm glad to hear that you want to handle the mathematics with PHP - I feel wholly unqualified to be in charge of that part :)

React is fairly new-ish - it was is a framework Facebook has been developing for the past several years so its surprisingly robust. I'm going to give it a go for this project and see how it does. I'll probably use elements from Bootstrap for the interface itself.

Other questions:

1) to clarify: we're building the calcs at yanc.rotalabutterfly.com as well as dropcheck.rotalabutterfly.com and glut.rotalabutterfly.com correct? Perhaps we should focus first on getting yanc.rotalabutterfly.com working and then move on to the other two, releasing them as we go.

2) What kind of git workflow do we want to use? All contribute directly to the repo or pull forks and then contrib via pull request?

fablau commented 9 years ago

Ok Jennifer, I see your point, and that would be ok for me (despite I won't be able to put easily my hands on your code later on, just because I don't know that framework at all). So that I'd leave to you anything interface-side (I hope those frameworks are enough powerful on that side). Let's see what Jason says about that.

I am ok with point 1. And I leave point 2 to Jason's decision.

I am wondering if there will be any more contributors here, because that way we could have more input about all this.

Thanks!

ravenwilde commented 9 years ago

RE: Bootstrap... I'm planning to 'wrap' it in this theme https://bootswatch.com/sandstone/... its nice and warm and I like the green navbar. Reminds me of a planted tank.

As far as react.js being powerful I'm sure it will be fine since from a technical standpoint we're not doing terribly much, we don't need a full MVC framework, just some state-based interface jazz to make it interactive - and that's exactly what react was designed for :)

kisanjong commented 9 years ago

@ravenwilde

our first point of action is yanc. as this is the main feature the users are after then once this is completed it would be great to update the other features as extra features, along with maybe some new ones.

I'm happy to use whatever language you guys feel happy with as long as it does what is required and new features can be added to that at a later date.

Bootwatch is a nice looking theme if Fab is happy to use that then I am.

With bootwatch can we have a responsive theme for desktop and mobile devices?

As different people are creating different parts of this project what method of github would you recommend?

Thanks :)

kisanjong commented 9 years ago

@fablau

Im working on trying to get more involved in this project as I agree the more input the better.

We need to have visual as well as text based results output from the calculator/s.. Text and Charts etc.

kisanjong commented 9 years ago

We also need language files that can be selected by users that speak different languages.. English, French, German, Japanese etc..

kisanjong commented 9 years ago

Save results as PDF, Printable results?

fablau commented 9 years ago

I am ok with that Jennifer and Jason! We can everything you like once we have PHP, MySQL and AJAX. Ready to go!

ravenwilde commented 9 years ago

So.... workflow for Git- I suggest that we establish an agreed upon workflow prior to starting anything. I can come up with a proposed flow if you like, just not this second because its Friday and I am about to kick back for the evening... I have a rough idea of what we should probably do but I want to look around at some recommended workflows to run by you guys first.

So far this all sounds great though - check back with you both tomorrow.

kisanjong commented 9 years ago

Sounds like a good plan to me Jennifer :)

Please go ahead with the workflow I'm sure me and Fab will be more than happy with it :)

Any extra features will happen over time for now it's about getting the main calculator running and tested by experienced users of the original yanc.

Enjoy you evening Jennifer and thanks for your time in making this work its greatly appreciated :+1:

ravenwilde commented 9 years ago

I lied... or rather, we only had one episode of our current tv show left in our queue ;)

Here is the workflow I'd like for us to try and use: http://nvie.com/posts/a-successful-git-branching-model/

Especially pay attention to git merge --no-ff when it pops up - we've had a lot of problems crop up where people haven't been using the --no-ff... it makes this very difficult to untangle if/when something goes wrong.

Question for Fabrizio - as far as PHP goes - are you planning on using a framework, or just writing the app from scratch? Either is cool, I'm just curious.

kisanjong commented 9 years ago

That was quick :) Sounds good Jennifer and as your use to github I'm sure it's the way to go :)

It also makes sense not merging finished features until they are tested.

Obviously developers will use local servers to work but I will setup a new subdomain on rotalabutterfly to test any code before moving it to its final domain.

kisanjong commented 9 years ago

I've updated the homepage of http://rotalabutterfly.com with some info about this project, hopefully it will bring in some more volunteers and ideas.

fablau commented 9 years ago

Sounds good Jennifer, I like what you are describing for the UI.

Frankly this is the first time I am using Git, therefore I'll try to be careful and read through the documentation as much as I can. I was reading at the link below, and looks like that performing a "Merging Pull Request" equals to a "merge --no-ff":

https://help.github.com/articles/merging-a-pull-request/

Is that correct? I am trying to understand that because I'd use the Mac client (if possible) to speed up everything on my side. It looks pretty simple to use. But I don't want to be cause of messing up the code once I want to commit any changes to it!

To answer your question about PHP, I usually code from scratch by using my own libraries. And for this kind of project, which at the end is pretty simple, that shouldn't be a problem.

I plan to create a "config.php" script which will have to be run first from the administrator to configure MySQL and other basic stuff, as well as load all the compounds, language and other constants from static files into MySQL for better management later. By doing that, the package will be ready to use "out of the box". Your thoughts on that?

To Jason: cool to know about the testing subdomain. At due time, would be cool to have FTP access to that (additional SSH access would help even further).

And I like the updated homepage at rotalabutterfly.com, hopefully more people will be able to help to speed up the process. I'll try to work as much as I can, but as I told Jason, I'll have to deal with daily life obligations, trying to best contribute to this project.

Last comment: Jennifer, when you are ready, please start creating the first branch on GitHub so we can start working. You are more familiar with that than me, therefore I'd leave that to you :)

Thanks!

ravenwilde commented 9 years ago

Pull Requests:

So that is similar-ish to what the article was talking about. What you do in the instance of a pull request style workflow would be:

Given that our project is fairly small and, at this time, there are only three of us and our roles are pretty clearly defined, we can probably forgo pull requests for the time being. Therefore, as per the workflow I linked to yesterday, we would do something more like....

I can manage merges from dev to master and then once master is up to date, Jason (or both of you, however you want to work that out) can manage the deploy to the dev or public servers. EDIT: however you manage deploy is totally up to you - I don't really need to be a part of that process at all.

If the project grows and begins to take on new people we can instate pull requests as part of the workflow in order to keep things organized, but right now with the three of us and our well defined roles I think we should be okay.

Also, feel free to bother me with any other git questions you have - it takes a while to get a handle on if you've never used before and its totally fine if you use a gui or client on your end to manage things.

The only thing I'm going to be really particular about is that everyone please use the merge --no-ff in order to roll all your development commits into one when it hits dev. Also write clear and concise commit messages. There are some people at my day job who just can't seem to get a handle on that part and when something goes wrong its beyond insane to sort out :)

EDIT: Actually, wait... I think we may need to do pull requests from forked repos because we're not all members of the same organization. Let me think a bit and get back to you....

See... I use Github daily at work, but we're all members of a Github 'organization' (which I did not set up) so we can all commit directly to the main repo... let me see if that is still true for us without the 'organization' (which we may have to pay for).

ravenwilde commented 9 years ago

I plan to create a "config.php" script which will have to be run first from the administrator to configure MySQL and other basic stuff, as well as load all the compounds, language and other constants from static files into MySQL for better management later. By doing that, the package will be ready to use "out of the box". Your thoughts on that?

Sure, however you want to handle your end is fine by me - I don't care as long as there is something for me to hit with AJAX requests that will return JSON :)

ravenwilde commented 9 years ago

Okay... I think I have it figured out.... Jason, you need to add us both to the project as collaborators: https://help.github.com/articles/adding-collaborators-to-a-personal-repository/

kisanjong commented 9 years ago

Both added as collaboratiors, thanks for the tip Jennifer :)

New sub domain has been setup for our testing once we are at that stage.

I have to say I'm already impressed with what we have discussed already the plan seems to be coming together :+1:

Thanks :)

fablau commented 9 years ago

Thank you Jennifer for the clear explanation, your help is greatly appreciated! I am a real beginner here on Git. I'd really like to be able to use the GUI, but I need to figure out if the merging is done with the "--no-ff" option, otherwise I'll use the command line... I'll try to play with that a little of my own.

As for my own PHP development side, sounds good! No problem to handle JSON calls and responses.

Thank you also to Jason for his last update. I'll start putting down something in the coming days. This weekend I am a little messed-up, but maybe I'll find some time to start with the basics. I'll be back!

ravenwilde commented 9 years ago

Hmmm... You'll have to read the documentation for whatever GUI it is you're using in order to figure out how to make things work - which client are you using?

ravenwilde commented 9 years ago

Created the dev branch, btw... feel free to clone it to your own repos and branch your features off of it.

fablau commented 9 years ago

Jennifer, I'd like to use this:

https://mac.github.com/

And I see the new dev branch. I'll try what you are suggesting. Thanks.

diogorolo commented 9 years ago

Hi, I was following the discussion at https://github.com/flores/yet-another-nutrient-calculator/ I am a software developer and have experience with CSS and jQuery as well as PHP/Laravel and Windows Phone development (if we ever want to build an app).

I can help with anything that it's needed and with translations to Portuguese. I'm happy to see the project back alive. Cheers!

ravenwilde commented 9 years ago

Hi! Welcome to the discussion. At this moment, I don't really need any help with the Front end aspect of the project, but you might want to talk to Fabrizio about back end/PHP

fablau commented 9 years ago

Hi Diogolo and welcome. I am in the process of putting down the basic of the back-end. If you like, I could get in touch with you as soon as I understand what I can handle in the coming days and where we are headed. Please, let's stay in touch. Thanks!

kisanjong commented 9 years ago

Hi Diogolo welcome and thanks for your interest :)

I'll leave Fab and Jennifer to allocate the front and back end tasks.

As this will be a multi language application your translations to Portuguese would be great, once we have a working English version we will release a language template that can be used to translate the app to other languages. So far I have volunteers to translate it to French, Czech and now Portuguese :)

Fab and Jennifer can I confirm the front end will pull data from a selected language? Similar to Flores yml files @ https://github.com/flores/yet-another-nutrient-calculator/tree/master/i18n

Thanks :)

kisanjong commented 9 years ago

https://github.com/flores/yet-another-nutrient-calculator/blob/master/i18n/en.yml

ravenwilde commented 9 years ago

Fab and Jennifer can I confirm the front end will pull data from a selected language? Similar to Flores yml files @ https://github.com/flores/yet-another-nutrient-calculator/tree/master/i18n

Yep - I am currently working on an interface that handles selected languages.

fablau commented 9 years ago

Yes Jason, I am sure Jennifer can confirm we can do that pretty easily. Also, if needed, keep in mind I am also Italian, therefore I can help with that side of the language as well :)

ravenwilde commented 9 years ago

Status Update: As of last night I've got react.js generating most of the form, going to finish that up tonight or tomorrow depending on life. After that, I'm going to focus on the state changes and interactions that adjust the form prior to submission and then I will get it ready to make AJAX calls. Maybe 1 - 2 weeks (I'm being generous and padding my time, because, life) and it will be ready to talk to whatever back end there is.

fablau commented 9 years ago

Sounds great Jennifer! I am working as much as I can on setting up the basic configuration script which will create and populate the basic database. Once that's done, I'll be ready to work on AJAX calls.

ravenwilde commented 9 years ago

No rush - I'm trying to do a little each night but I've also got other things going on.

fablau commented 9 years ago

Likewise!! No worries :)

kisanjong commented 9 years ago

Great news and progress :) :+1:

Where are the languages going to be called from?

File or database? Yaml? Sql?

Thanks :)