Code Monkey home page Code Monkey logo

ajuntamentdebarcelona / decidim-barcelona Goto Github PK

View Code? Open in Web Editor NEW
76.0 29.0 24.0 15.01 MB

Decidim Barcelona - Direct and participatory democracy web platform based on Decidim framework

Home Page: https://www.decidim.barcelona

License: GNU Affero General Public License v3.0

Ruby 17.19% JavaScript 3.64% CSS 0.95% HTML 77.09% Python 0.01% Dockerfile 0.03% SCSS 1.08% Procfile 0.01%
decidim agplv3 decidim-barcelona barcelona government democracy

decidim-barcelona's People

Contributors

agustibr avatar amaia avatar andreslucena avatar apuertadelaguila avatar beagleknight avatar davidbeig avatar decidim-bot avatar dependabot[bot] avatar entantoencuanto avatar fblupi avatar fixdocker avatar htmlboy avatar itsgenis avatar ivan-mr avatar jesusdb avatar jmnzdz avatar josepjaume avatar lastpotion avatar leio10 avatar leusev avatar marinamuca avatar martgnz avatar microstudi avatar mrcasals avatar oriolgual avatar sbrocos avatar smartosr avatar tramuntanal avatar verarojman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

decidim-barcelona's Issues

Handle unkown processes slugs with a 404 error

๐ŸŽฉ User Story

I am getting a 500 error when I try to access a participatory proces which slug doesn't exists in our database. i.e. https://www.decidim.barcelona/processes/test

It would be nice to handle this with a 404 error.

๐Ÿ“‹ Related documentation

https://sentry.io/empresaula-e0/barcelona/issues/241230969/

NoMethodError: undefined method `id' for nil:NilClass
  from config/routes.rb:7:in `block (2 levels) in <top (required)>'
  from action_dispatch/routing/redirection.rb:51:in `path'
  from action_dispatch/routing/redirection.rb:25:in `serve'
  from action_dispatch/routing/redirection.rb:21:in `call'
  from action_dispatch/routing/mapper.rb:17:in `block in <class:Constraints>'

๐ŸŽฏ Acceptance criteria

I get a 404 error when I navigate to https://www.decidim.barcelona/processes/test

๐Ÿ“Œ Related issues

None

Review and explain privacy implications of account deletion

๐ŸŽฉ Description

