Community Project pitches

17 views
Skip to first unread message

Dave Porter

unread,
Oct 24, 2013, 11:03:33 AM10/24/13
to sproutc...@googlegroups.com
Hi team,

I wanted to remind everybody that at next week's meeting we're accepting pitches for a community project. The goals are for it to demo a more complete project than is currently available anywhere open, and to somehow serve the community as well.

In particular, Jeff (I believe) came up with the bluesky idea of doing some kind of alternate front end to our github repo, adding some view or collaboration feature that github.com doesn't have. In the abstract I love this idea; it would serve the additional purpose of actually being something that other OO projects might want to copy. Now all we need is an idea for a feature (or arrangement of existing features?) that would be useful to us that github.com doesn't have!

So thinking caps on for next meeting: come ready to pitch something built on top of github, or anything else.

Cheers,
Dave

Maurits Lamers

unread,
Oct 25, 2013, 5:42:03 AM10/25/13
to sproutc...@googlegroups.com
In order to be able to discuss the pitches, I would propose that everyone wanting to make a pitch writes at minimum an abstract and sends it to this list. In that way we can read every proposal and are able to asked informed questions as well as discuss the merits of the pitch.

thoughts?

cheers

Maurits


--
You received this message because you are subscribed to the Google Groups "SproutCore Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sproutcore-de...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Katherine Tornwall

unread,
Oct 25, 2013, 9:33:29 AM10/25/13
to sproutc...@googlegroups.com
I think Maurits is right here - we should at least start this discussion via email so that everyone who would like to contribute has a chance to make a longer statement for their project, as it can take quite a bit of text to discuss ideas like this. With as many people who are at the meeting, it might become a bit hard to keep everything in order.


One project that I think SproutCore could greatly benefit from is an interactive tutorial system like the ones used for other projects more recently. Some examples are:


And then the tutorial app could even serve as an example SproutCore application. I haven't really looked into doing something like this too much, but I know it can be very rough jumping into SproutCore for the first time and I think something more interactive may help make that process easier.

Maurits Lamers

unread,
Oct 26, 2013, 8:14:45 AM10/26/13
to sproutc...@googlegroups.com
Hi all,

I want to propose to build a learning tool. I have put forward this idea already earlier on IRC, and Katherine also mentioned a similar idea. I think though that my proposal is a bit bigger than just an interactive learning tool. For this pitch I use LearningSC as code name.

LearningSC is a multi-user application in which people can learn about SproutCore. It works as a domain specific social network, which means that every user in the system should be able to be both a student following lessons as well as being a teacher grading work of other students, creating lessons and lesson materials. One way of becoming a teacher could be that when a student passes a certain exercise, he or she can get grading rights on that exercise.
Every student should be able to create new lesson material, but whether it ends up in the "global" system depends on feedback from others (especially teachers).

LearningSC could show off SproutCores strong points by having its lessons being modules/bundles which can be selected and loaded automatically. If a route is given, LearningSC should be capable of automatically loading the right module, and enter the right substate of the lesson. This can show off the state charts beautifully, especially in combination with localStorage/SC.UserPreferences. This can also be used to show how to deal with permission levels inside an application. Automatic validation and/or the documentation on how to use the validators, or how to use validation in combination with a state chart seems to be currently not very well maintained, so this could be a nice way of fixing this.

The design of LearningSC should be as generic as possible. SproutCore consists of elements from many different (programming) paradigms, and it should be possible to approach these elements from different angles. Moreover, having a generic system allows for more kinds of exercises than just SproutCore, which can help make us reach more people and interest them in using SproutCore in other ways than would be possible if it were purely a SproutCore-focused design.

LearningSC could have quite a few interesting side effects, one of them being (the already mentioned) making people interested in SproutCore and attracting new community members. Another effect could be that the project can be used to find new members for the core team(s): if someone has a sufficient level of understanding, he or she can become a committer, or reviewer etc.

Taking LearningSC offline would also be a very nice and interesting feature, because of all web frameworks I think SproutCore is the most suited for offline applications, or applications which can run on unreliable connections. I am currently wrapping an SC app using Cordova. This kind of approach enables creating (mobile) apps which would enable people not having stable internet connections to download modules and do training also when there is no internet connection.

The technical dependencies of the project could be github as main server platform, (pull requests for the learning environment, with feedback, automatic testing of modules for compatibility etc), but there should also be a database system for tracking user progress. Because of my current experiences with having online and offline apps using CouchDB (and its client side counter part PouchDB) I propose to use those as the main database system.

I am very well aware of the number of ideas here and that this entire system is quite big. I think however that this system can be built using a longer-term approach, where we could start by creating a very simple shell around modules with interactive versions of (parts of) existing tutorials and slowly build our way up. By keeping LearningSC open to other types of content, it will become easier for other people to jump in and help out.

To finish my pitch with (I expect) the least popular proposal: I would suggest to put this project under a non-MIT license, preferably something GPL-like. I like the MIT license very much, most of the things I create are under the MIT license. For this project however I think that only with help from outside it is only possible to build the entirety of the project. I think a license which requires people to contribute will help achieving that.
Secondly, I think that for the benefit of the community we should try to control how others might use our project. I would not like to see some company taking the idea and the source, building a huge online learning environment from it and then charging everyone a fortune to use it, without having to contribute massively to the community.

I am looking forward to your thoughts.

cheers

Maurits

Topher Fangio

unread,
Oct 27, 2013, 5:01:31 PM10/27/13
to sproutc...@googlegroups.com
Hi all,

I agree that we should begin the discussion via e-mail, so below is my community project pitch:

When I originally proposed this idea, it was my intention to build something fairly small, but still useful, as an introductory, open-source SproutCore application that people could download and play with and see a set of best-practices for different situations. To that end, I really think we should start small and build out more cool features as we go.

The project that came to my mind was a simple place where SproutCore developers could upload (or maybe link to) their SproutCore-related project and we could post comments and/or give feedback, ratings and reviews. Now that I say this, I guess I kind of envisioned an "App Store" of sorts, although I currently have no intention of allowing people to charge for the projects they upload (granted, if SproutCore becomes more mainstream, I would totally be open to this idea).

I believe this kind of app could really show off some of the strengths of SproutCore, especially things like using a SparseArray to load large lists of data with smooth scrolling; how to setup models and relationships; how to properly use SC.Query to search for results or perhaps even how to search on the server if the need arises.

I think we could start this out very basic with just the ability to upload a project with a name, description, link and some screenshots (and obviously the ability to browse these) and then begin adding features like the comments/reviews, categorization with pretty grid views like Apple's app store, and perhaps eventually the ability to download and/or charge for said projects (again, I didn't even think about this possibility until I started writing this e-mail, so I'm totally not trying to push it, just wanted to mention it :-)

So that's my pitch. Please let me know if you have any questions or thoughts! I can't wait to talk about all of these projects on Wednesday :-D (or before if you are so inclined).


--
Topher Fangio

Director of Software Development
Pharos Resources

office: 325.216.2908
mobile: 325.660.7141
Reply all
Reply to author
Forward
0 new messages