Proposal by Facundo Mainere for Interactive & social online Smalltalk tutorial

Proposed by Facundo Mainere (profile, biography) Don't forget to submit this proposal to official Google Melange site too!

How will I do that project

First I will define the architecture. The Smalltalk distribution could be Pharo or Amber, and the web framework can be Seaside or Aida. Then I will start by getting a simple lesson to work (it means, evaluating a smalltalk code from the browser, and then check -by using unit tests- if it's correct). Then I will add authentication from Facebook and/or Twitter and interaction with the lessons to this social network/s. Finally I will improve the site by adding styles and Javascript (JQuery) components for getting the user experience better.

Through the project I will be defining the lessons about Smalltalk topics, and categorizing them. Some topics could be: "object message" syntax, literals, blocks, collections, control structures, defining classes and methods, etc.

What methodologies will I use

Any agile methodology with short iterations, weekly deliveries and retrospectives with the mentor. Unit and functional testing.

Suggested timeline and milestones

1 week to test the necessary things to define the architecture
2 weeks for defining the application skeleton and getting a small example lesson working
1 week for binding Smalltalk to Facebook and/or Twitter API (writing it if it's not created yet)
2 weeks for completing a first (draft) version
4 weeks for improving the user interface with rich components
2 weeks for completing the lessons

Where I see the risks

Making the user's experience better by providing some goodies such as powerful code editor, or error details. Losing time writing Smalltalk API for social networks.

Also falling on a cliche online-tutorial experience. My goal is to innovate in terms of the social experience, making the tutorial more likely to introduce new people to smalltalk.

How the results will look like

A nice place to start for newcomers to Smalltalk, with friendly graphics and lessons of increasing difficulty. A way to learn more fun than reading a text book. A place in which you can show your skills to everyone, with social sharing utilities and achievements to share on the social networks.

Updated: 15.4.2012