DemocracyOS
Figura 1: Portada de http://democracyos.org
Software libre de código abierto, con una experiencia de usuario fácil para que los ciudadanos se informen, debatan y voten sobre cada proyecto de ley presentado en el Congreso. DemocracyOS ha evolucionado hasta convertirse en una de las plataformas más utilizadas para la toma de decisiones en colaboración y se ha traducido a 15 idiomas. Se ha utilizado en Túnez para debatir su constitución nacional; por el Gobierno Federal de México para desarrollar su política de Gobierno Abierto; por el de parlamentario más joven de Kenia para consultar a su circunscripción o por el Congreso de Buenos Aires convirtiéndose en la primera experiencia en la democracia digital en el continente americano.
Texto original: Open source, free software with an easy user experience for citizens to get informed, debate and vote on every single bill presented in Congress. DemocracyOS evolved to become one of the most used platforms for collaborative decision-making and it got translated into 15 languages. It has been used in Tunisia to debate its national constitution; by the Federal Government of Mexico to develops its open goverment policy; by the youngest parlamentarian in Kenya to consult his constituency or the Congress of Buenos Aires becoming the first experience on digital democracy in the American continent.
Metadatos
Nombre
DemocracyOS
URL
URL repositorio
https://github.com/DemocracyOS/democracyos
Resumen (Inglés)
An online space for deliberation and voting on political proposals. The software aims to stimulate better arguments and come to better rulings
Resumen (Castellano)
Un espacio en línea para deliberar y votar en propuestas políticas. El software tiene el fin de estimular mejores argumentos y llegar a mejores resoluciones.
Lenguaje
Javascript
Framework
Node.js
Fecha primer commit
Abril de 2013
Versión analizada
2.9.3
Nº de versiones
189
Nº de tablas de la BBDD
10
Nº de contribuidores
68
Nº de stars
1524
Licencia
GNU Affero GPL v3
Mantenido
Sí
Diseño responsivo
Sí
Funcionalidades
Sus principales funcionalidades son:
Permite abrir una serie de comentarios sobre cada párrafo del texto.
Permite aportar argumentos sobre el texto general, como comentarios anidados con posibilidad de votarlos (de forma positiva o negativa).
Permite valorar un texto votando a favor, en contra o absteniéndose.
Tiene la posibilidad de debatir varios textos en paralelo.
Soporte para utilizar Avatares de usuarios a través de Gravatar.
Permite enlazar recursos (enlaces externos) a un texto.
Permite fijar una fecha límite para la discusión del texto.
Cuenta con posibilidad de usar etiquetas para cada texto.
Soporte para el formato Markdown en los comentarios.
Soporte para actualizaciones por RSS.
Soporte para inicio de sesión con Facebook.
Al tratarse de un aplicativo el tipo “Comentario de texto” sus funcionalidades están limitadas a procesos de participación orientados a alcanzar consensos amplios, mediante el debate y votación de los mismos.
Por otro lado, carece de funcionalidades ‘integrales’ que impiden usar la plataforma más allá de su finalidad limitada al trabajo colaborativo sobre textos.
Implantación
Se ha utilizado para distintos procesos de discusión de un texto base, tanto desde la sociedad civil como desde las instituciones. En el caso de las instituciones públicas que lo han utilizado, son especialmente reseñables los casos de:
la ciudad de París, para su portal de Rendición de Cuentas (Compte Rendu).
la República Argentina, para su portal de Consulta Pública Argentina (discusión de la Alianza de Gobierno Abierto).
Arquitectura
No permite la personalización de contenidos e imagen (HTML/CSS), por lo que dificulta su adaptación y posterior actualización. Cuentan con una APIREST para acceder desde otras aplicaciones web a los contenidos de la base de datos.
Como curiosidad, no utilizan un servidor SMTP convencional, sino que utilizan un servidor realizado por ellos mismos, y recomiendan utilizar servicios como SendGrid y GMail. Aunque la aplicación puede funcionar utilizando el servidor SMTP del mismo servidor (a través del comando sendmail), no lo recomiendan, ya que hace falta configurarlo correctamente:
No se recomienda para producción. El uso del transporte directo no es confiable, ya que el puerto de salida 25 utilizado se bloquea a menudo por defecto. Además, el correo enviado desde direcciones dinámicas a menudo se marca como spam. Debería considerar utilizar un proveedor de SMTP.
Figura 2: Esquema de servidores de DemocracyOS
Texto original: Not recommended for production. Using direct transport is not reliable as outgoing port 25 used is often blocked by default. Additionally mail sent from dynamic addresses is often flagged as spam. You should really consider using a SMTP provider.
Modelo de datos
Modelos relevantes
Es la única de las aplicaciones analizadas que ha utilizado una base de datos no relacional (MongoDB) para almacenar la mayoría de los contenidos. Las principales colecciones (el equivalente a una tabla en este tipo de servidores) son Topics y Comments.
Colecciones
Al no ser una base de datos relacional no cuenta con tablas sino con colecciones. Cuenta con 10 colecciones:
-
-
comments
-
feeds
-
forums
-
notifications
-
notifierJobs
-
tags
-
tokens
-
topics
-
users
-
whitelists
-
Gráficos UML
Al no contar con un esquema por definición no se puede obtener una representación gráfica automática. Para fines documentales se muestran algunos contenidos de ejemplos que fueron creados a tal efecto. Puede haber colecciones vacías en caso de no haberse guardado ningún objeto:
> db.comments.findOne()
{
“_id” : ObjectId(“5745cb09789325545f8f85d9”),
“text” : “este me mola”,
“context” : “paragraph”,
“reference” : “5745cac4789325545f8f85d4”,
“topicId” : ObjectId(“5745cac4789325545f8f85d1”),
“author” : ObjectId(“573af365435155135e008a9c”),
“createdAt” : ISODate(“2016-05-25T15:55:53.958Z”),
“flags” : [],
“score” : 0,
“votes” : [],
“replies” : [],
“__v” : 0
}
> db.feeds.findOne()
{
“_id” : ObjectId(“5745cad8e99435545f9c11fc”),
“type” : “topic-published”,
“topic” : “5745cac4789325545f8f85d1”,
“createdAt” : 1464191704274,
“forum” : null
}
> db.forums.findOne()
{
“_id” : ObjectId(“577a2e42fe4cc2fb56563c03”),
“name” : “organizativo”,
“title” : “Documentos Organizativos”,
“owner” : ObjectId(“573af365435155135e008a9c”),
“summary” : “Discute los documentos organizativos propuestos”,
“createdAt” : ISODate(“2016-07-04T09:37:06.867Z”),
“__v” : 0
}
> db.notifierJobs.findOne()
null
> db.tags.findOne()
{
“_id” : ObjectId(“573af65e789325545f8f85cf”),
“name” : “priueba”,
“hash” : “priueba”,
“createdAt” : ISODate(“2016-05-17T10:45:50.238Z”),
“image” : “transportation”,
“color” : “#091A33”,
“__v” : 0
}
> db.tokens.findOne()
{
“_id” : ObjectId(“5734853093b50d070f7907a9”),
“user” : ObjectId(“5734853093b50d070f7907a8”),
“scope” : “email-validation”,
“meta” : {
“ua” : “Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:46.0) Gecko/20100101 Firefox/46.0”,
“referer” : “https://democracyos.compas.alabs.org/signup”,
“host” : “democracyos.compas.alabs.org”,
“ips” : [],
“ip” : “::ffff:127.0.0.1”
},
“createdAt” : ISODate(“2016-05-12T13:29:20.973Z”),
“__v” : 0
}
> db.topics.findOne()
{
“_id” : ObjectId(“5745cac4789325545f8f85d1”),
“updatedAt” : ISODate(“2016-05-25T16:00:38.501Z”),
“mediaTitle” : “test”,
“tag” : ObjectId(“5745cb65789325545f8f85da”),
“topicId” : “test”,
“authorUrl” : “”,
“bodyTruncationText” : “”,
“source” : “”,
“closingAt” : ISODate(“2016-06-02T10:00:00Z”),
“author” : “migue”,
“links” : [],
“votable” : true,
“createdAt” : ISODate(“2016-05-25T15:54:44.487Z”),
“participants” : [],
“votes” : [],
“clauses” : [
{
“markup” : “<div><span style=\”color: rgb(0, 126, 132); font-family: ‘Titillium Web’;\”>Jaromil es activista, hacker y artista, cofundador del think&do tank Dyne.org, que alberga una comunidad digital de makers críticos y desarrolladores nómadas. </span></div>”,
“position” : 0,
“_id” : ObjectId(“5745cac4789325545f8f85d6”),
“empty” : false
},
{
“markup” : “<div><br></div>”,
“position” : 1,
“_id” : ObjectId(“5745cac4789325545f8f85d5”),
“empty” : true
},
{
“markup” : “<div><span style=\”color: rgb(0, 126, 132); font-family: ‘Titillium Web’;\”>Escribe código y lo publica como software libre y de código abierto. Su investigación se centra en la descentralizacion, los algoritmos y las prácticas media independientes. </span></div>”,
“position” : 2,
“_id” : ObjectId(“5745cac4789325545f8f85d4”),
“empty” : false
},
{
“markup” : “<div><br></div>”,
“position” : 3,
“_id” : ObjectId(“5745cac4789325545f8f85d3”),
“empty” : true
},
{
“markup” : “<div><span style=\”color: rgb(0, 126, 132); font-family: ‘Titillium Web’;\”>Jaromil ha recibido el premio Vilém Flusser Award (Transmediale) y ha sido reconocido como uno de los mejores 100 emprendedores sociales (Purpose Economy, 2014) y líder joven europeo (40 under 40, 2012).</span></div>”,
“position” : 4,
“_id” : ObjectId(“5745cac4789325545f8f85d2”),
“empty” : false
}
],
“__v” : 4,
“publishedAt” : ISODate(“2016-05-25T15:55:03.290Z”)
}
> db.user.findOne()
null
> db.users.findOne()
{
“_id” : ObjectId(“573af365435155135e008a9c”),
“salt” : “8e222c26db61181b381285faaba3d512bc6eeb6e8f47ae5ebe97a7b759b86e41”,
“hash” : “066cf4eb7d5dce6a8ef0e174b33e644de30e7a72ccc7a7a284a92afbe1ed7ec083cee9aa6117673e7fcade7eff0125762ae204a8bbefc115ff1b47a57218ab84383c4db14d5cd8a255e02a4dd3f58f3f7d5e2c162bda03db1de1170a08a08bb90dfebbeb6910458fef9e437ad66cffcb7f7160350b2a79eb83b5627f29ad407741fa222b2578295cada9774c1a3fcfa97520fe892a4d8dbe06c8d9f0e9ec0f72054851173b405c6d57e67739c3e067065cab8599784ad0b5bc5473b1e05bd01d2c56f5cf4355b12d52d9e35d8510a32e655d37053adfdf63378c0a304831f50b848e0c9716b5dd5b32999eaafc6c9a61d357690ded0b90a633fb69f252b822186888938a12bce0bc8c65c067cabfd3a227c5e5a90d38356838ae97c809061998fc9f187b781eb92e6fcd544aaf879a1249ffa4228b9728ffc51431d126c5d1bb03dc749fc19ae365ef23964c51c80459e8c7c8356b89c5e336cebbc54d630385fe063eaaf904df1c7e4dfe6dc76ad1d0ebee3dda8a1bb6cd05c7d1b6d3f947295bae277e8c9176c83dcad93c20e5dda303896847ecc879cff4b67f9ffad95d5cf30c011231ef40e86184af5392016f19618500db6e51be1d96d9fa38cc21339550562e34a7d8303ae4b7fc8fe49f0d16e7928ade24add57f79da41af5211e6d52b47ca94d018216bc8511b5df63a17525c5c46f5d36e0820abbabc8ca249cbb6”,
“email” : “hola+democracyos@alabs.org”,
“firstName” : “admin”,
“lastName” : “admin”,
“locale” : “es”,
“notifications” : {
“new-topic” : true,
“replies” : true
},
“createdAt” : ISODate(“2016-05-17T10:33:09.466Z”),
“emailValidated” : true,
“__v” : 0
}
> db.whitelists.findOne()
null
Conclusiones
Carece de funcionalidades ‘integrales’ que impiden usar la plataforma más allá de su finalidad limitada al trabajo colaborativo sobre textos. Cabe destacar la simpleza de su interfaz en comparación con COMT.
Al tratarse de un aplicativo el tipo “Comentario de texto” sus funcionalidades están limitadas a procesos de participación orientados a alcanzar consensos amplios, mediante el debate y votación de textos.
En definitiva, DemocracyOS serviría como mucho para abordar sólo una parte de lo que entendemos como procesos de participación ciudadana amplios, recomendando su revisión por parte del equipo de Decidim para funcionalidades de comentarios de texto.
Capturas de pantallas
Figura 3: Página de discusión de un texto
Figura 4: Página de discusión de un texto: detalle de cantidad de comentarios
Figura 5: Página de discusión de un texto: detalle de hilo de comentarios
Figura 6: Página de discusión de un texto: detalle de recursos, participantes y compartir con redes sociales
Figura 7: Argumentos en la discusión de un texto
Figura 8: Votación de un texto
Figura 9: Votación de un texto: posibilidad de cambio de voto
Figura 10: Votación de un texto: posibilidad de cambio de voto
Figura 11: Votación de un texto: gráfico al superar la fecha límite
Figura 12: Detalle de menú del costado: filtros y selección de texto
Figura 13: Administrador: formulario de dar de alta un texto I
Figura 14: Administrador: formulario de dar de alta un texto II