diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 00000000..bf6ddae5 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,8 @@ +{ + "env": { + "browser": true + }, + "parserOptions": { + "ecmaVersion": 6 + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..b512c09d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules \ No newline at end of file diff --git a/.nyc_output/27b641a160cd2bf6d1d2fc1e7e3eb917.json b/.nyc_output/27b641a160cd2bf6d1d2fc1e7e3eb917.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/.nyc_output/27b641a160cd2bf6d1d2fc1e7e3eb917.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/.nyc_output/daeb5cef6859e21f33aedcff20b45743.json b/.nyc_output/daeb5cef6859e21f33aedcff20b45743.json new file mode 100644 index 00000000..5daa4b4e --- /dev/null +++ b/.nyc_output/daeb5cef6859e21f33aedcff20b45743.json @@ -0,0 +1 @@ +{"C:\\Users\\NatalyPorras\\Documents\\Nataly-Porras\\lim-2018-05-bc-core-pm-socialnetwork\\src\\js\\app.js":{"path":"C:\\Users\\NatalyPorras\\Documents\\Nataly-Porras\\lim-2018-05-bc-core-pm-socialnetwork\\src\\js\\app.js","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":23,"column":2}},"1":{"start":{"line":2,"column":2},"end":{"line":22,"column":3}},"2":{"start":{"line":3,"column":4},"end":{"line":17,"column":9}},"3":{"start":{"line":5,"column":8},"end":{"line":5,"column":44}},"4":{"start":{"line":9,"column":24},"end":{"line":9,"column":34}},"5":{"start":{"line":10,"column":27},"end":{"line":10,"column":40}},"6":{"start":{"line":11,"column":8},"end":{"line":15,"column":9}},"7":{"start":{"line":12,"column":10},"end":{"line":12,"column":45}},"8":{"start":{"line":14,"column":10},"end":{"line":14,"column":30}},"9":{"start":{"line":16,"column":8},"end":{"line":16,"column":27}},"10":{"start":{"line":20,"column":4},"end":{"line":20,"column":45}},"11":{"start":{"line":21,"column":4},"end":{"line":21,"column":39}},"12":{"start":{"line":25,"column":0},"end":{"line":40,"column":2}},"13":{"start":{"line":26,"column":2},"end":{"line":39,"column":7}},"14":{"start":{"line":27,"column":6},"end":{"line":27,"column":41}},"15":{"start":{"line":31,"column":22},"end":{"line":31,"column":32}},"16":{"start":{"line":32,"column":25},"end":{"line":32,"column":38}},"17":{"start":{"line":33,"column":6},"end":{"line":37,"column":7}},"18":{"start":{"line":34,"column":8},"end":{"line":34,"column":43}},"19":{"start":{"line":36,"column":8},"end":{"line":36,"column":28}},"20":{"start":{"line":38,"column":6},"end":{"line":38,"column":25}},"21":{"start":{"line":42,"column":0},"end":{"line":60,"column":2}},"22":{"start":{"line":43,"column":2},"end":{"line":59,"column":7}},"23":{"start":{"line":46,"column":6},"end":{"line":46,"column":66}},"24":{"start":{"line":47,"column":6},"end":{"line":47,"column":40}},"25":{"start":{"line":51,"column":22},"end":{"line":51,"column":32}},"26":{"start":{"line":52,"column":25},"end":{"line":52,"column":38}},"27":{"start":{"line":53,"column":6},"end":{"line":57,"column":7}},"28":{"start":{"line":54,"column":8},"end":{"line":54,"column":38}},"29":{"start":{"line":55,"column":13},"end":{"line":57,"column":7}},"30":{"start":{"line":56,"column":8},"end":{"line":56,"column":41}},"31":{"start":{"line":58,"column":6},"end":{"line":58,"column":25}},"32":{"start":{"line":61,"column":0},"end":{"line":67,"column":2}},"33":{"start":{"line":62,"column":2},"end":{"line":66,"column":5}},"34":{"start":{"line":68,"column":0},"end":{"line":78,"column":2}},"35":{"start":{"line":70,"column":17},"end":{"line":70,"column":55}},"36":{"start":{"line":71,"column":2},"end":{"line":71,"column":31}},"37":{"start":{"line":72,"column":2},"end":{"line":72,"column":29}},"38":{"start":{"line":73,"column":2},"end":{"line":77,"column":5}},"39":{"start":{"line":74,"column":15},"end":{"line":74,"column":26}},"40":{"start":{"line":75,"column":4},"end":{"line":75,"column":73}},"41":{"start":{"line":76,"column":4},"end":{"line":76,"column":39}},"42":{"start":{"line":80,"column":0},"end":{"line":91,"column":2}},"43":{"start":{"line":82,"column":17},"end":{"line":82,"column":57}},"44":{"start":{"line":83,"column":2},"end":{"line":83,"column":37}},"45":{"start":{"line":84,"column":2},"end":{"line":90,"column":5}},"46":{"start":{"line":86,"column":16},"end":{"line":86,"column":43}},"47":{"start":{"line":88,"column":15},"end":{"line":88,"column":26}},"48":{"start":{"line":89,"column":4},"end":{"line":89,"column":39}},"49":{"start":{"line":93,"column":0},"end":{"line":104,"column":2}},"50":{"start":{"line":95,"column":17},"end":{"line":95,"column":56}},"51":{"start":{"line":96,"column":2},"end":{"line":103,"column":5}},"52":{"start":{"line":98,"column":16},"end":{"line":98,"column":43}},"53":{"start":{"line":99,"column":17},"end":{"line":99,"column":39}},"54":{"start":{"line":101,"column":15},"end":{"line":101,"column":26}},"55":{"start":{"line":102,"column":4},"end":{"line":102,"column":39}},"56":{"start":{"line":107,"column":0},"end":{"line":113,"column":2}},"57":{"start":{"line":108,"column":2},"end":{"line":112,"column":5}},"58":{"start":{"line":115,"column":0},"end":{"line":132,"column":2}},"59":{"start":{"line":117,"column":17},"end":{"line":120,"column":3}},"60":{"start":{"line":123,"column":19},"end":{"line":123,"column":70}},"61":{"start":{"line":126,"column":16},"end":{"line":126,"column":18}},"62":{"start":{"line":127,"column":2},"end":{"line":127,"column":45}},"63":{"start":{"line":128,"column":2},"end":{"line":128,"column":62}},"64":{"start":{"line":130,"column":2},"end":{"line":130,"column":44}},"65":{"start":{"line":131,"column":2},"end":{"line":131,"column":20}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":1,"column":20},"end":{"line":1,"column":21}},"loc":{"start":{"line":1,"column":57},"end":{"line":23,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":4,"column":12},"end":{"line":4,"column":13}},"loc":{"start":{"line":4,"column":22},"end":{"line":6,"column":7}},"line":4},"2":{"name":"(anonymous_2)","decl":{"start":{"line":7,"column":13},"end":{"line":7,"column":14}},"loc":{"start":{"line":7,"column":30},"end":{"line":17,"column":7}},"line":7},"3":{"name":"(anonymous_3)","decl":{"start":{"line":25,"column":20},"end":{"line":25,"column":21}},"loc":{"start":{"line":25,"column":41},"end":{"line":40,"column":1}},"line":25},"4":{"name":"(anonymous_4)","decl":{"start":{"line":26,"column":67},"end":{"line":26,"column":68}},"loc":{"start":{"line":26,"column":73},"end":{"line":28,"column":5}},"line":26},"5":{"name":"(anonymous_5)","decl":{"start":{"line":29,"column":11},"end":{"line":29,"column":12}},"loc":{"start":{"line":29,"column":28},"end":{"line":39,"column":5}},"line":29},"6":{"name":"(anonymous_6)","decl":{"start":{"line":42,"column":23},"end":{"line":42,"column":24}},"loc":{"start":{"line":42,"column":44},"end":{"line":60,"column":1}},"line":42},"7":{"name":"(anonymous_7)","decl":{"start":{"line":45,"column":10},"end":{"line":45,"column":11}},"loc":{"start":{"line":45,"column":22},"end":{"line":48,"column":5}},"line":45},"8":{"name":"(anonymous_8)","decl":{"start":{"line":49,"column":11},"end":{"line":49,"column":12}},"loc":{"start":{"line":49,"column":28},"end":{"line":59,"column":5}},"line":49},"9":{"name":"(anonymous_9)","decl":{"start":{"line":61,"column":23},"end":{"line":61,"column":24}},"loc":{"start":{"line":61,"column":58},"end":{"line":67,"column":1}},"line":61},"10":{"name":"(anonymous_10)","decl":{"start":{"line":68,"column":25},"end":{"line":68,"column":26}},"loc":{"start":{"line":68,"column":31},"end":{"line":78,"column":1}},"line":68},"11":{"name":"(anonymous_11)","decl":{"start":{"line":73,"column":49},"end":{"line":73,"column":50}},"loc":{"start":{"line":73,"column":67},"end":{"line":77,"column":3}},"line":73},"12":{"name":"(anonymous_12)","decl":{"start":{"line":80,"column":27},"end":{"line":80,"column":28}},"loc":{"start":{"line":80,"column":33},"end":{"line":91,"column":1}},"line":80},"13":{"name":"(anonymous_13)","decl":{"start":{"line":84,"column":49},"end":{"line":84,"column":50}},"loc":{"start":{"line":84,"column":67},"end":{"line":90,"column":3}},"line":84},"14":{"name":"(anonymous_14)","decl":{"start":{"line":93,"column":26},"end":{"line":93,"column":27}},"loc":{"start":{"line":93,"column":32},"end":{"line":104,"column":1}},"line":93},"15":{"name":"(anonymous_15)","decl":{"start":{"line":96,"column":49},"end":{"line":96,"column":50}},"loc":{"start":{"line":96,"column":67},"end":{"line":103,"column":3}},"line":96},"16":{"name":"(anonymous_16)","decl":{"start":{"line":107,"column":23},"end":{"line":107,"column":24}},"loc":{"start":{"line":107,"column":58},"end":{"line":113,"column":1}},"line":107},"17":{"name":"(anonymous_17)","decl":{"start":{"line":115,"column":22},"end":{"line":115,"column":23}},"loc":{"start":{"line":115,"column":47},"end":{"line":132,"column":1}},"line":115}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":2},"end":{"line":22,"column":3}},"type":"if","locations":[{"start":{"line":2,"column":2},"end":{"line":22,"column":3}},{"start":{"line":2,"column":2},"end":{"line":22,"column":3}}],"line":2},"1":{"loc":{"start":{"line":11,"column":8},"end":{"line":15,"column":9}},"type":"if","locations":[{"start":{"line":11,"column":8},"end":{"line":15,"column":9}},{"start":{"line":11,"column":8},"end":{"line":15,"column":9}}],"line":11},"2":{"loc":{"start":{"line":33,"column":6},"end":{"line":37,"column":7}},"type":"if","locations":[{"start":{"line":33,"column":6},"end":{"line":37,"column":7}},{"start":{"line":33,"column":6},"end":{"line":37,"column":7}}],"line":33},"3":{"loc":{"start":{"line":53,"column":6},"end":{"line":57,"column":7}},"type":"if","locations":[{"start":{"line":53,"column":6},"end":{"line":57,"column":7}},{"start":{"line":53,"column":6},"end":{"line":57,"column":7}}],"line":53},"4":{"loc":{"start":{"line":55,"column":13},"end":{"line":57,"column":7}},"type":"if","locations":[{"start":{"line":55,"column":13},"end":{"line":57,"column":7}},{"start":{"line":55,"column":13},"end":{"line":57,"column":7}}],"line":55}},"s":{"0":1,"1":3,"2":2,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":1,"11":1,"12":1,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":1,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":1,"33":0,"34":1,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":1,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":1,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":1,"57":0,"58":1,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0},"f":{"0":3,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0},"b":{"0":[2,1],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"0f2aeca6c271b60e1808ba97e8c66bae620d7c49","contentHash":"adfe91f747c25c5af44742bfcf86973d_11.9.0"}} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..3b664107 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "git.ignoreLimitWarning": true +} \ No newline at end of file diff --git a/Readme.md b/Readme.md new file mode 100644 index 00000000..d56f83f9 --- /dev/null +++ b/Readme.md @@ -0,0 +1,155 @@ +# Creando una Red Social + +## Preámbulo + +Instagram, Snapchat, Twitter, Facebook, Twitch, Linkedin, etc. Las redes +sociales han invadido nuestras vidas. Las amamos u odiamos, y muchxs no podemos +vivir sin ellas. + +Hay redes sociales de todo tipo y para todo tipo de intereses. Por ejemplo, +en una ronda de financiamiento con inversionistas, se presentó una red social +para químicos en la que los usuarios podían publicar artículos sobre sus +investigaciones, comentar en los artículos de sus colegas, y filtrar artículos +de acuerdo a determinadas etiquetas o su popularidad, lo más reciente, o lo +más comentado. + +## Introducción + +La actual sociedad fue afectada por el uso de redes sociales, volviéndola así una sociedad globalizada , con muchísimo más acceso a recursos informativos y/o virtuales de toda clase en donde la educación , que es un pilar fundamental juega un papel importantísimo en el desarrollo de esta. Así que tiene que adaptarse .entonces debería dar roles más activos a los estudiantes respecto a su aprendizaje y a los profesores docentes respecto al alcance de su enseñanza. Así que esta problemática que en realidad es un nuevo recurso donde la accesibilidad y flexibilidad deben ser clave. Por ello indistintamente de donde se ubique cualquier interesado en aprender tengan un "espacio" virtual donde intercambiar conocimientos +De esta manera logramos establecer un objetivo claro ,aumentar la flexibilidad y accesibilidad a nuestra red social educativa .además mediante el uso de encuestas ubicamos el perfil de nuestro usuario objetivo (jóvenes entre 19-25 años que hace uso de las redes sociales en un periodo de 5 a 10 años que está satisfecho con las redes sociales en general ) y en la segunda encuesta que es para ubicar los temas y rumbo que tomara la página web , ganando por mayoría tecnología ,donde está valorado las publicaciones de texto y de igual modo publicar post es la actividad más valorada ,seguida de tener contactos y sea dirigida para un público en general + + + +# User research +## Desarrollo del producto +## EL PROCESO DE DISEÑO +El proceso de diseño tiene 5 fases. Estas 5 fases nos permiten crear productos centrados en el usuario que nos aseguren que estamos satisfaciendo sus necesidades. Para ello empezamos entendiendo al usuario en la primera fase y lo seguimos involucrando a lo largo del proceso para ir validando nuestras propuestas. +## DESCUBRIMIENTO E INVESTIGACIÓN (RESEARCH) + (En esta fase es donde vamos a tener ese proceso de investigación y acercamiento con el usuario, es donde vamos a obtener el conocimiento para poder saber a quién vamos a llegar, pero de manera más profunda. Es tener la empatía y el acercamiento necesario para conocerlo. +También vamos a tener en cuenta al negocio, sus objetivos y los stakeholders(involucrados)). +### Entrevistas y encuestas + +[Accede a la info de las encuestas y las entrevistas](https://docs.google.com/presentation/d/1JTG4YqP1rJIDhg_9rEm4WlM0iAs85rJpN2fqqdin7jo/edit?usp=sharing) + +## SÍNTESIS Y DEFINICIÓN +En esta fase usamos los datos coleccionados en la fase de investigación y descubrimiento buscando tendencias e insights valiosos para el desarrollo del producto, y entendemos los deseos y necesidades del público al que estará dirigido nuestro producto. +* Cuáles son los elementos básicos que tiene una red social. + ==> Secciones para la vista de los datos del usuario,el muro,su seccion de chat si tiene uno + +* Quiénes son los principales usuarios de producto. +==> Nuestro publico objetivo esta compuesto por jovenes universitarios de carreras de tecnologia + +* Cómo descubriste las necesidades de los usuarios. +==> Mediante encuestras y entrevistas logramos indentificar al usuario y conocer sus necesidades + +* Qué problema resuelve el producto para estos usuarios. + ==> Simplifica procesos de aprendizaje y distribucion de datos + +* Cuáles son los objetivos de estos usuarios en relación con el producto. +==> obtener una mayor cantidad de datos ,que estos tengan mayor alcance y conocer otros universitarios con carreras afines + +* Cuáles son las principales funcionalidades del producto y cuál es su prioridad. +==> poder permitir a los usuarios subir posts , para poder compartir clases ,examenes como prioridad ,ademas de poder interactuar con estos post . + +* Cómo verificaste que el producto les está resolviendo sus problemas. +==> mediante una exhaustiva busqueda y entrevistas + +* Cómo te asegurarás que estos usuarios usen este producto. +==> dandole una interfaz amigable y facil de usar +--------------------------------------------------------------- + Ahora tomaremos todos los datos importantes y los transformaremos en información valiosa para comenzar a orientarse a la solución. También vamos a entender lo que la empresa quiere de ese producto y comenzar a entender ambas visiones con el fin de encontrar un punto armónico) + +Como conclusión de las anteriores 2 encuestas +* Necesidades de los usuarios: poder compartir información, obtener nueva información, conocer gente con intereses afines y en el caso de que fueran estudiantes aprobar sus cursos + +* Objetivos de las usuarias: +Orientándonos a los estudiantes, tener una red social educativa donde puedan compartir datos de clases, apuntes rápidamente, además de poder tener contactos y ampliar su círculo social. +* Sentimientos: Por lo general están satisfechos con las redes sociales actuales, además en el caso de ser estudiantes están preocupados por su rendimiento estudiantil. +* Obstáculos: no tener apuntes de sus cursos, no entender un tema, conocer poca gente que sepa de un tema específico. +--------------------------------------------------------- +Elaboramos 1 user persona + +![captura](https://user-images.githubusercontent.com/39390011/43027530-6f9d78b4-8c40-11e8-9cb5-3e96c5435a1c.PNG) + +## IDEACIÓN + +En esta fase buscamos las mejores maneras para ejecutar/desarrollar las funcionalidades definidas en la fase de ideación. Se elaboran sketches y se decide qué propuesta se ejecutará. +En esta etapa utilizaras herramientas como: +### Benchmarking +Presentacion de nuestro benchmark analizando a nuestros potenciales competidores: +[Accede al benchmark](https://docs.google.com/presentation/d/18cNgMXuKCKRLZbtCCFAtvMGq78ls7pHTl8bXt8l7V8c/edit?usp=sharing) + +## PROTOTIPADO +En esta etapa elaboramos un prototipo que nos permita probar nuestras ideas con usuarios para saber si estamos resolviendo satisfaciendo sus necesidades con nuestro producto. + +### Diseño de la Interfaz de Usuario (UI) + +[Accede al Diseño de la interfaz de usuario](https://docs.google.com/presentation/d/1Q61XF-bhpd0vnCGH50EXUuPClYRLmFtGRsyoKgXCtZU/edit?usp=sharing) + +Vista preliminar en dispositivo móvil (iphoneSE) + +![cel](https://user-images.githubusercontent.com/39390011/42542344-25b73e0a-846c-11e8-920f-2ffbc8659434.PNG) + +#### Sketch, mockup y prototipado +enlace a los documentos del proceso de diseño de la interfaz +[accede al sketching,mockup,protipado](https://docs.google.com/presentation/d/11hjq5UUVQjY1D_t0kCJMwKzwCorMkFWM4DO6hKsEKCQ/edit?usp=sharing) + + + +## TESTEO CON USUARIOS + +En esta etapa probamos nuestros prototipos con usuarios para obtener su feedback. + + + +## Checklist + +### General + +* [ ] Producto final sigue los lineamientos del diseño. + +### `README.md` + +* [ ] Definición del producto: + * [ ] Cuáles son los elementos básicos que tiene una red social. + * [ ] Quiénes son los principales usuarios de producto. + * [ ] Cómo descubriste las necesidades de los usuarios. + * [ ] Qué problema resuelve el producto para estos usuarios. + * [ ] Cuáles son los objetivos de estos usuarios en relación con el producto. + * [ ] Cuáles son las principales funcionalidades del producto y cuál es su prioridad. + * [ ] Cómo verificaste que el producto les está resolviendo sus problemas. + * [ ] Cómo te asegurarás que estos usuarios usen este producto. +* [ ] Benchmark de las principales redes sociales. +* [ ] Resumen de entrevistas con usuarios. +* [ ] Link/screenshots del prototipo de alta fidelidad. +* [ ] Conclusiones de testing con el prototipo de alta fidelidad con usuarios. +* [ ] Conclusiones de testing con el producto en HTML. + +### Pruebas / tests + +* [ ] Tests unitarios cubren un mínimo del 70% de statements, functions, lines y branches. +* [ ] Pasa tests (y linters) (`npm test`). + +### Creación de cuenta (sign up) + +* [ ] Permite crear cuenta. +* [ ] Valida email. +* [ ] Valida password. +* [ ] Muestra mensajes de error. + +### Inicio de sesión (sign in) + +* [ ] Permite iniciar sesión. +* [ ] Valida email. +* [ ] Valida password. +* [ ] Muestra mensajes de error. + +### Muro (wall/feed) + +* [ ] Muestra _muro_. +* [ ] Permite publicar nuevos posts. +* [ ] Permite eliminar posts. +* [ ] Pide confirmación antes de borrar posts. +* [ ] Permite editar posts (in place). +* [ ] Permite publicar y filtrar posts por público/yo. +* [ ] Permite dar _like_ a los posts y llevar un conteo de ellos. diff --git a/coverage/app.js.html b/coverage/app.js.html new file mode 100644 index 00000000..3a0de2ba --- /dev/null +++ b/coverage/app.js.html @@ -0,0 +1,561 @@ + + +
++ Press n or j to go to the next uncovered block, b, p or k for the previous block. +
+1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 | 1x +3x +2x + + + + + + + + + +1x +1x + + + +1x + + + + + + + + + + + + + + + + +1x + + + + + + + + + + + + + + + + + + +1x + + + + + + +1x + + + + + + + + + + + +1x + + + + + + + + + + + + +1x + + + + + + + + + + + + + +1x + + + + + + + +1x + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + | window.createUser = (email, password, repeatPassword, cb) => { + if (password === repeatPassword) { + firebase.auth().createUserWithEmailAndPassword(email, password) + .then((user) => { + cb(null, user); + }) + .catch(function (error) { + // Handle Errors here. + cb(error) + console.log(error); + }); + } else { + console.log('Your password doesnt mach'); + cb({ code: 'auth/password-mismatch' }) + } +}; + +window.signInUser = (email, password) => { + firebase.auth().signInWithEmailAndPassword(email, password).then(() => { + window.location.assign('main.html') + }) + .catch(function (error) { + // Handle Errors here. + var errorCode = error.code; + var errorMessage = error.message; + if (errorCode == 'auth/weak-password') { + alert('The password is too weak.'); + } else { + alert(errorMessage); + } + console.log(error); + }); +}; + +window.resetPassword = (email, password) => { + firebase.auth().sendPasswordResetEmail( + getEmail.value) + .then(function () { + firebase.auth.EmailAuthProvider.credential(email, password); + alert("Password Reset Email Sent") + }) + .catch(function (error) { + // Handle Errors here. + var errorCode = error.code; + var errorMessage = error.message; + if (errorCode == 'auth/invalid-email') { + alert('The email in invalid'); + } else if (errorCode == 'auth/user-not-found') { + alert('The email is not exists'); + } + console.log(error); + }); +}; +window.writeUserData = (userId, name, email, imageUrl) => { + firebase.database().ref('users/' + userId).set({ + username: name, + email: email, + profile_picture : imageUrl + }); +}; +window.loginWithGoogle = () => { + // Using a popup. + var provider = new firebase.auth.GoogleAuthProvider(); + provider.addScope('profile'); + provider.addScope('email'); + firebase.auth().signInWithPopup(provider).then(function (result) { + var user = result.user; + writeUserData(user.uid, user.displayName, user.email, user.photoURL); + window.location.assign('main.html') + }); +}; + +window.loginWithFacebook = () => { + // Sign in using a popup. + var provider = new firebase.auth.FacebookAuthProvider(); + provider.addScope('user_birthday'); + firebase.auth().signInWithPopup(provider).then(function (result) { + // This gives you a Facebook Access Token. + var token = result.provider.accessToken; + // The signed-in user info. + var user = result.user; + window.location.assign('main.html') + }); +}; + +window.loginWithTwitter = () => { + // Using a popup. + var provider = new firebase.auth.TwitterAuthProvider(); + firebase.auth().signInWithPopup(provider).then(function (result) { + // For accessing the Twitter API. + var token = result.provider.accessToken; + var secret = result.provider.secret; + // The signed-in user info. + var user = result.user; + window.location.assign('main.html') + }); +}; + + +window.writeUserData = (userId, name, email, imageUrl) => { + firebase.database().ref('users/' + userId).set({ + username: name, + email: email, + profile_picture: imageUrl + }); +}; + +window.writeNewPost = (uid, body,countlike) => { + // A post entry. + var postData = { + body: body, + countlike:countlike, + }; + + // Get a key for a new Post. + var newPostKey = firebase.database().ref().child('posts').push().key; + + // Write the new post's data simultaneously in the posts list and the user's post list. + var updates = {}; + updates['/posts/' + newPostKey] = postData; + updates['/user-posts/' + uid + '/' + newPostKey] = postData; + + firebase.database().ref().update(updates); + return newPostKey; +}; + +// window.loadPost = (userId) => { +// const post = document.getElementById("loadedPost"); +// let userId = 'lOAgxhLUxpXUlFwEiCOD7PfG8iz2'; +// var dbRefPost = firebase.database().ref().child('user-posts'); +// var dbRefPostUser = dbRefPost.child(userId); +// dbRefPostUser.on('child_added', snap => { +// snap.forEach(body => { +// console.log(body.val()); +// const buttonUpdate = document.createElement("input"); +// buttonUpdate.setAttribute("value", "Update"); +// buttonUpdate.setAttribute("type", "button"); +// const buttonDelete = document.createElement("input"); +// buttonDelete.setAttribute("value", "Delete"); +// buttonDelete.setAttribute("type", "button"); +// const buttonLike = document.createElement("input"); +// buttonLike.setAttribute("value", "Me gusta"); +// buttonLike.setAttribute("type", "button"); +// const contenidoPost = document.createElement('div'); +// contenidoPost.className = 'contenidoPost'; +// const textoPost = document.createElement('textarea') +// textoPost.innerHTML = body.val(); +// textoPost.disabled = true; +// post.appendChild(textoPost); +// post.appendChild(buttonUpdate); +// post.appendChild(buttonDelete); +// post.appendChild(buttonLike); + +// }); +// }); + +// dbRefPostUser.on('child_added', snap => post.innerHTML = JSON.stringify(snap.val())); + +/* return firebase.database().ref('/user-posts/' + userId ).once('value').then(function (snapshot) { + var body = (snapshot.val() && snapshot.val().body) || 'Anonymous'; + console.log(body); + // ... +}); */ +// } + |
+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +
+File | ++ | Statements | ++ | Branches | ++ | Functions | ++ | Lines | ++ |
---|---|---|---|---|---|---|---|---|---|
app.js | +20.97% | +13/62 | +25% | +2/8 | +5.56% | +1/18 | +20.97% | +13/62 | +
Education is the most powerful weapon which you can use to change the world.
+-Nelson Mandela
+