This issue is meant to track the specifics of decidim/decidim#1735 in the decidim.barcelona instance. For example:

  • Explain that the same person will be able to recreate another account and verify it through the census in the future (#143).
  • If any personal information is kept, how to exercise their ARCO rights (#142).
  • Whether any of this information is still kept by third-party or cloud services and for how long. For example, I suppose that there are backups of the database saved for some time.

๐Ÿ“Œ Related issues

Searching, filtering and validating organizations

๐ŸŽฉ User Story

In order to facilitate organizations' verification process, in previous versions we used to had a searching engine and filtering engine which made easier this process
We need to restore this in order to be able to:
- Search organizations by name
- Filter by validation state:
ยท pending;
ยท rejected;
ยท validated;
- and finally, to be able to change validation state.

๐Ÿ“‹ Related documentation

๐ŸŽฏ Acceptance criteria

๐Ÿ“Œ Related issues

Resend email confirmation not working on an Organization (Tenant)

๐ŸŽฉ User Story

We don't know if this is for all decidim or only on this Organization (Tenant).

On https://meta.decidim.barcelona/, when I create a non confirmed user and I try to login I get the message that I need to confirm the email, but when I go to resend confirmation instructions the system says that I'm already confirmed.

image

image

๐Ÿ“‹ Related documentation

๐ŸŽฏ Acceptance criteria

๐Ÿ“Œ Related issues

Participatory Process Debates

๐ŸŽฉ User Story

Debates are a way for the organizations to encourage discussion with the users of the platform. Their behavior is similar to a forum, but users can't propose debates - just admins.

A debate has:

  • A title [I18n]
  • A description [I18n]
  • An image
  • Opening datetime
  • Closing datetime

As the basis for user interaction in a debate we're gonna use "comments" - no need to invent other mechanisms right now.

Comments are only open within the dates of the debates.

Note: It'd be great to have this in a different repository as a separate addon.

๐Ÿ“‹ Related documentation

"Debates" feature in decidim.barcelona: https://decidim.barcelona/pam/4/debates

http://decidim-design.herokuapp.com/debate-view-AMA/
http://decidim-design.herokuapp.com/debate-view/
http://decidim-design.herokuapp.com/debate-view-login/

๐ŸŽฏ Acceptance criteria

Debates can be created from the admin panel, users can participate on the debates via comments.

๐Ÿ“Œ Related issues

None

Better format validation and explanation on DNI/NIE/Passport field

From @andreslucena on February 8, 2017 16:18

๐ŸŽฉ User Story

As a user, when I go to verify my residency I don't know what format the system expect that I introduce the data: is it NNNNNNNNNL or is it NNNNNNNNN-L or is it NNNNNNNNNl (letter on lowercase)?

๐Ÿ“‹ Related documentation

๐ŸŽฏ Acceptance criteria

I should see some help or validation on the client (javascript) so I know what format I should introduce it.

๐Ÿ“Œ Related issues

Copied from original issue: AjuntamentdeBarcelona/decidim#865

Review security and privacy implications of the current data flow with service providers and third-parties

๐ŸŽฉ Description

Based on the analysis of the data flow of the current implementation and hosting of decidim.barcelona (#141), we should check its privacy and security implications, especially related to third-parties and service providers.

The Plan de Privacidad raises the following concerns:

  • Does the current platform comply with the legal requirements to manipulate sensitive personal data like DNI? (ยง2.3.2 y ยง2.3.3)
  • Would it be possible to ensure that the data is only stored and processed in Europe? (ยง2.3.2, ยง2.3.3 and ยง3.2)
  • Are the relevant privacy and security options enabled on all service providers? (ยง2.4.9)
  • Are there any risks associated with the structure of the database? (ยง2.3.3)
  • Would it make sense to put in place data dissociation techniques? (ยง2.3.3)

In addition to the analysis done in the Plan de Privacidad of the IP serving decidim.barcelona on 2016-12-02, as of today (2017-08-10) the platform seems to be served by a Content Delivery Network (CDN) of 8 IP addresses:

$ host decidim.barcelona
decidim.barcelona has address 54.228.197.50
decidim.barcelona has address 46.137.108.231
decidim.barcelona has address 54.247.97.70
decidim.barcelona has address 176.34.104.161
decidim.barcelona has address 54.247.88.150
decidim.barcelona has address 54.217.215.80
decidim.barcelona has address 54.228.198.113
decidim.barcelona has address 176.34.235.230
decidim.barcelona mail is handled by 0 mail.decidim.barcelona.

Out of which 3 are outside of Europe (in the USA): 54.228.197.50, 54.217.215.80 and 54.228.198.113. This probably means that DNIs, along with user names and email addresses are already processed outside of Europe. Someone more knowledgeable than me about how TLS works on Heroku and Amazon CDNs should verify this claim.

After this issue has been solved, we should reconsider what should be explained to the user.

๐Ÿ“Œ Related issues

More Projects per page on pagination

๐ŸŽฉ User Story

Now we have 14 processes on Gracia and 21 on Eixample, but the pagination is on 12. Being so few processes it would be nice if projects per_page is 30 so we can see all the projects without paginating.

๐Ÿ“‹ Related documentation

๐ŸŽฏ Acceptance criteria

I should see all the projects on the same page.

๐Ÿ“Œ Related issues

Staging environment & deploys to staging and production

From @furilo on May 5, 2017 8:51

@andreslucena @oriolgual @josepjaume should we plan the flow to test the new feature and taking it into production?

Staging

We need a staging environment with full data to be able to properly test migration (#10) and import (#11) scripts, and for this probably access to console/the machine. If this poses a problem, we'd need a full data set we can load in our own machines (or staging, which we'll have anyway) to test those two sensible pieces. We can set up these staging environment, but we need full data. We feel testing without full real data will lead to surprises when we apply full data.

Production

We'll have to define steps to launch into production, basically deploy new code, migrate and import, but we can work on this once we have tested over staging so we should not worry about this now.

cc @xabier

Copied from original issue: decidim-archive/decidim-accountability#13

Verification with NIE doesn't work

๐ŸŽฉ User Story

When I go to verify my residence with a NIE I get an error that the document number is incorrect. It isn't. It fails with at least 2 different users.

๐Ÿ“‹ Related documentation

imatge

๐ŸŽฏ Acceptance criteria

NIE residence verification should work.

๐Ÿ“Œ Related issues

Script to migrate from Decidim::Results to Decidim::Accountability

Make a script to copy all records from Decidim::Results::Result to Decidim::Accountability::Result maintaining ids (to keep the match with the Project Monitor data).

This is more specific to Barcelona, so the script will not be part of the Decidim::Accountability engine, but I'm recording it here to have a list of pending tasks.

@xabier @andreslucena @josepjaume @oriolgual when the time comes who will be doing the data migration? Will we (@PopulateTools) have access to the server to do it? Or at least a staging server to test the script?

Copied from original issue: decidim-archive/decidim-accountability#10

Problems creating new process

๐ŸŽฉ User Story

I tried to create a new participatory process (also @arnaumonty ). It was imposible. We need this relatively urgently. I used the same text for all the short and long descriptions because we needed to create a process and then handle the admin to somebody else to fill the form.

When trying to quickly fill some forms I clicked the "Create participatory process" button the system responded by coloring in red some empty camps. After filling those when clicking the "Create participatory process" this was the result:

image

๐Ÿ“‹ Related documentation

๐ŸŽฏ Acceptance criteria

New processes can be created (not published) without all the information introduced beforehand

๐Ÿ“Œ Related issues

Postal code doesn't belong to district (when it is)

๐ŸŽฉ User Story

As a registered user, when I try to verificate with the municipal API, I get an error that this postal code doesn't belong to the district. It's an error, this particular district (Ciutat Vella) has the postal codes 08001, 08002 and 08003.

๐Ÿ“‹ Related documentation

imatge

๐ŸŽฏ Acceptance criteria

It should allow me to verify with this data.

๐Ÿ“Œ Related issues

Migrate decidim-accountability old engine to the new one

๐ŸŽฉ User Story

We are including decidim-accountability into the decidim gem so we are in the process of changing some things.

We are gonna need some changes in decidim-barcelona to integrate the new engine version:

  • Remove TemplateTexts and use Feature settings. Use this migration
  • Migrate data
  • Include the Result custom importer and exporter

Customize message on Projects voting

๐ŸŽฉ User Story

Right now we have the same message for all the votings:

"En quins projectes creus que hem de destinar el pressupost? Has d'assignar com a mรญnim 1.500 โ‚ฌ als projectes que desitges i votar amb les teves preferรจncies per definir el pressupost."

We need to be able to change it depending on the Participatory Process, for instance for Gracia process: "Per poder votar has de seleccionar amb el sistema de โ€œcistella de la compraโ€ tots els projectes que vulguis votar fins a arribar a un mร xim de 150.000 โ‚ฌ. Podeu participar i votar totes les persones empadronades a Grร cia."

๐Ÿ“‹ Related documentation

๐ŸŽฏ Acceptance criteria

As a user I should see the new message for this process.

๐Ÿ“Œ Related issues

Problem when uploading avatar image

This is a bug report

When trying to upload an image into my user profile to be used as an Avatar, weirdly the page asks me to introduce the password again, when I do I get back to the first step, not being capable to update my profile with my image.

image

I can reproduce this once and again.

Add recommended development environment on README

๐ŸŽฉ User Story

Right now we've a Docker configuration through docker-compose. Is that the recommended way?

๐Ÿ“‹ Related documentation

๐ŸŽฏ Acceptance criteria

Going to README.md I should see the instructions to set up the project.

๐Ÿ“Œ Related issues

Sharing Link Option

๐ŸŽฉ User Story

Sharin Link Option is not working it is not show the link to share.
Tested on proposals and events.

๐Ÿ“‹ Related documentation

decidim_sharelink

๐ŸŽฏ Acceptance criteria

๐Ÿ“Œ Related issues

Projects voting: scopes should depend on the process

๐ŸŽฉ User Story

Right now I can see the Ambit scope for filtering on all the Projects. This doesn't have much sense because this votings for this processes is always on only one district:

imatge

๐Ÿ“‹ Related documentation

๐ŸŽฏ Acceptance criteria

I should not see this filters on this processes.

๐Ÿ“Œ Related issues

Data flow diagram

๐ŸŽฉ Description

The Plan de Privacidad ยง2.3.3 and ยง4.3.5 recommends having a data flow diagram for the decidim.barcelona instance.

A data flow diagram is a graphical representation of the "flow" of data through an information system, modelling its process aspects. (Wikipedia: https://en.wikipedia.org/wiki/Data_flow_diagram)

Having such a diagram would allow us to:

  • Identify risk in the manipulation of the data on the platform, especially related to third party or service providers.
  • Keep track of changes in the platform and its underlying infrastructure when the data flow changes.
  • Prepare us to communicate about privacy issues related to data management to stakeholders and citizens.

๐Ÿ“Œ Related issues

Static map for meetings doesn't work on every tenant

This is a Bug Report

Creating this one on our installation, because I don't know if a misconfiguration on our side or it's on the framework.

๐ŸŽฉ Description

  • What went wrong?
    When I go to a meeting created on a multitenant, it doesn't show the static map. It doesn't happen on every tenant.

  • What did you expect should have happened?
    To show the map on a meeting.

  • What was the config you used?

  • What stacktrace or error message from your provider did you see?

The image "[URL]โ€ cannot be displayed because it contains errors.

๐Ÿ“‹ Additional Data

  • Decidim deployment where you found the issue: decidim.barcelona
  • Browser & version:
  • Screenshot:
    image
  • Error messages:

The image "[URL]โ€ cannot be displayed because it contains errors.

Docker compose fail on build

๐ŸŽฉ User Story

As a developer, when I clone a clean copy and run
$ docker-compose build

I get an error:

Step 12 : RUN cd /tmp && bundle install
 ---> Running in 53a7badfc8bc
The path `/tmp/engines/decidim-debates` does not exist.
ERROR: Service 'app' failed to build: The command '/bin/sh -c cd /tmp && bundle install' returned a non-zero code: 13

I've the latest stable release (1.10)

$ docker-compose --version
docker-compose version 1.10.0, build 4bd6f1a

๐Ÿ“‹ Related documentation

๐ŸŽฏ Acceptance criteria

I should run $ docker-compose build without errors

๐Ÿ“Œ Related issues

500 error on Debates

From @andreslucena on February 15, 2017 11:34

This is a Bug Report

๐ŸŽฉ Description

For bug reports:

  • What went wrong? If I go to a Debate on the PAM process it doesn't work
  • What did you expect should have happened? To work
  • What stacktrace or error message from your provider did you see? 500 error

๐Ÿ“Œ Related issues

  • #813
  • #874

๐Ÿ“‹ Additional Data

  • Decidim deployment where you found the issue: decidim.barcelona
  • Browser & version: Firefox 51.0.1
  • Screenshot:
  • Error messages: 500 error, "Hi ha hagut un problema amb el nostre servidor. Si us plau, torna-ho a intentar mรฉs tard."
  • URL to reproduce the error: https://decidim.barcelona/processes/1/f/9/debates/1

Copied from original issue: AjuntamentdeBarcelona/decidim#971

translation missing on user roles options

๐ŸŽฉ User Story

Translation missing on user roles options within a process...
Not displayed in any language.
Current message shown: translation missing: ca.decidim.admin.model....

๐Ÿ“‹ Related documentation

๐ŸŽฏ Acceptance criteria

๐Ÿ“Œ Related issues

Comment notifications on PROPOSALS

๐ŸŽฉ User Story

Users (either person or organization) who have made a proposal in an open process, are not receiving any notification, when another user makes a comment, despite having turned on notification options panel on user settings.

๐Ÿ“‹ Related documentation

๐ŸŽฏ Acceptance criteria

๐Ÿ“Œ Related issues

Don't redirect to the verification through the census right after account creation

๐ŸŽฉ Step to reproduce the bug

  1. I create a new account.
  2. I receive a confirmation email (expected).
  3. I follow the link in the confirmation email.
  4. I enter my email and password to login.
  5. I am redirected to the verification.through the census

screenshot from 2017-08-10 09-16-07

I think this is problematic because it probably leads many people to believe that the verification through the census is a required and second step after creating an account. It's actually not the case and I can click "Processos" to continue navigating the website without verifying my account.

Without putting much thought into it, a better page to redirect new users could be /processes.

๐Ÿ“Œ Related issues

  • #143: because the mechanisms and privacy implications of the verification through the census are not explained.
  • decidim/decidim#1705: because the differences between a registered and a verified account are not explained.

Comment notifications on RESULTS

๐ŸŽฉ User Story

The authors of results -regardless of the role they have been assigned (user, contributor, administrator)- must receive notifications of any comment made by another user.

๐Ÿ“‹ Related documentation

๐ŸŽฏ Acceptance criteria

๐Ÿ“Œ Related issues

District names not shown on users/citizens verification form

๐ŸŽฉ User Story

District names not shown on users/citizens verification form, instead there's a list of numbers.
Although numbers are related to districts, normally a citizen don't know this relation, so what should be shown are District names.

๐Ÿ“‹ Related documentation

captura de 2017-10-25 13-47-25

๐ŸŽฏ Acceptance criteria

๐Ÿ“Œ Related issues

Missing i18n on "not authorized" modal

From @andreslucena on February 10, 2017 11:25

This is a Bug Report

๐ŸŽฉ Description

When a User has been verified for a District and try to vote on another one (for instance Eixample and Gracia) it sees an error with i18n.

The i18n string is missing. This is not the first time that we have this kind of issues. How can we detect this bugs without getting to production?

๐Ÿ“Œ Related issues

๐Ÿ“‹ Additional Data

  • Decidim deployment where you found the issue: decidim-barcelona
  • Browser & version: Firefox
  • Screenshot:
    imatge
  • Error messages:
  • URL to reproduce the error:

Copied from original issue: AjuntamentdeBarcelona/decidim#885

Missing links on footer

๐ŸŽฉ User Story

There are some links missing on the default layout: the social media icons on the footer.

Old version:
imatge

New version:
imatge

๐Ÿ“‹ Related documentation

๐ŸŽฏ Acceptance criteria

๐Ÿ“Œ Related issues

Clarify exercise of ARCO rights

๐ŸŽฉ Description

The Spanish Ley Orgรกnica de Protecciรณn de Datos de Carรกcter Personal specifies that users who are asked for personal information must be informed about how to exercise their rights to Access, Rectify, Cancel, and Oppose (ARCO) personal information about themselves:

https://es.wikipedia.org/wiki/Ley_Org%C3%A1nica_de_Protecci%C3%B3n_de_Datos_de_Car%C3%A1cter_Personal_(Espa%C3%B1a)

ARCO rights regarding decidim.barcelona can already be exercised through the usual channels of the Ajuntament de Barcelona as stated in the terms of use:

screenshot from 2017-08-09 16-22-26

On top of this we could add that for questions regarding ARCO rights, users can write to [email protected].

Regarding how to verify that a request sent to the Ajuntament corresponds to a given decidim account:

  • Registered accounts can be verified through email. The citizen must specify the email account of their decidim account in their request and the Ajuntament must verify their email address by sending them an email.
  • Verified accounts can be verified through the census.

๐Ÿ“Œ Related issues

Explain the verification through the census

The Plan de Privacidad (ยง2.2.2) recommends explaining the verification through the census to user. We are asking them for sensitive personal information (date of birth and DNI) and getting their informed consent (as required by the LOPD) needs an understandable explanation:

  • Why we are asking for this data (and not something else)
  • How does the verification work
  • What does it imply in terms of data stored on the decidim platform

While working on this, work on an harmonized way of asking for, and explaining, the recollection of personal data (ยง2.2.5).

screenshot from 2017-08-09 17-42-31

๐Ÿ“Œ Related issues

Broken loop on project voting

๐ŸŽฉ User Story

As a newly registered user, when I go to vote to projects I get the "verification" modal. Then I submit my municipal census data and get an OK response (green notice that says "you've been verified"). Then I try to vote and get the same "verification" modal again. It's a loop.

๐Ÿ“‹ Related documentation

๐ŸŽฏ Acceptance criteria

I should vote without problems as a verified user.

๐Ÿ“Œ Related issues

District "Ciutat" on verification of residence

๐ŸŽฉ User Story

When I go to verify my residence, there's a district called "Ciutat". This district doesn't exists on Barcelona.

imatge

๐Ÿ“‹ Related documentation

๐ŸŽฏ Acceptance criteria

I should only get the 10 districts of the city.

๐Ÿ“Œ Related issues

Accessible and understandable terms of use

๐ŸŽฉ Description

The Plan de Privacidad recommends explaining:

  • Clarify the restrictions in place regarding the use of personal information (ยง2.2.5).

  • The terms of use and especially their privacy implications in an accessible manner (ยง2.4.9):
    ยซ Condiciones de uso y polรญtica de privacidad. Explicar de forma accesible las relaciones contractuales, incidiendo en las consecuencias y riesgos de participaciรณn, en los deberes, recomendaciones y prohibiciones. Visibilizar a travรฉs de contenidos grรกficos. ยป

  • So far we have a single page "Termes i condicions d'รบs". Maybe we should have a separate page for the privacy policy.

  • This would be the place to explain that

    • The published content has no restriction on commercial use (CC-BY-SA and ODC-ODbL) and why. The content on Decidim is published using copyleft licenses which are protective: derived work has to be published under similar conditions. This would apply for example to an advertising campaign reusing content from Decidim: the advertisement should be copyleft as well. In the case of open data, this restricts the possibility of combining open data from Decidim with, for example, marketing databases with an incompatible license or share your improved database as copyleft.
    • The copyleft licenses only apply to the content that is made public, not to the whole database and personal information. For example the list of emails or the data entered during the verification through the census is not copyleft :)
    • The fact that the licenses have no commercial restrictions, doesn't mean that the platform will sell data but that the data that will be public anyway can be used for commercial purposes, within a copyleft protection.
  • Legal age requirements (ยง4.4):
    ยซ Menores de 16 aรฑos. Es conveniente analizar las posibles consecuencias de la ausencia de mecanismos para garantizar la participaciรณn del pรบblico al que va dirigido, asรญ como el nivel de riesgo real de que esto suceda. Considerar la inclusiรณn de una declaraciรณn expresa durante el registro (a travรฉs de una casilla de verificaciรณn). ยฟExisten protocolos o mecanismos de actuaciรณn para estos casos? ยฟCรณmo se aborda desde las plataformas externas a Decidim esta cuestiรณn? ยป

  • After doing this work, we should see how to port it to Decidim as a whole (decidim/decidim#1710).

๐Ÿ“‹ Related documentation

๐Ÿ“Œ Related issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.