Welcome Guest, Not a member yet? Register   Sign In
Calling all CI developers... interested in developing a tutorial?
#1

[eluser]mrtopher[/eluser]
I've had this idea in my head now for a while and I thought the best way to get it out would be to check with others to see if it's really a good idea or not.

With the new version of CI and EE on the horizon I have been thinking that it would be cool if a bunch of developers from the community came together and wrote a kick ass tutorial series. For those of you who have looked around at other frameworks, Symfony (http://www.symfony-project.org/) did it with Askeet but I don't think their community was involved. Derek Allard did something similar with BambooInvoice, but that's not so much a tutorial as an open source app written with CI. I was thinking of putting together something more of a how-to. I think this would be a great way to highlight the CI community and show people how to use CI to build a large scale real world web application. I think it would also generate some good buzz around the framework.

The idea is we would get a group of CI developers together and decide on an app to build. Once we have that we would split up the work and each developer would contribute a piece of the app and a write up explaining what they did. Then as the pieces are completed they will be posted on a site and at the end we should have a pretty nice open source web app with a complete narrative on how it was built.

Since the new version of CI isn't out yet, I wasn't thinking of diving head first into this right away but I wanted to get a discussion started to see if there were any developers interested in participating or if anybody else thought this would be a cool idea.

Something to keep in mind is that the new version of EE is going to be written using CI, so maybe that's all the tutorial people will want. I don't know, I just wanted to see if this idea sparked a discussion.

If you would be interested in participating or would like to see something like this developed, let me know. If you think I'm nuts or have any ideas or suggestions please post those too.
#2

[eluser]ehicks727[/eluser]
So, what I'm interpreting that you're saying is you want to develop a tutorial that is based around building an application, right?

I think this is a very good idea. CI has a couple of video tutorials that do this already, like the blog tutorial and I think there was something else, but I forget what it was. However, the blog tutorial only goes so far and doesn't touch on some important concepts in depth, like MVC and best practices for data, imho.

Anyway, maybe a more in-depth blog application would be a good idea. Also a CMS would be good.

Some sticky points for these projects would be authentication... as CI does not have a built in auth system. Maybe the tutorial team could ask for input from the various independently developed auth systems like FreakAuth, or Redux. It would be nice to see several ways to incorporate an auth system. Or even better, have part of the tutorial be on how to develop an auth system that is flexible enough to use across many applications (or at least this application).
#3

[eluser]Randy Casburn[/eluser]
@mrtopher - I want you to know first and most importantly I think this idea is grand and has great merit.

In my mind I come back to a few questions such as "oh boy, is this going to be just another CMS, BLOG, PORTAL, 'backend'"? You get the idea right? There are so many of these in the open space already that folks can learn from. Creating a tutorial application that is one of these non-imaginative applications may be duplicative. I recommend an application that has use for a broad range of small businesses such as an inventory management system, a rental resource management system, a multiuser collaborative workspace (we will have jQuery to work with), etc.

Another stumbling block that rears up is about the use of the user-land extensions that exist. You will undoubtedly encounter the need for some type of authentication and maybe even a need for ACL. Supposing that is the case for 22 seconds, which of the user-land provided options is used? And how do you go about the selection process? Then, how do you cool the egos of the non-selects involved?

It will be easy enough to blow that last paragraph off as insane. OK, lets assume Colin (;-))will do that.

Let's say you don't use any pre-built, user-land functionality. Who scrutinizes the code for coding standards or quality (test) before release? Other than agreeing that CI allows us to built applications in widely varying ways to meet our specific needs - the way we see fit, community opinions vary widely about application development. The "other" frameworks have established patterns of development and rules established that assist this process along. They lack the freedom we enjoy with CI. Our freedom to do things as we see fit may present a challenge. Sure it could just "cum by ya". he,he,he.

It's a great idea. One that has come and gone...and come and gone...and come and gone...and...

Look forward to seeing where this one goes.

Randy
#4

[eluser]mrtopher[/eluser]
@ehicks727 - Yep, you got the idea exactly!

Your right, most of the tutorials only go so far... the idea behind this one would be 2 fold: to act as a "how-to" and to show those new to CI that it can be used for large scale applications and also to show those that have been using CI for a while how to do new things or a new way of doing something.

I don't really know what application would be built. I'm trying to keep an open mind until we have a group of interested developers and then we will decide as a group. I have to side with Randy on this one though, I don't want to build something that has been done over and over again. Because EE is going to be built on CI I think building a CMS is out and blogs pretty much follow the CMS concept so I think that's out too.

I would envision authentication and application security as one of the pieces to the tutorial. I would rather not use any of the existing plug-ins or libraries out there just because they have been discussed already. But of course this all depends on the kind of app that is developed. I would like to see the tutorial touch on some of the following:

