diff --git a/.firebase/hosting.cHVibGlj.cache b/.firebase/hosting.cHVibGlj.cache
new file mode 100644
index 00000000..9fd4e6a5
--- /dev/null
+++ b/.firebase/hosting.cHVibGlj.cache
@@ -0,0 +1 @@
+index.html,1586820061765,a027ac5a687715c8a26157edd0b402a46dae34d8d17c504f8a532cf7aa358c0b
diff --git a/.firebaserc b/.firebaserc
new file mode 100644
index 00000000..3ce3685a
--- /dev/null
+++ b/.firebaserc
@@ -0,0 +1,5 @@
+{
+ "projects": {
+ "default": "bichigra-m"
+ }
+}
diff --git a/.gitignore b/.gitignore
index 47735411..d305df47 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,4 +3,5 @@
coverage/
node_modules/
.yarn.lock
-package-lock.json
\ No newline at end of file
+package-lock.json
+.now
\ No newline at end of file
diff --git a/Readme.md b/Readme.md
index ed84ec5c..7de5e74e 100644
--- a/Readme.md
+++ b/Readme.md
@@ -1,272 +1,45 @@
-# Creando una Red Social
+# Bichigram 🐞
-Bienvenida a tu primer proyecto del track de Frontend en Laboratoria.
+## Resúmen del proyecto
-En este proyecto construirás una red social, cuya temáticas dejaremos a tu elección.
+Bichigram es una red social dirigida a cualquier persona interesada en los artrópodos para a ayudar a otros a identificar, catalogar y aprender sobre ellos.
-Aquí algunas ideas para inspirarte:
+La aplicación fue creada con un enfóque mobile first, y para la implementación se utilizó HTML5, SASS, Vanilla JS y Firebase.
-- Alimentación
-- Feminismo
-- Educación
-- Salud
-- Energías Renovables
-
-Las **caraterísticas técnicas** de tu aplicación serán las siguientes:
-- Debe ser una Single-Page Application [SPA](https://dzone.com/articles/how-single-page-web-applications-actually-work) ([versión traducida](https://dzone.com/articles/how-single-page-web-applications-actually-work))
-- Debe ser diseñada con un enfoque [mobile first](https://darwindigital.com/mobile-first-versus-responsive-web-design/) ([versión traducida](https://translate.google.com/translate?hl=&sl=auto&tl=es&u=https%3A%2F%2Fdarwindigital.com%2Fmobile-first-versus-responsive-web-design))
-- Debe permitir la persintencia de datos
+Bichigram consiste en una SPA con las siguientes pantallas:
+ * Página de bienvenida
+ * Inicio de sesión para usuarios ya registrados
+ * Registro
+ * Crear nueva publicación
+ * Noticias (feed)
+ * Perfil
-Para implementar tu aplicación usarás *HTML5*, *CCS3* o *SASS*, *Vanilla JavaScript(ES6+)*, *Firebase* o *LocalStogarge*
-
-## Objetivo
-
-El objetivo de este proyecto es construir una Red Social, Single-Page Application (SPA), responsiva en la que podamos escribir, leer, actualizar y eliminar datos.
-
-Para ello deberás poner en juego tu creatividad para generar ideas que lleven a una solución original y valiosa del problema, trabajando en equipo buscando feedback constante.
-
-En otras palabras, seguirás afianzando todo lo aprendido en el Common Core, pero en particular verás :
-
-### Planificación
-
-* Te recomendamos utilizar *projects*, *issues* y *milestones* de GitHub para gestionar la planificación de tu proyecto. Estos recursos serán la fuente de organización de tu equipo y a través de estas herramientas tus coaches podrán ver el avance del proyecto y darte feedback.
-
-* Escribir, de manera colaborativa, las **Definiciones de terminado** y **Criterios de Aceptación** por cada **Historia de usuario** que te daremos para este proyecto y que se deberán ver reflejadas en tu planificación.
-
-* **Priorizar** la implementación de tus funcionalidades, en función al esfuerzo que demandan en relación al valor que le aportan al usuario, y ejecutar en equipo todas las historias de usuario dentro del tiempo estimado para cada sprint y que finalmente se vean reflejadas en publicaciones completamentamente funcionales al final de cada sprint.
-
-* Adquirir la disciplina de la completitud, terminando una historia de usuario antes de pasar a la siguiente (es decir, que cumple con *Definición de Terminado* y *Criterios de Aceptación* contemplando todos los puntos que son objetivos de aprendizaje para este proyecto).
-
-### Desarrollo frontend
-
-#### Arquitectura de la aplicación
-
-- Diseñar la arquitectura de tu aplicación, modularizando tu código a través de *es modules* ([`import`](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Sentencias/import) y [`export`](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Sentencias/export))
-
-- Familiarizarte con el patrón modelo - vista - controlador ([MVC](https://es.wikipedia.org/wiki/Modelo%E2%80%93vista%E2%80%93controlador)).
-
-#### Tecnologías HTML5 y CSS3/SASS
-
-* Aplicar HTML5 semántico en tu proyecto.
-* Aplicar y reforzar los conceptos fundamentales de CSS3.
-* Implementar selectores de clase evitando la redundancia de estilos en CCS3.
-* Utilizar `flexbox` para lograr un diseño `mobile first`, implementando un layout que te permita crear un diseño adaptativo para **mobile y desktop**
-
-A continuación te proporcionamos el layout (diseño) de la vista mobile y desktop que deberás replicar visualmente y cuyo contenido, colores y fuentes de texto, dejaremos a tu elección.
-
-* Vista mobile
-
- 
-
-* Vista Desktop
-
- 
-
-#### JavaScript (ES6+)
-
-* Utilizar modulos de ES6 para poder modularizar tu código JavaScript.
-* Reforzar tu conocimiento sobre el uso de Template literals (Template strings).
-* Reforzar tu conocimiento de la manipulacion de los elementos del DOM a traves JavaScript.
-* Implementar un sistema de rutas para cambiar de una vista a otra de manera dinámica (SPA).
-* Testear la lógica de tu aplicación, con Jest cuidando que el coverage pase el 90% de statements (sentencias), functions (funciones), lines (líneas), y branches (ramas).
-
-### Persistencia de datos
-
-En los proyectos anteriores solo has consumido (leído) datos, por ejemplo, a través de un archivo `json` o utilizando `fetch`.
-
-En este proyecto diseñarás la estructura de esos datos, la forma de consultarlos, actualizarlos, modificarlos y eliminarlos según los requerimiento del usuario. Para llevarlo a cabo utilizaras `Firestore` de `Firebase` o `LocalStogarge` una `Web Storage API`
-
-#### Firebase
-
-El objetivo de usar Firestore en este proyecto, es que aprendes a manejar y persistir datos a traves de una base de datos no relacional, en tiempo real y puedas implementar operaciones CRUD (Creación, Lectura, Actualización y eliminación) de datos.
-
-## Consideraciones generales del proyecto
-
-* Este proyecto debe ser desarrollado en equipos de trabajo de 3 integrantes.
-
-* La duración propuesta del proyecto es **3 sprints**, con una duración de una semana cada uno.
-
-* Te daremos las **historias de usuario** con el fin de presentarte los requerimientos y funcionalidades que desea el usuario final.
-
-* La **planificación es vital**, para ello te recomendamos utilizar el flujo de trabajo colaborativo que nos ofrecen los projects de GitHub, para que puedas **escribir tus definiciones de terminado** y **criterios de aceptación** por cada historia de usuario con el objetivo que determinen, en equipo, **qué hacer** en el sprint y **cómo se realizará**.
-
-* Para que todas las miembros de tu equipo puedan lograr los objetivos de aprendizaje, deberán determinar cuál será la estrategia de desarrollo que utilizarán: división por sub-historias, pair programming, code reviews, etc.
-
-## Restricciones Técnicas
-
-* Debes utilizar `flexbox` o `CSSGrid` para posicionar tus elementos. Si está permitido el uso de frameworks de CCS (bootstrap), y de componentes flotantes.
-
-* Ya te damos un diseño (layout) de la vista mobile y desktop, queremos que lo repliques a nivel *pixel perfect*, el contenido, paleta de colores y fuentes, depende de la temática que van a elegir como equipo. La implementación de ese layout deberá formar parte de la *definición de terminado* de tus historias de usuario.
-
-* Los test son **fundamentales** y deberán formar parte de tu definición de terminado, te recomendamos que comiences a implementarlos desde el comienzo.
-
-## Historias de Usuario
-
-* Como usuario nuevo debo poder crear una cuenta con email y password válidos para poder iniciar sesion e ingresar a la red social.
-
-* Como usuario nuevo debo poder tener la opción de iniciar sesión con mi cuenta de Google o Facebook para ingresar a la red social sin necesidad de crear una cuenta de email válido.
-
-* Como usuario loggeado debo poder crear, guardar, modificar en el mismo lugar (in place) y eliminar una publicación (post) privada o pública, que puede ser una frase o una imagen.
-
-* Como usuario loggeado debo poder ver todos los posts públicos y privados que he creado hasta ese momento, desde el más reciente hasta el más antiguo, así como la opción de poder cambiar la configuración de privacidad de mis post.
+## Planificación
-* Yo como usuario loggeado, puedo dar like y llevar un conteo de likes en mi publicación así como poder escribir, guardar, editar o eliminar un comentario en mi publicación.
+La planificación se llevó a cabo en [GH Projects](https://github.com/marielcarrillo/CDMX009-Social-Network/projects/1) y se completó por historias de usuario.
-* Al final debo poder ingresar a la red social y poder visualizar los datos de mi perfil creado o editarlos.
-
-* Te dejamos un ejemplo de cómo definir criterios de aceptación y definiciones de terminado para una H.U. Si se te complica definirlas o no tienes idea de que considerar para cada H.U. es de gran ayuda revisar redes sociales como `facebok`, `twitter`, `instagram`, `devopedia` o la red social que más te guste y puedas evaluar qué consideran en cada funcionalidad para darla como terminada y aceptada.
-
- > Como usuario nuevo debo poder crear una cuenta con email y password para
- > poder iniciar sesion. Por otro lado, necesito también tener la opción de
- > iniciar sesión con mi cuenta de Google o Facebook.
- >
- > **Criterios de aceptación**
- > - Si el mail o password no es válido, al momento de logearme, debo poder
- > ver un mensaje de error.
- > - Debe ser visible si hay algún mensaje de error.
- > - Debo poder ver esta página de creación en Móviles y desktop (responsive).
- > - No debe necesitar recargar la página para crear una cuenta (SPA).
- >
- > **Definición de terminado**
- > - La funcionalidad cumple satisface los criterios de aceptación.
- > - La funcionalidad tiene _test unitarios_.
- > - El diseño visual corresponde al prototipo de alta fidelidad.
- > - El código de esta funcionalidad recibió code review.
- > - La funcionalidad esta desplegada y pública para ser probada.
- > - La funcionalidad fue probada manualmente.
- > - Se hicieron pruebas de usuabilidad y se implementó el feedback si se
- > consideró necesario.
-
-## Objetivos de aprendizaje
-
-Antes de empezar el proyecto, recuerda agregar tus objetivos de aprendizaje pendientes de tu proyecto
-anterior en la siguiente sección.
-
-### Objetivos de aprendizajes pendientes
-
-
-### HTML y CSS
-
-* [ ] [HTML semántico](https://developer.mozilla.org/en-US/docs/Glossary/Semantics#Semantics_in_HTML)
-* [ ] [CSS `flexbox`](https://css-tricks.com/snippets/css/a-guide-to-flexbox/)
-* [ ] Construir tu aplicación respetando el diseño realizado (maquetación).
-
-### DOM y Web APIs
-
-* [ ] [Manipulación dinámica del DOM](https://developer.mozilla.org/es/docs/Referencia_DOM_de_Gecko/Introducci%C3%B3n)
-* [ ] [History API](https://developer.mozilla.org/es/docs/DOM/Manipulando_el_historial_del_navegador)
-* [ ] [`localStorage`]
-
-### Javascript
-
-* [ ] [Uso de callbacks](https://developer.mozilla.org/es/docs/Glossary/Callback_function)
-* [ ] [Consumo de Promesas](https://scotch.io/tutorials/javascript-promises-for-dummies#toc-consuming-promises)
-* [ ] Uso ES modules
-([`import`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import)
-| [`export`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export))
-
-### Firebase
-
-* [ ] [Firestore](https://firebase.google.com/docs/firestore)
-* [ ] [Firebase Auth](https://firebase.google.com/docs/auth/web/start)
-* [ ] [Firebase security rules](https://firebase.google.com/docs/rules)
-* [ ] [Uso de onSnapshot](https://firebase.google.com/docs/firestore/query-data/listen)
-| [onAuthStateChanged](https://firebase.google.com/docs/auth/web/start#set_an_authentication_state_observer_and_get_user_data)
-
-### Testing
-
-* [ ] [Testeo de tus funciones](https://jestjs.io/docs/es-ES/getting-started)
-* [ ] [Testeo asíncrono](https://jestjs.io/docs/es-ES/asynchronous)
-* [ ] [Mocking](https://jestjs.io/docs/es-ES/manual-mocks)
-
-### Colaboración en Github
-
-* [ ] Branches
-* [ ] Pull Requests
-* [ ] Tags
-
-### Organización en Github
-
-* [ ] Projects
-* [ ] Issues
-* [ ] Labels
-* [ ] Milestones
-
-### Buenas prácticas de desarrollo
-
-* [ ] Modularización
-* [ ] Nomenclatura / Semántica
-* [ ] Linting
-
-***
-
-## Recursos
-
-### Mobile first
-
-El concepto de [_mobile first_](https://www.mediaclick.es/blog/diseno-web-responsive-design-y-la-importancia-del-mobile-first/)
-hace referencia a un proceso de diseño y desarrollo donde partimos de cómo se ve
-y cómo funciona la aplicación en un dispositivo móvil primero, y más adelante se
-ve como adaptar la aplicación a pantallas progresivamente grandes y
-características específicas del entorno desktop. Esto es en contraposición al
-modelo tradicional, donde primero se diseñaban los websites (o webapps) para
-desktop y después se trataba de _arrugar_ el diseño para que entre en pantallas
-más chicas. La clave acá es asegurarse de que desde el principio diseñan usando
-la vista _responsive_ de las herramientas de desarrollador (developer tools) del
-navegador. De esa forma, partimos de cómo se ve y comporta la aplicación en una
-pantalla y entorno móvil.
-
-### Múltiples vistas
-
-En proyectos anteriores nuestras aplicaciones habían estado compuestas de una
-sola _vista_ principal (una sóla _página_). En este proyecto se introduce la
-necesidad de tener que dividir nuestra interfaz en varias _vistas_ o _páginas_
-y ofrecer una manera de navegar entre ellas.
-
-### Escritura de datos
-
-En los proyectos anteriores hemos consumido (leído) datos, pero todavía no
-habíamos escrito datos (salvar cambios, crear datos, borrar, ...). En este
-proyecto tendrás que crear (salvar) nuevos datos, así como leer, actualizar y
-modificar datos existentes. Estos datos se podrán guardar de forma remota
-usando [Firestore](https://firebase.google.com/docs/firestore) o de forma
-local utilizando`localStorage`.
-
-### Autenticación y autorización
-
-Hasta el momento, los proyectos han sido pensados como recursos públicos, donde todos
-los usuarios compartían un mismo rol y la misma información.
-
-En este proyecto tendrás que diferenciar la información a mostrar y modificar,
-dependiendo de la identidad del usuario.
-De la misma manera deberás crear reglar de autorización para el acceso a los
-datos.
-
-Para esto utilizaras respectivamente
-[`Firebase authentication`](https://firebase.google.com/docs/auth/) y
-[`Firestore security rules`](https://firebase.google.com/docs/firestore/security/get-started)
-
-### CSS
-
-En este proyecto queremos que ganes confianza y experiencia con CSS profesional,
-por eso usarás [`flexbox`](https://css-tricks.com/snippets/css/a-guide-to-flexbox/)
-para posicionar tus elementos.
-
-Recuerda que no puedes usar frameworks CSS, sólo *vanilla css* o [*sass*](https://sass-lang.com/).
+ ### Historias de usuario
+
+ * Como usuario nuevo, debo poder crear una cuenta con: nombre de usuario, foto, mail y contraseña.
+ * Como usuario existente, debo poder loggear con mi mail/nombre de usuario y contraseña.
+ * Como usuario loggeado puedo compartir publicaciones.
+ * Como usuario loggeado puedo editar y eliminar mis publicaciones.
+ * Como usuario loggeado puedo dar 'me insecta' y ver cuantos 'me insecta' tiene una publicación.
+ * Como usuario loggeado puedo visitar mi perfil y ver mis datos (nombre y foto de perfil).
+
+ ### Sketching
+
+ 
+
+ 
+
+ ### Prototipo
+
+ A partir de las ideas en conjunto, se crearon distintos prototipos.
+
+ 
-### Otras:
+
-* [Pildora SPA](https://www.loom.com/share/fa63a8ad0e9a43428222c15b6f6613d3)
-* [Repositorio de pildora de SPA](https://github.com/betsyvies/bootcamp-spa)
-* [Pildora de mock Firebase](https://www.youtube.com/watch?v=06myVn41OTY&t=1s)
-* [Repositorio de pildora de mock Firebase](https://github.com/Danielalab/2018-2-Testing)
-* [Pildora MVC](https://github.com/merunga/todomvc-vanillajs)
-* [Modulos: Export](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Sentencias/export)
-* [Modulos: Import](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Sentencias/import)
-* [Diseño web, responsive design y la importancia del mobile first - Media Click](https://www.mediaclick.es/blog/diseno-web-responsive-design-y-la-importancia-del-mobile-first/)
-* [Mobile First: el enfoque actual del diseño web móvil - 1and1](https://www.1and1.es/digitalguide/paginas-web/diseno-web/mobile-first-la-nueva-tendencia-del-diseno-web/)
-* [Mobile First - desarrolloweb.com](https://desarrolloweb.com/articulos/mobile-first-responsive.html)
-* [Mobile First - ZURB](https://zurb.com/word/mobile-first)
-* [Mobile First Is NOT Mobile Only - Nielsen Norman Group](https://www.nngroup.com/articles/mobile-first-not-mobile-only/)
+ Prototipo Alta definición: https://www.figma.com/file/HYBJZXi611TjN9xrBkvRFM/Bichigram?node-id=0%3A1
-***
diff --git a/_mocks_/firebase-auth-mock.js b/_mocks_/firebase-auth-mock.js
new file mode 100644
index 00000000..e1b15111
--- /dev/null
+++ b/_mocks_/firebase-auth-mock.js
@@ -0,0 +1,16 @@
+const auth = () =>{
+ return{
+ singOut: (user) => {
+ return new Promise((resolve) =>{
+ resolve ('ok ok')
+ })
+ }
+ }
+}
+const firebaseAuth = {
+ auth: auth
+}
+
+export default jest.fn(() => {
+ return firebaseAuth;
+})
\ No newline at end of file
diff --git a/_mocks_/firebase-mock.js b/_mocks_/firebase-mock.js
new file mode 100644
index 00000000..b56d8288
--- /dev/null
+++ b/_mocks_/firebase-mock.js
@@ -0,0 +1,21 @@
+const firestore = () => {
+ return {
+ collection: (nameCollection) => {
+ return{
+ add: (objData) =>{
+ return new Promise((resolve) => {
+ resolve('ok ok')
+ })
+ }
+ }
+ }
+ }
+}
+
+const firebase = {
+ firestore: firestore,
+}
+
+export default jest.fn(()=>{
+ return firebase;
+})
\ No newline at end of file
diff --git a/database.rules.json b/database.rules.json
new file mode 100644
index 00000000..c0aa595d
--- /dev/null
+++ b/database.rules.json
@@ -0,0 +1,6 @@
+{
+ "rules": {
+ ".read": "auth != null",
+ ".write": "auth != null"
+ }
+}
\ No newline at end of file
diff --git a/firebase.json b/firebase.json
new file mode 100644
index 00000000..f4ff3ab9
--- /dev/null
+++ b/firebase.json
@@ -0,0 +1,56 @@
+{
+ "hosting": {
+ "public": "public",
+ "ignore": [
+ "firebase.json",
+ "**/.*",
+ "**/node_modules/**"
+ ],
+ "rewrites": [
+ {
+ "source": "**",
+ "destination": "/index.html"
+ }
+ ]
+ },
+ "database": {
+ "rules": "database.rules.json"
+ },
+ "firestore": {
+ "rules": "firestore.rules",
+ "indexes": "firestore.indexes.json"
+ },
+ "functions": {
+ "predeploy": [
+ "npm --prefix \"%RESOURCE_DIR%\" run lint",
+ "npm --prefix \"%RESOURCE_DIR%\" run build"
+ ],
+ "source": "functions"
+ },
+ "storage": {
+ "rules": "storage.rules"
+ },
+ "emulators": {
+ "functions": {
+ "port": 5001
+ },
+ "firestore": {
+ "port": 8080
+ },
+ "database": {
+ "port": 9000
+ },
+ "hosting": {
+ "port": 5000
+ },
+ "pubsub": {
+ "port": 8085
+ }
+ },
+ "rewrites": [
+ {
+ "source": "**",
+ "destination": "/index.html"
+ }
+ ]
+}
diff --git a/firepit-log.txt b/firepit-log.txt
new file mode 100644
index 00000000..39c355cc
--- /dev/null
+++ b/firepit-log.txt
@@ -0,0 +1,27 @@
+Welcome to firepit v1.1.0!
+Doing JSON parses for version checks at /snapshot/firepit/vendor/node_modules/firebase-tools/package.json
+JSONStream,abort-controller,accepts,agent-base,ajv,ansi-align,ansi-escapes,ansi-regex,ansi-styles,ansicolors,anymatch,archiver,archiver-utils,argparse,array-flatten,arrify,as-array,asn1,assert-plus,async,async-each,asynckit,aws-sign2,aws4,balanced-match,base64-js,basic-auth,basic-auth-connect,bcrypt-pbkdf,big-integer,bignumber.js,binary,binary-extensions,bl,bluebird,body-parser,boxen,brace-expansion,braces,buffer,buffer-crc32,buffer-equal-constant-time,buffer-indexof-polyfill,buffers,bytes,camelcase,capture-stack-trace,cardinal,caseless,chainsaw,chalk,char-spinner,chardet,chokidar,chownr,ci-info,cjson,cli-boxes,cli-color,cli-cursor,cli-spinners,cli-table,cli-width,clone,color,color-convert,color-name,color-string,colornames,colors,colorspace,combined-stream,commander,compare-semver,compress-commons,compressible,compression,concat-map,configstore,connect,connect-query,content-disposition,content-type,cookie,cookie-signature,core-util-is,crc,crc32-stream,create-error-class,cross-env,cross-spawn,crypto-random-string,csv-streamify,d,dashdash,debug,deep-extend,deep-is,defaults,delayed-stream,depd,destroy,diagnostics,didyoumean,dot-prop,dotenv,duplexer2,duplexer3,duplexify,ecc-jsbn,ecdsa-sig-formatter,ee-first,enabled,encodeurl,end-of-stream,env-variable,es5-ext,es6-iterator,es6-symbol,es6-weak-map,escape-html,escape-string-regexp,esprima,etag,event-emitter,event-target-shim,execa,exit-code,express,ext,extend,external-editor,extsprintf,fast-deep-equal,fast-json-stable-stringify,fast-safe-stringify,fast-text-encoding,fast-url-parser,fecha,figures,filesize,fill-range,finalhandler,firebase-tools,flat-arguments,forever-agent,form-data,forwarded,fresh,fs-constants,fs-extra,fs-minipass,fs.realpath,fstream,gaxios,gcp-metadata,get-stream,getpass,glob,glob-parent,glob-slash,glob-slasher,global-dirs,google-auth-library,google-gax,google-p12-pem,got,graceful-fs,gtoken,har-schema,har-validator,has-ansi,has-flag,home-dir,http-errors,http-signature,https-proxy-agent,iconv-lite,ieee754,import-lazy,imurmurhash,inflight,inherits,ini,inquirer,ip-regex,ipaddr.js,is-arrayish,is-binary-path,is-ci,is-extglob,is-fullwidth-code-point,is-glob,is-installed-globally,is-npm,is-number,is-obj,is-path-inside,is-promise,is-redirect,is-retry-allowed,is-stream,is-stream-ended,is-typedarray,is-url,is-wsl,is2,isarray,isexe,isstream,jju,join-path,js-yaml,jsbn,json-bigint,json-parse-helpfulerror,json-schema,json-schema-traverse,json-stringify-safe,jsonfile,jsonparse,jsonschema,jsonwebtoken,jsprim,jwa,jws,klaw,kuler,latest-version,lazystream,listenercount,lodash,lodash._isnative,lodash._objecttypes,lodash._shimkeys,lodash.at,lodash.camelcase,lodash.defaults,lodash.difference,lodash.flatten,lodash.has,lodash.includes,lodash.isarguments,lodash.isboolean,lodash.isinteger,lodash.isnumber,lodash.isobject,lodash.isplainobject,lodash.isstring,lodash.keys,lodash.once,lodash.snakecase,lodash.toarray,lodash.union,lodash.values,log-symbols,logform,long,lowercase-keys,lru-cache,lru-queue,make-dir,marked,marked-terminal,media-typer,memoizee,merge-descriptors,methods,mime,mime-db,mime-types,mimic-fn,minimatch,minimist,minipass,minizlib,mkdirp,morgan,ms,mute-stream,nash,negotiator,next-tick,nice-try,node-emoji,node-fetch,node-forge,normalize-path,npm-run-path,oauth-sign,on-finished,on-headers,once,one-time,onetime,open,ora,os-tmpdir,p-defer,p-finally,package-json,parseurl,path-is-absolute,path-is-inside,path-key,path-to-regexp,performance-now,picomatch,pify,plist,portfinder,prepend-http,process-nextick-args,progress,protobufjs,proxy-addr,pseudomap,psl,punycode,qs,range-parser,raw-body,rc,readable-stream,readdirp,redeyed,registry-auth-token,registry-url,request,restore-cursor,retry-request,rimraf,router,rsvp,run-async,rxjs,safe-buffer,safer-buffer,semver,semver-diff,send,serve-static,setimmediate,setprototypeof,shebang-command,shebang-regex,signal-exit,simple-swizzle,sprintf-js,sshpk,stack-trace,statuses,stream-shift,string-length,string-width,string_decoder,strip-ansi,strip-eof,strip-json-comments,superstatic,supports-color,supports-hyperlinks,tar,tar-stream,tcp-port-used,term-size,text-hex,through,through2,timed-out,timers-ext,tmp,to-regex-range,toidentifier,tough-cookie,toxic,traverse,triple-beam,try-require,tslib,tunnel-agent,tweetnacl,type,type-is,typedarray-to-buffer,unique-string,universal-analytics,unpipe,unzip-response,unzipper,update-notifier,uri-js,url-join,url-parse-lax,util-deprecate,utils-merge,uuid,valid-url,vary,verror,walkdir,wcwidth,which,widest-line,winston,winston-transport,wrappy,write-file-atomic,ws,xdg-basedir,xmlbuilder,xmldom,xtend,yallist,zip-stream,@google-cloud,@grpc,@protobufjs,@types
+Installed ft@8.1.1 and packaged ft@8.1.1
+Checking for npm/bin/npm-cli install at /Users/marielcarrillo/.cache/firebase/tools/lib/node_modules/npm/bin/npm-cli
+Checking for npm/bin/npm-cli install at /Users/marielcarrillo/.cache/firebase/tools/node_modules/npm/bin/npm-cli
+Checking for npm/bin/npm-cli install at /snapshot/firepit/node_modules/npm/bin/npm-cli
+Found npm/bin/npm-cli install.
+Checking for npm/bin/npm-cli install at /Users/marielcarrillo/.cache/firebase/tools/lib/node_modules/npm/bin/npm-cli
+Checking for npm/bin/npm-cli install at /Users/marielcarrillo/.cache/firebase/tools/node_modules/npm/bin/npm-cli
+Checking for npm/bin/npm-cli install at /snapshot/firepit/node_modules/npm/bin/npm-cli
+Found npm/bin/npm-cli install.
+ShellJSInternalError: ENOENT: no such file or directory, unlink '/Users/marielcarrillo/.cache/firebase/runtime/shell'
+ShellJSInternalError: ENOENT: no such file or directory, unlink '/Users/marielcarrillo/.cache/firebase/runtime/node.bat'
+ShellJSInternalError: ENOENT: no such file or directory, unlink '/Users/marielcarrillo/.cache/firebase/runtime/npm.bat'
+Runtime binaries created.
+/usr/local/bin/firebase
+/usr/local/bin/firebase,/snapshot/firepit/firepit.js,init
+Checking for npm/bin/npm-cli install at /Users/marielcarrillo/.cache/firebase/tools/lib/node_modules/npm/bin/npm-cli
+Checking for npm/bin/npm-cli install at /Users/marielcarrillo/.cache/firebase/tools/node_modules/npm/bin/npm-cli
+Checking for npm/bin/npm-cli install at /snapshot/firepit/node_modules/npm/bin/npm-cli
+Found npm/bin/npm-cli install.
+Checking for npm/bin/npm-cli install at /Users/marielcarrillo/.cache/firebase/tools/lib/node_modules/npm/bin/npm-cli
+Checking for npm/bin/npm-cli install at /Users/marielcarrillo/.cache/firebase/tools/node_modules/npm/bin/npm-cli
+Checking for npm/bin/npm-cli install at /snapshot/firepit/node_modules/npm/bin/npm-cli
+Found npm/bin/npm-cli install.
+ShellJSInternalError: ENOENT: no such file or directory, chmod '/Users/marielcarrillo/.cache/firebase/runtime/node.js'
\ No newline at end of file
diff --git a/firestore.indexes.json b/firestore.indexes.json
new file mode 100644
index 00000000..415027e5
--- /dev/null
+++ b/firestore.indexes.json
@@ -0,0 +1,4 @@
+{
+ "indexes": [],
+ "fieldOverrides": []
+}
diff --git a/firestore.rules b/firestore.rules
new file mode 100644
index 00000000..4718b9e9
--- /dev/null
+++ b/firestore.rules
@@ -0,0 +1,17 @@
+rules_version = '2';
+service cloud.firestore {
+ match /databases/{database}/documents {
+
+ // This rule allows anyone on the internet to view, edit, and delete
+ // all data in your Firestore database. It is useful for getting
+ // started, but it is configured to expire after 30 days because it
+ // leaves your app open to attackers. At that time, all client
+ // requests to your Firestore database will be denied.
+ //
+ // Make sure to write security rules for your app before that time, or else
+ // your app will lose access to your Firestore database
+ match /{document=**} {
+ allow read, write: if request.time < timestamp.date(2020, 5, 11);
+ }
+ }
+}
\ No newline at end of file
diff --git a/functions/.eslintrc.json b/functions/.eslintrc.json
new file mode 100644
index 00000000..6b6beb65
--- /dev/null
+++ b/functions/.eslintrc.json
@@ -0,0 +1,123 @@
+{
+ "parserOptions": {
+ // Required for certain syntax usages
+ "ecmaVersion": 2017
+ },
+ "plugins": [
+ "promise"
+ ],
+ "extends": "eslint:recommended",
+ "rules": {
+ // Removed rule "disallow the use of console" from recommended eslint rules
+ "no-console": "off",
+
+ // Removed rule "disallow multiple spaces in regular expressions" from recommended eslint rules
+ "no-regex-spaces": "off",
+
+ // Removed rule "disallow the use of debugger" from recommended eslint rules
+ "no-debugger": "off",
+
+ // Removed rule "disallow unused variables" from recommended eslint rules
+ "no-unused-vars": "off",
+
+ // Removed rule "disallow mixed spaces and tabs for indentation" from recommended eslint rules
+ "no-mixed-spaces-and-tabs": "off",
+
+ // Removed rule "disallow the use of undeclared variables unless mentioned in /*global */ comments" from recommended eslint rules
+ "no-undef": "off",
+
+ // Warn against template literal placeholder syntax in regular strings
+ "no-template-curly-in-string": 1,
+
+ // Warn if return statements do not either always or never specify values
+ "consistent-return": 1,
+
+ // Warn if no return statements in callbacks of array methods
+ "array-callback-return": 1,
+
+ // Require the use of === and !==
+ "eqeqeq": 2,
+
+ // Disallow the use of alert, confirm, and prompt
+ "no-alert": 2,
+
+ // Disallow the use of arguments.caller or arguments.callee
+ "no-caller": 2,
+
+ // Disallow null comparisons without type-checking operators
+ "no-eq-null": 2,
+
+ // Disallow the use of eval()
+ "no-eval": 2,
+
+ // Warn against extending native types
+ "no-extend-native": 1,
+
+ // Warn against unnecessary calls to .bind()
+ "no-extra-bind": 1,
+
+ // Warn against unnecessary labels
+ "no-extra-label": 1,
+
+ // Disallow leading or trailing decimal points in numeric literals
+ "no-floating-decimal": 2,
+
+ // Warn against shorthand type conversions
+ "no-implicit-coercion": 1,
+
+ // Warn against function declarations and expressions inside loop statements
+ "no-loop-func": 1,
+
+ // Disallow new operators with the Function object
+ "no-new-func": 2,
+
+ // Warn against new operators with the String, Number, and Boolean objects
+ "no-new-wrappers": 1,
+
+ // Disallow throwing literals as exceptions
+ "no-throw-literal": 2,
+
+ // Require using Error objects as Promise rejection reasons
+ "prefer-promise-reject-errors": 2,
+
+ // Enforce “for” loop update clause moving the counter in the right direction
+ "for-direction": 2,
+
+ // Enforce return statements in getters
+ "getter-return": 2,
+
+ // Disallow await inside of loops
+ "no-await-in-loop": 2,
+
+ // Disallow comparing against -0
+ "no-compare-neg-zero": 2,
+
+ // Warn against catch clause parameters from shadowing variables in the outer scope
+ "no-catch-shadow": 1,
+
+ // Disallow identifiers from shadowing restricted names
+ "no-shadow-restricted-names": 2,
+
+ // Enforce return statements in callbacks of array methods
+ "callback-return": 2,
+
+ // Require error handling in callbacks
+ "handle-callback-err": 2,
+
+ // Warn against string concatenation with __dirname and __filename
+ "no-path-concat": 1,
+
+ // Prefer using arrow functions for callbacks
+ "prefer-arrow-callback": 1,
+
+ // Return inside each then() to create readable and reusable Promise chains.
+ // Forces developers to return console logs and http calls in promises.
+ "promise/always-return": 2,
+
+ //Enforces the use of catch() on un-returned promises
+ "promise/catch-or-return": 2,
+
+ // Warn against nested then() or catch() statements
+ "promise/no-nesting": 1
+ }
+}
diff --git a/functions/.gitignore b/functions/.gitignore
new file mode 100644
index 00000000..40b878db
--- /dev/null
+++ b/functions/.gitignore
@@ -0,0 +1 @@
+node_modules/
\ No newline at end of file
diff --git a/functions/index.js b/functions/index.js
new file mode 100644
index 00000000..bd698a23
--- /dev/null
+++ b/functions/index.js
@@ -0,0 +1,8 @@
+const functions = require('firebase-functions');
+
+// // Create and Deploy Your First Cloud Functions
+// // https://firebase.google.com/docs/functions/write-firebase-functions
+//
+// exports.helloWorld = functions.https.onRequest((request, response) => {
+// response.send("Hello from Firebase!");
+// });
diff --git a/functions/package.json b/functions/package.json
new file mode 100644
index 00000000..7b569841
--- /dev/null
+++ b/functions/package.json
@@ -0,0 +1,25 @@
+{
+ "name": "functions",
+ "description": "Cloud Functions for Firebase",
+ "scripts": {
+ "lint": "eslint .",
+ "serve": "firebase emulators:start --only functions",
+ "shell": "firebase functions:shell",
+ "start": "npm run shell",
+ "deploy": "firebase deploy --only functions",
+ "logs": "firebase functions:log"
+ },
+ "engines": {
+ "node": "8"
+ },
+ "dependencies": {
+ "firebase-admin": "^8.9.0",
+ "firebase-functions": "^3.3.0"
+ },
+ "devDependencies": {
+ "eslint": "^5.12.0",
+ "eslint-plugin-promise": "^4.0.1",
+ "firebase-functions-test": "^0.1.6"
+ },
+ "private": true
+}
diff --git a/package.json b/package.json
index 9a365577..3d83780d 100644
--- a/package.json
+++ b/package.json
@@ -22,7 +22,6 @@
"@babel/plugin-transform-modules-commonjs": "^7.2.0",
"babel-core": "^7.0.0-bridge.0",
"babel-jest": "^24.8.0",
- "eslint": "^6.0.1",
"eslint-config-airbnb-base": "^13.2.0",
"eslint-plugin-import": "^2.18.2",
"eslint-plugin-jest": "^22.1.2",
@@ -32,5 +31,11 @@
"serve": "^11.0.2",
"stylelint": "^10.1.0",
"stylelint-config-recommended": "^2.2.0"
+ },
+ "dependencies": {
+ "@firebase/firestore": "^1.14.1",
+ "@firebase/storage": "^0.3.32",
+ "@google-cloud/storage": "^4.7.0",
+ "firebase": "^7.14.2"
}
-}
\ No newline at end of file
+}
diff --git a/public/index.html b/public/index.html
new file mode 100644
index 00000000..02d348b8
--- /dev/null
+++ b/public/index.html
@@ -0,0 +1,65 @@
+
+
+
You're seeing this because you've successfully setup Firebase Hosting. Now it's time to go build something extraordinary!
+ Open Hosting Documentation +Firebase SDK Loading…
+ + + + diff --git a/src/example.js b/src/example.js deleted file mode 100644 index 52d2c7ea..00000000 --- a/src/example.js +++ /dev/null @@ -1,3 +0,0 @@ -export const example = () => { - // aquí tu código -} \ No newline at end of file diff --git a/src/imgBichigram/abejita.png b/src/imgBichigram/abejita.png new file mode 100755 index 00000000..e3a4a16f Binary files /dev/null and b/src/imgBichigram/abejita.png differ diff --git "a/src/imgBichigram/ara\303\261i.png" "b/src/imgBichigram/ara\303\261i.png" new file mode 100755 index 00000000..4c3bf55f Binary files /dev/null and "b/src/imgBichigram/ara\303\261i.png" differ diff --git a/src/imgBichigram/art1.png b/src/imgBichigram/art1.png new file mode 100755 index 00000000..62833233 Binary files /dev/null and b/src/imgBichigram/art1.png differ diff --git a/src/imgBichigram/art2.png b/src/imgBichigram/art2.png new file mode 100755 index 00000000..606fef96 Binary files /dev/null and b/src/imgBichigram/art2.png differ diff --git a/src/imgBichigram/art3.png b/src/imgBichigram/art3.png new file mode 100755 index 00000000..e049291b Binary files /dev/null and b/src/imgBichigram/art3.png differ diff --git a/src/imgBichigram/art4.png b/src/imgBichigram/art4.png new file mode 100755 index 00000000..5493c36d Binary files /dev/null and b/src/imgBichigram/art4.png differ diff --git a/src/imgBichigram/bichiLogin.png b/src/imgBichigram/bichiLogin.png new file mode 100644 index 00000000..11f4c17a Binary files /dev/null and b/src/imgBichigram/bichiLogin.png differ diff --git a/src/imgBichigram/bichiVerde.png b/src/imgBichigram/bichiVerde.png new file mode 100755 index 00000000..5b027ab4 Binary files /dev/null and b/src/imgBichigram/bichiVerde.png differ diff --git a/src/imgBichigram/bichigram.svg b/src/imgBichigram/bichigram.svg new file mode 100644 index 00000000..e5a7d14d --- /dev/null +++ b/src/imgBichigram/bichigram.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/imgBichigram/bichimicha.png b/src/imgBichigram/bichimicha.png new file mode 100755 index 00000000..529e1319 Binary files /dev/null and b/src/imgBichigram/bichimicha.png differ diff --git a/src/imgBichigram/btnHome.png b/src/imgBichigram/btnHome.png new file mode 100755 index 00000000..aa1d982a Binary files /dev/null and b/src/imgBichigram/btnHome.png differ diff --git a/src/imgBichigram/btnProf.png b/src/imgBichigram/btnProf.png new file mode 100755 index 00000000..90730a9c Binary files /dev/null and b/src/imgBichigram/btnProf.png differ diff --git a/src/imgBichigram/btnShare.png b/src/imgBichigram/btnShare.png new file mode 100755 index 00000000..5159ae7d Binary files /dev/null and b/src/imgBichigram/btnShare.png differ diff --git a/src/imgBichigram/cangrejo.png b/src/imgBichigram/cangrejo.png new file mode 100755 index 00000000..92f59d49 Binary files /dev/null and b/src/imgBichigram/cangrejo.png differ diff --git a/src/imgBichigram/escarabajo.png b/src/imgBichigram/escarabajo.png new file mode 100755 index 00000000..a2379459 Binary files /dev/null and b/src/imgBichigram/escarabajo.png differ diff --git a/src/imgBichigram/escorpion.png b/src/imgBichigram/escorpion.png new file mode 100755 index 00000000..034cf1e7 Binary files /dev/null and b/src/imgBichigram/escorpion.png differ diff --git a/src/imgBichigram/fb.png b/src/imgBichigram/fb.png new file mode 100755 index 00000000..3926f24d Binary files /dev/null and b/src/imgBichigram/fb.png differ diff --git a/src/imgBichigram/fondo1.jpg b/src/imgBichigram/fondo1.jpg new file mode 100755 index 00000000..957340da Binary files /dev/null and b/src/imgBichigram/fondo1.jpg differ diff --git a/src/imgBichigram/fondo2.jpg b/src/imgBichigram/fondo2.jpg new file mode 100755 index 00000000..9fdd5f46 Binary files /dev/null and b/src/imgBichigram/fondo2.jpg differ diff --git a/src/imgBichigram/fondo3.jpg b/src/imgBichigram/fondo3.jpg new file mode 100755 index 00000000..6eece466 Binary files /dev/null and b/src/imgBichigram/fondo3.jpg differ diff --git a/src/imgBichigram/fondoBichi.jpg b/src/imgBichigram/fondoBichi.jpg new file mode 100755 index 00000000..8ac0b94a Binary files /dev/null and b/src/imgBichigram/fondoBichi.jpg differ diff --git a/src/imgBichigram/google.png b/src/imgBichigram/google.png new file mode 100755 index 00000000..93f50490 Binary files /dev/null and b/src/imgBichigram/google.png differ diff --git a/src/imgBichigram/ladybug.png b/src/imgBichigram/ladybug.png new file mode 100755 index 00000000..1315e1ce Binary files /dev/null and b/src/imgBichigram/ladybug.png differ diff --git a/src/imgBichigram/langosta.png b/src/imgBichigram/langosta.png new file mode 100755 index 00000000..a9d1ed01 Binary files /dev/null and b/src/imgBichigram/langosta.png differ diff --git a/src/imgBichigram/logout.png b/src/imgBichigram/logout.png new file mode 100755 index 00000000..62c9340e Binary files /dev/null and b/src/imgBichigram/logout.png differ diff --git a/src/imgBichigram/mariposa.png b/src/imgBichigram/mariposa.png new file mode 100755 index 00000000..652b04e3 Binary files /dev/null and b/src/imgBichigram/mariposa.png differ diff --git a/src/imgBichigram/mariposaAzul.png b/src/imgBichigram/mariposaAzul.png new file mode 100755 index 00000000..990bdbb7 Binary files /dev/null and b/src/imgBichigram/mariposaAzul.png differ diff --git a/src/imgBichigram/membicha.png b/src/imgBichigram/membicha.png new file mode 100755 index 00000000..1162f90c Binary files /dev/null and b/src/imgBichigram/membicha.png differ diff --git a/src/imgBichigram/mosca.png b/src/imgBichigram/mosca.png new file mode 100755 index 00000000..f63578e7 Binary files /dev/null and b/src/imgBichigram/mosca.png differ diff --git a/src/imgBichigram/resp1.jpg b/src/imgBichigram/resp1.jpg new file mode 100755 index 00000000..2fbd015f Binary files /dev/null and b/src/imgBichigram/resp1.jpg differ diff --git a/src/imgBichigram/resp2.jpg b/src/imgBichigram/resp2.jpg new file mode 100755 index 00000000..13192ee4 Binary files /dev/null and b/src/imgBichigram/resp2.jpg differ diff --git a/src/imgBichigram/resp3.jpg b/src/imgBichigram/resp3.jpg new file mode 100755 index 00000000..9d204958 Binary files /dev/null and b/src/imgBichigram/resp3.jpg differ diff --git a/src/imgBichigram/resp4.jpg b/src/imgBichigram/resp4.jpg new file mode 100755 index 00000000..e283996e Binary files /dev/null and b/src/imgBichigram/resp4.jpg differ diff --git a/src/index.html b/src/index.html index bb6937cc..1553cb8f 100644 --- a/src/index.html +++ b/src/index.html @@ -4,9 +4,62 @@ -Una red social
para aprender de artrópodos
Ayuda a identificar
y catálogar especies
Dale "me embicha" a tus publicaciones favoritas!
+