diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md deleted file mode 100644 index 9631fe31..00000000 --- a/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,89 +0,0 @@ -[:gb: Read in English](https://github.com/Program-AR/pilas-bloques/blob/develop/CODE_OF_CONDUCT_en.md) - -# Código de Conducta convenido para Contribuyentes - -## Nuestro compromiso - -Nosotros, como miembros, contribuyentes y administradores nos comprometemos a hacer de la participación en nuestra comunidad una experiencia libre de acoso para todo el mundo, independientemente de la edad, dimensión corporal, minusvalía visible o invisible, etnicidad, características sexuales, identidad y expresión de género, nivel de experiencia, educación, nivel socio-económico, nacionalidad, apariencia personal, raza, religión, o identidad u orientación sexual. - -Nos comprometemos a actuar e interactuar de maneras que contribuyan a una comunidad abierta, acogedora, diversa, inclusiva y sana. - -## Nuestros estándares - -Ejemplos de comportamiento que contribuyen a crear un ambiente positivo para nuestra comunidad: - -* Demostrar empatía y amabilidad ante otras personas -* Respeto a diferentes opiniones, puntos de vista y experiencias -* Dar y aceptar adecuadamente retroalimentación constructiva -* Aceptar la responsabilidad y disculparse ante quienes se vean afectados por nuestros errores, aprendiendo de la experiencia -* Centrarse en lo que sea mejor no sólo para nosotros como individuos, sino para la comunidad en general -* Aprender y enseñar con nuestros errores y los del prójimo. El código abierto es una construcción colectiva. - -Ejemplos de comportamiento inaceptable: - -* El uso de lenguaje o imágenes sexualizadas, y aproximaciones o - atenciones sexuales de cualquier tipo -* Comentarios despectivos (_trolling_), insultantes o derogatorios, y ataques personales o políticos -* El acoso en público o privado -* Publicar información privada de otras personas, tales como direcciones físicas o de correo - electrónico, sin su permiso explícito -* Otras conductas que puedan ser razonablemente consideradas como inapropiadas en un - entorno profesional -* _Culpar_ a quien haya escrito cierto código en el pasado. - -## Aplicación de las responsabilidades - -Los administradores de la comunidad son responsables de aclarar y hacer cumplir nuestros estándares de comportamiento aceptable y tomarán acciones apropiadas y correctivas de forma justa en respuesta a cualquier comportamiento que consideren inapropiado, amenazante, ofensivo o dañino. - -Los administradores de la comunidad tendrán el derecho y la responsabilidad de eliminar, editar o rechazar comentarios, _commits_, código, ediciones de páginas de wiki, _issues_ y otras contribuciones que no se alineen con este Código de Conducta, y comunicarán las razones para sus decisiones de moderación cuando sea apropiado. - -## Alcance - -Este código de conducta aplica tanto a espacios del proyecto como a espacios públicos donde un individuo esté en representación del proyecto o comunidad. Ejemplos de esto incluyen el uso de la cuenta oficial de correo electrónico, publicaciones a través de las redes sociales oficiales, o presentaciones con personas designadas en eventos en línea o no. - -## Aplicación - -Instancias de comportamiento abusivo, acosador o inaceptable de otro modo podrán ser reportadas a los administradores de la comunidad responsables del cumplimiento a través de pilasbloques@program.ar. Todas las quejas serán evaluadas e investigadas de una manera puntual y justa. - -Todos los administradores de la comunidad están obligados a respetar la privacidad y la seguridad de quienes reporten incidentes. - -## Guías de Aplicación - -Los administradores de la comunidad seguirán estas Guías de Impacto en la Comunidad para determinar las consecuencias de cualquier acción que juzguen como un incumplimiento de este Código de Conducta: - -### 1. Corrección - -**Impacto en la Comunidad**: El uso de lenguaje inapropiado u otro comportamiento considerado no profesional o no acogedor en la comunidad. - -**Consecuencia**: Un aviso escrito y privado por parte de los administradores de la comunidad, proporcionando claridad alrededor de la naturaleza de este incumplimiento y una explicación de por qué el comportamiento es inaceptable. Una disculpa pública podría ser solicitada. - -### 2. Aviso - -**Impacto en la Comunidad**: Un incumplimiento causado por un único incidente o por una cadena de acciones. - -**Consecuencia**: Un aviso con consecuencias por comportamiento prolongado. No se interactúa con las personas involucradas, incluyendo interacción no solicitada con quienes se encuentran aplicando el Código de Conducta, por un periodo especificado de tiempo. Esto incluye evitar las interacciones en espacios de la comunidad, así como a través de canales externos como las redes sociales. Incumplir estos términos puede conducir a una expulsión temporal o permanente. - -### 3. Expulsión temporal - -**Impacto en la Comunidad**: Una serie de incumplimientos de los estándares de la comunidad, incluyendo comportamiento inapropiado continuo. - -**Consecuencia**: Una expulsión temporal de cualquier forma de interacción o comunicación pública con la comunidad durante un intervalo de tiempo especificado. No se permite interactuar de manera pública o privada con las personas involucradas, incluyendo interacciones no solicitadas con quienes se encuentran aplicando el Código de Conducta, durante este periodo. Incumplir estos términos puede conducir a una expulsión permanente. - -### 4. Expulsión permanente - -**Impacto en la Comunidad**: Demostrar un patrón sistemático de incumplimientos de los estándares de la comunidad, incluyendo conductas inapropiadas prolongadas en el tiempo, acoso de individuos, o agresiones o menosprecio a grupos de individuos. - -**Consecuencia**: Una expulsión permanente de cualquier tipo de interacción pública con la comunidad del proyecto. - -## Atribución - -Este Código de Conducta es una adaptación del [Contributor Covenant][homepage], versión 2.0, -disponible en https://www.contributor-covenant.org/es/version/2/0/code_of_conduct.html - -Las Guías de Impacto en la Comunidad están inspiradas en la [escalera de aplicación del código de conducta de Mozilla](https://github.com/mozilla/diversity). - -[homepage]: https://www.contributor-covenant.org - -Para respuestas a las preguntas frecuentes de este código de conducta, consulta las FAQ en -https://www.contributor-covenant.org/faq. Hay traducciones disponibles en https://www.contributor-covenant.org/translations - diff --git a/CODE_OF_CONDUCT_en.md b/CODE_OF_CONDUCT_en.md deleted file mode 100644 index d9eef221..00000000 --- a/CODE_OF_CONDUCT_en.md +++ /dev/null @@ -1,135 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -* Demonstrating empathy and kindness toward other people -* Being respectful of differing opinions, viewpoints, and experiences -* Giving and gracefully accepting constructive feedback -* Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -* Focusing on what is best not just for us as individuals, but for the overall - community -* Learning and teaching through our errors and those of our pairs. Open Source code is a collective construction. - -Examples of unacceptable behavior include: - -* The use of sexualized language or imagery, and sexual attention or advances of - any kind -* Trolling, insulting or derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or email address, - without their explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting -* _Blaming_ a piece of code to a past contributor. - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -pilasbloques@program.ar. -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations - diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index 34a9092b..00000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,45 +0,0 @@ -[:gb: Read in English](https://github.com/Program-AR/pilas-bloques/blob/develop/CONTRIBUTING_en.md) - -# Cómo contribuir a Pilas Bloques - -Muchas gracias por querer colaborar en Pilas Bloques :heart:. Si no lo hiciste todavia leé el [README del proyecto](https://github.com/Program-AR/pilas-bloques/blob/develop/README.md) para tener una mejor idea de cuál es nuestro objetivo con Pilas Bloques y también instrucciones para instalar el ambiente de desarrollo. -En Pilas Bloques trabajamos con Pull Requests, por eso si queres aportar al proyecto vas a tener que forkearlo, hacerte una branch y tirar un PR al repo original. -Si no sabés con qué colaborar podés ver los [first good issues](https://github.com/Program-AR/pilas-bloques/labels/good%20first%20issue) o también el [project de Pilas Bloques](https://github.com/orgs/Program-AR/projects/1). - -## Issues - -Si encontraste un bug y querés reportarlo, o si tenés una idea para un feature para Pilas Bloques, [creá un issue describiéndolo](https://github.com/Program-AR/pilas-bloques/issues/new). - -## Pull Requests - -* El PR tiene que tener el o los issues que resuelve linkeado. Esto se puede hacer escribiendo `Fixes #` en la descripción del PR. Esto permite que el issue se cierre automáticamente al mergear el PR. -* Si el PR incluye cambios visuales se alienta incluír imágenes mostrando el cambio. -* Cada cambio o agregado debe incluír sus **tests automatizados**, ya sean unitarios o de integración. -* Todos los tests tienen que pasar. -* Todo nuevo código debe estar codificado **en inglés**. Ver apartado el apartado "Sobre el idioma" de este archivo para saber por qué. - -Ejemplo de un buen PR: https://github.com/Program-AR/pilas-bloques/pull/878 - -## Traducciones - -* Si querés mejorar o completar una traducción ya existente de Pilas Bloques podés hacerlo buscando el archivo del lenguaje en la [carpeta de traducciones](https://github.com/Program-AR/pilas-bloques/tree/develop/translations) y haciendo un pull request con tus cambios propuestos. - -* Si querés empezar la traducción de Pilas Bloques a un lenguaje que todavía no tiene, podés hacerlo creando un nuevo archivo en la [carpeta de traducciones](https://github.com/Program-AR/pilas-bloques/tree/develop/translations) y haciendo un pull request con tu traducción propuesta. - -## ¿Tenés alguna pregunta? -Nos podés arrobar acá en Github con `@pilasbloqueros` o también nos podés mandar un mail a pilasbloques@program.ar - -¡¡¡De nuevo muchas gracias por querer colaborar con el proyecto!!! :heart: :heart: - -_____________ - -## Sobre el idioma -Pilas Bloques es una aplicación cuya comunidad usuaria y desarrolladora es principalmente hispanohablante. Es por eso que la documentación y discusiones en issues y pull requests están en **español**. - -Sin embargo, viendo la necesidad de recibir aportes de varios lugares del mundo que necesitan también utilizar Pilas Bloques, estamos **admitiendo el inglés como idioma secundario** en las discusiones, y ya tenemos las primeras versiones en inglés de la documentación. - -Pero además, y fundamentalmente, **estamos comenzando el proceso de traducción de todo el código al inglés**, con el objetivo de ampliar la comunidad. Es por esto que: - -* Todo el nuevo código que se proponga en un pull request, debe estar en inglés. :gb: -* Si quien quiere hacer el aporte open source no maneja bien el inglés, el equipo de Pilas Bloques con gusto le ayudará con la traducción. :+1: -* Si un pull request modifica extensivamente un componente que estaba codificado en español, se valorarán los esfuerzos por traducir el componente. :mechanical_arm: diff --git a/CONTRIBUTING_en.md b/CONTRIBUTING_en.md deleted file mode 100644 index 61e0600e..00000000 --- a/CONTRIBUTING_en.md +++ /dev/null @@ -1,46 +0,0 @@ -# How to contribute to Pilas Bloques - -Thanks for your support! :heart:. If you hadn't done it yet, please read the [project README](https://github.com/Program-AR/pilas-bloques/blob/develop/README_en.md). There you'll find our app's main goals and instructions to get started with the development environment. -In Pilas Bloques we work using Pull Requests and feature branches. So if you want to contribute, fork the project, make your changes in a branch, and make a Pull Request to the original repo. -You can check the [first good issues](https://github.com/Program-AR/pilas-bloques/labels/good%20first%20issue) or also the [Pilas Bloques Github Projects](https://github.com/orgs/Program-AR/projects) for hints on what is there to do. - -## Issues - -If you found a bug and you want to report it, or if you have an idea for a feature for Pilas Bloques, [create an issue describing it](https://github.com/Program-AR/pilas-bloques/issues/new). - -## Pull Requests - -* Link the solved issue in your PR description using `Fixes #`. -* If you make visual changes, you are encouraged to include a screen capture showing the change. -* Include unit or integration tests for each feature or fix you make. -* Every test in the app should pass. -* Todo el nuevo codigo tiene que estar en ingles. El objetivo a futuro es que todo Pilas Bloques esté traducido al inglés. Es por ello que el código introducido con cada Pull Request debe estar en inglés. Además, si el código modifica bastante de un componente, se espera que se aproveche el PR para hacer la traducción del mismo. - -Example of a good PR: https://github.com/Program-AR/pilas-bloques/pull/878 - - -## Translations - -* If you want to improve or complete an already existing translation you can do so by editing the proper translation file in the [translations folder](https://github.com/Program-AR/pilas-bloques/tree/develop/translations) and making a pull request with your proposed changes. - -* If you want to start the translation to a language that Pilas Bloques doesn't support yet, you can do so by creating a translation file in the [translations folder](https://github.com/Program-AR/pilas-bloques/tree/develop/translations) and making a pull request with your proposed translation. - -## Do you have any questions? -You can tag us in Github with `@pilasbloqueros` or you can also send us an email to pilasbloques@program.ar - - -Thank you so much for wanting to collaborate with Pilas Bloques!!! :heart: :heart: - -_____________ - -## About the language - -Pilas Bloques has a user and developer community that are mainly spanish-speakers. That's why the documentation and PRs are mainly written in **spanish**, as well as _the code_. - -However, in order to broaden these communities we are beggining to **accept english as a secondary language for our issues and discussions** and we already have our first english docs. - -Furthermore we have a very ambitious goal: **we're starting to translate app code to english**. That's why: - -* Every newly added code in the pull request should be written in English. :gb: -* Pilas Bloques team will eagerly help you with any issues with the existing or new code. :+1: -* If a PR does extensive changes to a component, you are encouraged to translate the entire component to English. :mechanical_arm: \ No newline at end of file diff --git a/README.md b/README.md index 36da60cf..c6e453a2 100644 --- a/README.md +++ b/README.md @@ -1,80 +1,16 @@ ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) ![Ember](https://img.shields.io/badge/ember-1C1E24?style=for-the-badge&logo=ember.js&logoColor=#D04A37) -[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/Program-AR/pilas-bloques/issues) -[![open issues](https://badgen.net/github/open-issues/Program-AR/pilas-bloques)](https://github.com/Program-AR/pilas-bloques/issues) -![downloads](https://img.shields.io/github/downloads/Program-AR/pilas-bloques/total.svg) -[![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0) +¡Hola! :vulcan_salute: Este es un proyecto relacionado a [Pilas Bloques](https://pilasbloques.program.ar) :heart:. En el repositorio de ese proyecto encontrarás las guías sobre [cómo contribuir](https://github.com/Program-AR/pilas-bloques-app/blob/develop/CONTRIBUTING.md) y el [código de conducta](https://github.com/Program-AR/pilas-bloques-app/blob/develop/CODE_OF_CONDUCT.md), que son guías que aplican también a este proyecto. -[:gb: Read in English](https://github.com/Program-AR/pilas-bloques/blob/develop/README_en.md) +Hi! :vulcan_salute: This is a project related to [Pilas Bloques](https://pilasbloques.program.ar) :heart:. In that project's repository you'll find the [contribution guidelines](https://github.com/Program-AR/pilas-bloques-app/blob/develop/CONTRIBUTING_en.md) and the [code of conduct](https://github.com/Program-AR/pilas-bloques-app/blob/develop/CODE_OF_CONDUCT_en.md) which also apply to this project. _____________ -# Pilas Bloques - Una herramienta para aprender a programar +## Sobre este proyecto -

- -

+Este es el repositorio de las primeras versiones de Pilas Bloques, desarrolladas en la tecnología Ember.JS. Este proyecto ya no es el principal de Pilas Bloques, el proyecto principal es [pilas-bloques-app](https://github.com/Program-AR/pilas-bloques-app). -## Sobre la aplicación - -Pilas Bloques es una aplicación para enseñar y aprender a programar, desarrollada especialmente para el aula. Se proponen desafíos con diversos niveles de dificultad para acercar a las y los estudiantes al mundo de la programación por medio de bloques. Para más información, ver el [Acerca De](https://pilasbloques.program.ar/acerca-de-pilas-bloques/) de Pilas Bloques. - -![](https://github.com/Program-AR/pilas-bloques/blob/master/screenshots/desafios.png) -![](https://github.com/Program-AR/pilas-bloques/blob/master/screenshots/editor.png) - - - -## Cómo contribuír - -¡En la guia de [CONTRIBUTING](https://github.com/Program-AR/pilas-bloques/blob/develop/CONTRIBUTING.md) tenés toda la informacion necesaria para contribuir al proyecto! - -## Cómo instalar el entorno de desarrollo - -Para colaborar en Pilas Bloques vas a tener que instalar [Git](https://git-scm.com/) y clonar el repositorio de [Pilas Bloques](https://github.com/Program-AR/pilas-bloques): - -``` -git clone https://github.com/Program-AR/pilas-bloques.git -``` - -### Pre-requisitos - -* Node. La version requerida para el proyecto está en el archivo `.nvmrc`. - - Debian/Ubuntu: - ``` - git clone https://github.com/nvm-sh/nvm.git ~/.nvm - source ~/.nvm/nvm.sh - source ~/.nvm/install.sh - nvm install . - ``` - -### Usá la version de NodeJS de Pilas Bloques: -``` -nvm use -``` - -### Instalá las dependencias del proyecto: -``` -npm install -``` - -## Comandos comunes de desarrollo - -### Correr todos los tests: -``` -npm test -``` - -### Levantar Pilas Bloques: -``` -npm run start -``` - -### Buildear Pilas Bloques: - -``` -npm run build -``` +Para contribuir o aportar, se recomienda empezar por ese proyecto. Este proyecto pronto será deprecado. ### Sobre los grupos experimentales: @@ -89,7 +25,7 @@ En Windows esto se tiene que hacer con: SET "EXPERIMENT_GROUP=treatment" && npm run start ``` -Los grupos experimentales pueden ser: `notAffected`, `control`, `treatment` y `autoassign`. +Los grupos experimentales pueden ser: `notAffected`, `control`, `treatment`, `autoassign` y `off`. - `notAffected`: (default) no muestra ningún tipo de feedback sobre la solución propuesta. - `control`: al finalizar un desafío muestra las expectativas existentes para el mismo, sin informar si se cumplieron o no. @@ -97,34 +33,3 @@ Los grupos experimentales pueden ser: `notAffected`, `control`, `treatment` y `a - `autoassign`: asigna aleatoriamente un grupo experimental en tiempo de ejecución (elige entre `control` y `treatment). - `off`: Siempre muestra las expectativas y la barra de progreso. Deja de mostrar la encuesta de preguntas al usuario. -### Empaquetando instaladores: - -- Por defecto, al hacer un _release_ de la aplicación, el CI se encarga de generar todos los instaladores empaquetados. Por ejemplo: al correr `npm run release:patch`. -- Para hacerlo de manera local, primero hay que correr el comando `EXPERIMENT_GROUP=treatment npm run build:prod` (seteando la variable de entorno relacionada al grupo experimental) y luego buildear el instalador correspondiente a tu SO. Por ejemplo: `npm run pack:linux`. -- Si se desea buildear para otro SO (que no sea el tuyo) hay que tener en cuenta que solamente se puede hacer desde linux. Además, hay que tener instaladas ciertas dependencias: - - **Windows:** se necesita tener instalado `nsis`, `wine` y `wine-mono`. - - Debian/Ubuntu: - - ``` - sudo apt install nsis - ``` - - Arch: - - ``` - yay -S nsis - ``` - - **macOS:** no disponible. - -### Preparar el backend (opcional): - -Para tener un backend para probar funcionalidades relacionadas a usuarios y a guardar desafios es necesario tener levantado los proyectos de Pilas Bloques API, Pilas Bloques Analytics, (ambos disponibles en el proyecto [backend](https://github.com/Program-AR/pilas-bloques-backend)) y una base de datos [MongoDB](https://www.mongodb.com/). - -_____________ - -### Release & deploy (Solo para el equipo de Pilas Bloques) -https://github.com/Program-AR/pilas-bloques/wiki/Release-y-Deploy - -_____________ - -### Registro de cambios -[aquí](notasDeVersion.md) diff --git a/README_en.md b/README_en.md deleted file mode 100644 index ddf26864..00000000 --- a/README_en.md +++ /dev/null @@ -1,148 +0,0 @@ -![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) -![Ember](https://img.shields.io/badge/ember-1C1E24?style=for-the-badge&logo=ember.js&logoColor=#D04A37) - -[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/Program-AR/pilas-bloques/issues) -[![open issues](https://badgen.net/github/open-issues/Program-AR/pilas-bloques)](https://github.com/Program-AR/pilas-bloques/issues) -![downloads](https://img.shields.io/github/downloads/Program-AR/pilas-bloques/total.svg) -[![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0) - -[:argentina: Leer en español](https://github.com/Program-AR/pilas-bloques/blob/develop/README.md) -_____________ - -# Pilas Bloques - A tool to learn computer programming - -

- -

- -## About - -Pilas Bloques is an application to learn computer programming, specially developed for the classroom. We offer challenges with different levels of complexity to introduce students into the universe of computer programming with blocks. For more information read [the spanish about page](https://pilasbloques.program.ar/acerca-de-pilas-bloques/). - -![](https://github.com/Program-AR/pilas-bloques/blob/master/screenshots/desafios.png) -![](https://github.com/Program-AR/pilas-bloques/blob/master/screenshots/editor.png) - -### What does computer programming with blocks mean? - -It means developing programs with actions and instructions introduced by combining blocks. The result of fitting blocks together is a program that (hopefully!) solves the problem or challenge offered. - -### Why is this learning methodology positive? - -- Because each abstract concept associated with programming has its visual representation. -- Because it avoids the difficulties produced by the formal syntax of a written language (and the frustration when we make a mistake in writing!). -- The blocks are selected, dragged, fit together, and the task is ready. - -### What makes Pilas Bloques different from the other tools? - -The main difference is that this platform was created in support of a didactic sequence to learn programming at school. - -### What’s a didactic sequence? - -It’s the plan by means of which teachers expect students to learn a topic. Pilas Bloques didactic sequence was created and tested by Argentine teachers and researchers. Nowadays, this proposal is being studied in depth and expanded. Learn more about the initiatives we are working on. - -### Who can solve Pilas Bloques challenges? - -These challenges can be solved by anyone. However, at present we offer two Teachers’ Books as supporting material, targeted at the elementary school , so that children between 5 and 8 years old can take advantage of the activities of the First Cycle, and children between 9 and 12 years old will be able to take advantage of the activities of the Second Cycle. - -### And can anyone solve these challenges on their own? - -This tool was thought as an aid for the teacher and the student along the teaching-learning process of computer programming at school. In these didactic sequences, the inquiry-based methodology is fundamental. However, our recommendation is that the teacher serves as the guide and assists during the student’s learning process. - -## Contributing - -You can find all the information you need to start contributing in Pilas Bloques in the [CONTRIBUTING](https://github.com/Program-AR/pilas-bloques/blob/guidelines/CONTRIBUTING_en.md) guidelines! - -## Getting Started - -In order to collaborate, first of all you will install [Git](https://git-scm.com/) and then you must clone the [Pilas Bloques](https://github.com/Program-AR/pilas-bloques) repository. - -``` -git clone https://github.com/Program-AR/pilas-bloques.git -``` - -### Prerequisites - -* Node. The version required is indicated in `.nvmrc` file. - - Install it: - ``` - git clone https://github.com/nvm-sh/nvm.git ~/.nvm - source ~/.nvm/nvm.sh - source ~/.nvm/install.sh - nvm install . - ``` - -### Use Pilas Bloques NodeJS target version: -``` -nvm use -``` - -### Install all project dependencies: -``` -npm install -``` - -## Daily Development commands - -### Run all tests: -``` -npm test -``` - -### Start Pilas Bloques: -``` -npm run start -``` - -### Build Pilas Bloques - -``` -npm run build -``` - -### About experiment groups: - -Pilas Bloques can be compiled in different ways depending on the experiment group. This can be achieved by setting the environment variable `EXPERIMENT_GROUP` at build time: - -``` -EXPERIMENT_GROUP=treatment npm run start -``` - -In Windows this is done with: - -``` -SET "EXPERIMENT_GROUP=treatment" && npm run start -``` - -The experiment groups are: `notAffected`, `control`, `treatment`, `autoassign` and `off`. - -- `notAffected`: (default) it does not show any feedback on current solution, just challenge completion. -- `control`: after completing a challenge its expectations are shown, but with no information regarding whether they were fulfilled. -- `treatment`: this one has a training period. During this time expectations are shown for each challenge, alongside a progress bar that awards points for each passed expectation. Blocks in the workspace have their own feedback too. Once the training period is over, the app behavior changes to *control*. -- `autoassign`: randomly assigns an experiment group at run time (between `control` and `treatment`). -- `off`: always shows expectations and points. Doesn't show survey questions to the user. - -### Packing installers: - -- By default, after _releasing_ the app, the CI handles all installers generations. E.g.: after running `npm run release:patch`. -- If you want to do it locally, first you need to run the command `EXPERIMENT_GROUP=treatment npm run build:prod` (setting EXPERIMENT_GROUP environment variable) and then build the installer corresponding to your OS. E.g.: `npm run pack:linux`. -- If you want to pack an installer for another OS you need to know that this is only possible if you use linux. In addition, you need to install the following dependencies: - - **Windows:** you need to install `nsis`, `wine` and `wine-mono`. - - Debian/Ubuntu: - - ``` - sudo apt install nsis - ``` - - Arch: - - ``` - yay -S nsis - ``` - - **macOS:** unavailable. - -### Preparing backend (for users stuff): - -If you want to test users stuff or save challenges it is necessary to fulfill some requirements: Run the apps Pilas Bloques API, Pilas Bloques Analytics (both accesible in the [backend project](https://github.com/Program-AR/pilas-bloques)) and a [MongoDB](https://www.mongodb.com/) database. - -### Changeslog -[here](notasDeVersion.md)