* User authentication with an ACL
* Ajax integration
* Development of an API (REST or SOAP)
* Use of other APIs like Paypal or Facebook, etc.
* Development of a community piece like a Facebook app or something similar
* etc.

Those are just some ideas I thought would be nice to cover in detail.


@randy - You bring up some good points. I don't want this to end up being "just another..." anything. I would like to come up with something unique that will really show people who aren't familiar with CI it's strengths.

The plug-ins and such might be an issue but I would hope that those developers that would participate would be developing unique code. Maybe some new libraries/plug-ins might be created as a result. But I do see your point... I'm not sure how that would be handled at this time. One thing to keep in mind though is I don't know if current plug-ins or extended libraries will be necessary with the new CI. Maybe we will be able to get along without them or need to develop new ones anyway. May be able to kill a couple of birds with a single stone.

Quote:Let’s say you don’t use any pre-built, user-land functionality. Who scrutinizes the code for coding standards or quality (test) before release? Other than agreeing that CI allows us to built applications in widely varying ways to meet our specific needs - the way we see fit, community opinions vary widely about application development.

This is a valid point... but to play devils advocate, many non-CI users would see this as a con and not a pro. Many people turn to the RoR or Zend Framework because of the standard way you have to do things. I don't think it would hurt the CI community to have an example of standards used to develop a large scale app.

I would envision the participating developers would agree on a "standard" for the project and that would be used for development. Of course we would back up our decisions and choices we make and leave the final decision up to the reader. Who knows... if users respond to it, it may become a quasi standard for large scale CI projects.
#5

[eluser]Randy Casburn[/eluser]
[quote author="mrtopher" date="1220227776"]I would envision the participating developers would agree on a "standard" for the project and that would be used for development. Of course we would back up our decisions and choices we make and leave the final decision up to the reader. Who knows... if users respond to it, it may become a quasi standard for large scale CI projects.[/quote]

Sounds good. I can see a great opportunity for a "proof point" to come in the form of modularized team development through some standardization. It will be interesting to see how 2.0 addresses this issue.

Cum by ya. hehehe. Yes, still a little giggle. But I still think it's a good idea.

Randy
#6

[eluser]mrtopher[/eluser]
Well, so far we have had some positive feedback and discussion. Sounds like there are a handful of people who would like to see something like this developed.

Are there any developers out there who would like to throw their hat in the ring to help develop something like this?
#7

[eluser]Colin Williams[/eluser]
I don't typically consider myself "a developer," at least not professionally-speaking, but I like the idea and would be interested in helping out in some way. I'm also quite swamped with work. (Everybody has a huge project they want to launch Jan 1, 2009...)

Funny how Randy brought me name up about the user-land, ACL discussion. Apparently I'm some ACL naysayer now? Right, I don't believe in access control! Actually, I can see something like this as a way to show how decisions about that specific topic are handled: Specifically, how they don't necessarily make sense as part of CI core. Or maybe the conclusion is reached that there is actually a very elegant way for something like that to exist in core. The beautiful thing will be that we demonstrate it through a working example and not a heated forum discussion, where people tend to irresponsibly mix in their feelings and curl up in a cushy chair somewhere, caressing their laptop, sulking and s-s-sobbing like my teenage sister...

Anyway, put me on the list of interested contributors. Professionally I'm a designer, so I would be more than thrilled to manage any design aspect of the project (site-design, art direction, etc).
#8

[eluser]Randy Casburn[/eluser]
[quote author="Colin Williams" date="1220421361"]Funny how Randy brought me name up about the user-land, ACL discussion. Apparently I'm some ACL naysayer now? [/quote]

It was a joke...as in "I'm sure Colin will call me crazy...again".

The last two or three "thought pieces" (remember the quotes) you followed me by chiding me about how out of my mind I was. (I was proven right later, of course, but that doesn't make me any less nuts).

Lighten up Colin...it was a friendly poke. Confusedmirk:

Wasn't meant to offend you.

Randy
#9

[eluser]Colin Williams[/eluser]
Oh, come on, Randy. You for one split second thought I was offended? You really are going out of your mind! Smile

I actually liked how you almost perpetuated me into this anti-ACL character... I was going to run with it, darnit! Trust me. You know me as well as you think you do.
#10

[eluser]mrtopher[/eluser]
Thanks Colin!

You bring up a good point regarding time frame. There is no defined time line and as a matter of fact I don't even envision doing anything other than planning until the new version is released. Then once it's out we will come up with a time line that works for everyone. I myself have a project I need to get released by the 1st of the year so I'm with ya there.

Anyone else interested in getting involved?




Theme © iAndrew 2016 - Forum software by © MyBB