Blog Educativo Plan del Proyecto: Difference between revisions

From OLPC
Jump to navigation Jump to search
Line 209: Line 209:


<b>Authentication – July 23 [can be done concurrently] (PHP)</b>
<b>Authentication – July 23 [can be done concurrently] (PHP)</b>
*Create auth plugin that will just authenticate based on name and push cookies permanently
*<del>Create auth plugin that will just authenticate based on name and push cookies permanently</del><font color=green>Make the session permanent</font>
*Ensure that direct links can be made to the blog pages
*<font color=green>Ensure that direct links can be made to the blog pages</font>
*Alternative: make all students guests and push to blogs with the same identity (we won't know where posts came from + a bit insecure since anyone with the link can post)
*<del>Alternative: make all students guests and push to blogs with the same identity (we won't know where posts came from + a bit insecure since anyone with the link can post)</del>


<b>Packaging – July 28 (Fedora+Shell)</b>
<b>Packaging – July 28 (Fedora+Shell)</b>

Revision as of 10:51, 23 July 2008

GoogleTrans-es -English -български -中文(中国大陆) -中文(臺灣) -hrvatski -čeština -dansk -Nederlands -suomi -français -Deutsch -Ελληνικά -हिन्दी -italiano -日本語 -한국어 -norsk -polski -português -română -русский -svenska


  Please copy/paste "{{Translationlist | xx | origlang=en | translated={{{translated}}}}}" (where xx is ISO 639 language code for your translation) to Blog Educativo Plan del Proyecto/translations HowTo [ID# 146910]  +/-  

Lugar para el plan del proyecto con horario y enlaces
Page for the project plan including schedule and key links

Requisitos

Current version below

El Desafion Uruguay!

Listado de Blogs

Requisitos y Propuesta de Diseño Actual

Estos requisitos no están ordenados por prioridad. Dentro del listado de requisitos, los importantes para el éxito del proyecto comienzan con "Debe", y aquellos requisitos que no son del todo cruciales comienzan con "Debería".

  1. Debe ser fácil para que los alumnos y los profesores escriban entradas en Blogs en Internet. Debería permitir escribir entradas en blogs de múltiples plataformas de Blogs.(e.g Drupal, de Wordpress, Blogger, otros?).
  2. Debe ser fácil para que los alumnos y los profesores escriban entradas en Blogs alojados en el Servidor de la escuela sin acceder a Internet. Debe trabajar con Moodle y Mediawiki.
  3. Debe tener una opción para que el profesor pueda repasar la entrada antes de que se publique en Internet (ver 1) o en el servidor (ver 2). Debería permitir al profesor optar por aprobar previamente las entradas o permitir que se publiquen directamente sin su aprobación previa.
  4. Debe permitir la vista previa de las entradas y la opción de ser corregidas por el autor antes de ser publicadas.
  5. Debe tener una página en la que el administrador (por ejemplo el profesor), mediante una contraseña, pueda controlar lo que los profesores y alumnos pueden ver. En esta página el administrador podrá escribir todos los registros extra, como nombre de usuario y contraseña para el blog, y las opciones marcar qué blogs están disponibles.
  6. Debería permitir la vista previa y edición de las entradas por varios alumnos o profesores antes de la publicación.
  7. Debería permitir borrar entradas del blog ( y el blog completo) tras la publicación de entradas y permitir añadir comentarios a las entradas.
  8. Debe permitir que toda una clase pueda publicar entradas en un único blog o en varios ya sea en Internet o en el Servidor (e.g. un sitio de blogger.com como http://classAAA.blogspot.com/ para toda una clase o varios blogs para varios grupos de una misma clase).
  9. Debe ser instalable e incluirse en la actualización futura del Servidor de Escuela; School Server.
  10. Debería ser fácilmente instalable en XO o aún mejor que no requiriera nuevo software en XO.
  11. Debería permitir sincronizar/copiar las entradas del blog a más de un servidor desde una escuela a otra (e.g. copiar todas las entradas desde la escuela en Soriano a la escuela en Colonia.)
  12. Debe permitir publicar entradas sin necesidad de nombre del usuario o contraseña. Debería conocer automáticamente la identidad del usuario si este está registrado Servidor de la Escuela /XO.
  13. Debe permitir publicar texto, imágenes de XO y el vídeo de XO. Debería permitir cambiar el formato del texto en la entrada.
Diseño funcional y Flujo de Trabajo
(nota: esto se escribe generalmente por el ingeniero pero he anotado mis últimas ideas y propuestas sobre el flujo de trabajo. Menciono Apache pero estoy abierto a cualquier software que siga este Flujo de trabajo básico y que permita que el alumno publicar entradas rápidamente)
Estudiante
  1. El Alumno abre el Navegador (browser) y va a la página web alojada en el Servidor de la Escuela (XS) (Apache o quizá los wordpress?). Aún mejor será que abra un marcador grabado previamente para evitar tener que escribir una dirección URL larga.
  2. El Alumno edita una entrada donde puede incorporar el texto y editar su formato. También podría tener la opción de pulsar botón para añadir foto o vídeo desde el XO (o la opción de tomar la foto o el vídeo en ese momento). El alumno puede añadir su firma si quiere porque para acceder no ha tenido que teclear usuario y contraseña.
  3. Durante la edición de la entrada podrá previsualizarla en forma HTML. La página de previsualización tiene un botón que permite seguir editando la entrada.
  4. Durante la edición de la entrada podrá (al pinchar en uno u otro botón) hacer lo siguiente (dependiendo de las opciones que permita el profesor); enviar al profesor para revisión, publicar en el blog de la escuela, publicar en el blog de Internet.
  5. Tras enviar la entrada al profesor, el alumno recibe un mensaje en HTML con la confirmación y un botón con la opción para crear otra entrada. La entrada pasaría a la lista de entradas pendientes de revisar del profesor (véase la sección del profesor abajo).
  6. Tras marcar la entrada para que se publique, el alumno recibe un mensaje en HTML con la confirmación y un botón con la opción para crear otra entrada y también con la opción de ir al blog para ver el blog con la nueva entrada publicada.
  7. La página de edición de entradas del alumno tiene una lista de las entradas anteriores ya publicadas y las entradas en borrador (aún en estado de edición y sin publicar) (en la parte baja de la página) que se graban localmente en el XO del alumno. El alumno puede volver a editar las entradas anteriores y volverlas a publicar. El blog podría contar con la opción de fecha y hora en la que la entrada es publicada o "actualizada"
Profesor
  1. El profesor abre el navegador y va a la página del profesor en XS (Apache?). Puede ser la contraseña protegida o apenas un URL del de los alumnos (los comentarios?)
  2. El profesor verá una lista de entradas de los alumnos pendientes de su aprobación o revisión y puede pulsar para ver cualesquiera para revisarla. Las entradas ya publicadas también aparecerán en esta página (¿es necesario?)
  3. Al lado de cada entrada tiene estas opciones: "Enviar al blog de la escuela", "Enviar al blog del Internet", "Editar" o "Rechazar".
  4. Si pulsa sobre "rechazar" se borrará de su página esa entradas (podría enviarlo de nuevo al XO del alumno para que lo corrija pero XS/Apache ahora sabrá de qué XO vino!) Puede tener que comenzar con rechazo y suprimir solamente y entonces el profesor tiene que encontrar al cabrito para decirles intentar otra vez.
  5. Si pulsa sobre "Enviar al blog de la escuela" o "Enviar al blog de Internet" las entradas aparecerán en la parte superior del blog. Para cada opción puede haber varios botones, leer el interfaz del Administrador para ver cómo se definirá esto.
  6. Si pulsa sobre "Editar" se abre la entrada donde podrá editar el texto y el formato. El botón "guardar" volverá a la página de "lista de entradas por revisar" del profesor.
Administrador
  1. El interfaz del Administrador es un Web page en XS/apache. Incluye un formulario para activar el blog (URL, nombre y contraseña, nombre de la escuela (el texto que utilizó al registrarse al URL), cualquier dato que sea necesario para activar el blog). Cada blog se señala por medio de una etiqueta (bandera) como escuela interna (moodle, mediawiki, drupal?) o Internet (blogger.com etc.).
    Esta etiqueta se utiliza para categorizar el sitio cuando es visto por los alumnos.
  2. Cada vez que se agrega un blog, cada uno tiene el botón de radio Activado/Desactivado. Los blogs activos se mostraran en la parte superior de la página.
  3. Habría sitio para más de 20 blogs (¿el numero de blogs sería como el doble al del número de clases en una escuela?).
  4. La página del Administrador tiene una opción para permitir la publicación de entradas sin la revisión del profesor. Uno para interno y uno para los sitios externos.

Requirements English

("must" means its critical to success, "should" means it very valuable but can be deferred):

Not in priority order.

  1. Must make it easy for kids and teachers to post to Blogs on the internet.
  2. Must make it easy for kids and teachers to post to blogs visible only in the school. Must work with Moodle. Should allow easy inclusion of other blog sites (e.g mediawiki, drupal, wordpress, others?).
  3. Must be installable and included in future build of School Server.
  4. Must be installable and available on Fedora + XS implementation for use over the internet. That is, its installed and available at a URL which then posts to public blog sites. This configuration must ensure that security of the blog is as good when posted via EduBlog as it is when posted directly to blogger.com (or whatever public blog). Security will be a hard problem because it must not require a username/pass from kids on each post...
  5. Must not require user name or password entry to post blogs. Should allow automatic tracking of user identity when identity management is available on school server/XO. Should consider supporting cookies.
  6. Should be installable on Debian and compatible with Ceibal-Uruguay deployment.
  7. Must have an option for teacher to review post before its sent to 1 or 2 above. Should also have option to post directly without teacher approval.
  8. Must allow preview and editing of posts by author before being posted.
  9. Must have GUI for teacher or admin management of the options.
  10. Should allow editing and review by multiple students and teachers before posting.
  11. Should allow removing the blog after its posted and adding comments to blogs.
  12. Must allow posting to multiple blogs in school or on internet. Can post to a single site at a time. (e.g. click once to post to grade1 Blog, click again to school blog).
  13. Must not require any code changes to XO (aside from bug fixes). Must be tested and support XO default browser, preferably build 656 and later.
  14. Should support Firefox on windows and IE 6 and 7 in that order.
  15. Should allow synchronizing of blog posts to more than one server within school network. e.g. move all posts from school in Soriano to the school in Colonia.
  16. Must allow posting of text, images from XO and video from XO. Should allow formatting of blog post text.

Functional Design and Workflow

(note: this is usually written by the engineer but I folded in a lot of work flow and give my latest ideas. I mention apache but I'm open to any software that follows this basic workflow and let's kids post quickly)


Student
  1. Kid opens browser and goes to web page hosted on School server (XS) (Apache or maybe wordpress?). Better to push a bookmark to the browser and they can just click on it instead of typing in long URL.
  2. Edit Web page has a form where can kid can enter text. Also has an option (button? can someone tell me how you upload a picture or video from XO camera to web site?) to upload image or video. No user name tracking here so kids need to sign their posts in text if they want to have their name on them.
  3. Edit Web page has button to preview. When clicked it shows the post in HTML form. Preview page has a button to edit again.
  4. Edit and Preview pages have one or more of the following buttons depending on management setup (see below): send to teacher, post to school blog, post to internet blog.
  5. Send to teacher button returns sent message on HTML page and button to create another post. Once clicked the post goes to the teacher queue (see teacher section below).
  6. Send to school blog or internet posts the blog, returns sent message and redirects the kids browser to the blog.
  7. Edit web page has a list of previous posts at the bottom which are saved locally on kids XO. Kid can click on any and go to the preview page for that post (can they edit and then repost to the same place?).
Teacher
  1. Teacher opens browser and goes to teacher page on XS (Apache?). Can be password protected or just a different URL (comments?)
  2. Teacher see a list of posts from students and can click on any to look at them. Previously posted items are also saved on a link from this page (needed?)
  3. Next to each post are options to: send to school blog, send to internet blog, edit or reject.
  4. Reject deletes it. (could send it back to students XO and goes on students edit page but XS/Apache will now know which XO it came from!) May have to start with reject and delete only and then the teacher has to find the kid to tell them to try again.
  5. Send to school or send to internet posts the blog to the relevant place at the top of the blog. There can be more than one of each of these buttons, see management interface below for how its determined which will appear.
  6. Edit button opens in edit page view. Save button return on edit page returns to teacher home.
Management
  1. Management interface is a web page on XS/apache. Includes a form to enter the blog (URL, user name and password, school name (the text used when linking to URL), anything else needed to post). Each blog is flagged as school internal (moodle, mediawiki, drupal?) or Internet (blogger.com etc.). This flag is used to categorize the site when seen by the kids.
  2. Once the list of blogs is added, each has a "enable/disable" radio button. If enabled it shows up on the list of sites used in teacher (and student?) pages above.
  3. There is room for up to 20 blogs (number of blogs should be number of classes in a school x2?).
  4. Management page has an option to allow post without teacher review. One for internal and one for external sites.

Diseno del Software - Software Specification

Horario - Schedule

Cronograma
Date Milestone
May 15 Finalize suggestions for Ceibal Jam coding days (see below) May 16, 17 Ceibal Jam happens in Montevideo

GS - Done. Jam held and some investigation of Blog tools completed. See: http://wiki.laptop.org/go/Ceibal_Jam/Blogs

May 30 Development server available on the internet. GS - On Apache + PHP + MySQL server online. Still need second Fedora + XS server.
May 30 Work plan defined, infrastructure for where code gets checked in and how its shared defined

GS - Not done. Work plan underway but check in, hosting, build etc. not complete. Need responsible person for this.

May 30 Key volunteers identified, deadline for initial feedback from users on requirements and functional specification

GS - Mostly done. Need prototype GUI for better user feedback. Could use one or two more HTML, PHP and maybe C coders. Requirements not locked yet.

June 2 Tarun finishes exams and starts work ~ full time GS - Done, hope you passed :-)
June 15 Functional specification final and coding work clearly defined.

GS - Underway. Need a place to post the write up. Need to finalize target platform and close loop with first target customer.

June 30 First look at some design elements and first rough code checked in
July 15 First look at code shared with end users. Deadline for comments and changes.
July 30 Beta test starts. New blog posts generated out of Uruguay. Or elsewhere.
August 15 Finalize presentation for OLPC (worst case the interface, best case show new blog posts by kids)
August 30 Code included in School server build (and XO build if necessary) and start deployment of version 1.0.
September 1 Day off before building maintenance plan and thinking about version 2.0.

Milestones

Current Plan is to use Moodle with OU Blog and make the following modifications:

Editor UI – June 20 (mostly JS+HTML+a little PHP for uploads)

  • Theme for tinyMCE that looks like the Write Activity
  • Make it really easy to upload images and video (2-3 clicks)
  • Support Browse, Firefox 2, Firefox 3, Internet Explorer 6
  • Additional Work (Critical): IE support, Integration of File Upload with Moodle
  • Additional Work (Non-critical): Sugar Theme Improvements (select/list boxes, better clarity icons, list for justify select, highlight on iframe overlay), Add Smiley Plugin, Make icons for preview and post, Clean integration of tinyMCE with Sugar theme into Moodle, Proper file upload (as plugin)

Preview – June 25 (PHP+DB)

  • Temporarily push the blog post out so it can be previewed at least for internal Moodle based blogs
  • Figure out if it is possible to do with Blogger.com (API supports remote edit, we just need to add the options to each post and remove the default)
  • Use tinyMCE Preview Plugin
  • Additional Work (Non-critical): Stylesheet for OU Blog, Blogger.com for more accurate rendering

Teacher Review – July 4 (PHP+DB)

  • Add a column in the blog table that is true if a post has been approved and false otherwise, update pages to use this and only show relevant posts
  • Alternative: use another table, and push data from this “unapproved post” table into the standard one (requires less changes to underlying php but not technically best solution)
  • Use the visibility settings and permissions management in oublog to create a status for unapproved posts and allows teachers to change he status as they approve the post

Simplify Moodle UI (Teacher and Admin for blogs) – July 9 (PHP+XHTML+CSS+a bit of Moodle knowledge)

  • Simplify the XO theme further and remove extra modules we are not using - needs server =( not online yet
  • Using Primary Theme with some modifications - renders better on Browse

Post to Remote Blog – July 18 (PHP+XML-RPC+Blogger API)

  • Add options for setting up EduBlog (Admin Page)
  • Create a simple API that can handle posting HTML and images
  • Create a plug-in for Blogger.com that at least supports pushing HTML and images
  • Additional Work (Non-critical): API to handle remote editing posts and commenting, Handling unlikely glitches in replacing image src url
  • Additional Work (Critical): Error handling when posting to remote blog, captcha request handling, Moodle API based handling of files and urls

Authentication – July 23 [can be done concurrently] (PHP)

  • Create auth plugin that will just authenticate based on name and push cookies permanentlyMake the session permanent
  • Ensure that direct links can be made to the blog pages
  • Alternative: make all students guests and push to blogs with the same identity (we won't know where posts came from + a bit insecure since anyone with the link can post)

Packaging – July 28 (Fedora+Shell)

  • Package into YUM/RPM
  • Alternative: make a self extracting archive and a script to install the tables

UI Modifications from User Feedback - August 2

  • A few rounds of modifications and feedback to get it just right