Giter VIP home page Giter VIP logo

lim014-social-network's Introduction

MIURART Red Social Group 17

MiurArt es una red social enfocada en artistas de murales que permite compartir datos, información, y la interacción entre los miembros de esta comunidad a través de comentarios y reacciones como "me gusta". Los miembros de esta comunidad tienen un perfil en donde pueden poner una breve descripción suya. También hay una sección para publicar lo que crean conveniente relacionado a su trabajo y arte.

Definición de producto

¿Quiénes son los usuarios del producto?

  • Artistas muralistas que quieran exponer su arte de manera virtual

¿Cuáles son los elementos tiene nuestra red social?

  • Permite crear una cuenta personal.
  • Permite iniciar sesión.
  • Permite hacer publicaciones.
  • Permite tener conversaciones con otras personas.
  • Permite reaccionar a las personas ante una publicación.

¿Cómo descubrimos las necesidades de los usuarios?

  • A través de entrevistas de artistas independientes.

¿Qué problema resuelve el producto para estos usuarios?

  • La inexistencia de una red social enfocada exclusivamente en la exposición de su arte

¿Cuáles son los objetivos de estos usuarios en relación al producto?

  • Poder encontrar publicaciones de artistas.
  • Poder conocer a otros artistas.
  • Poder promocionar su arte.
  • Poder crear o unirse a una comunidad de artistas.

¿Cuáles son las principales funcionalidades del producto y cuál es su prioridad?

  • Permitir hacer publicaciones.
  • Permitir crear una cuenta.
  • Permitir poder ingresar con una cuenta de google.
  • Permitir ingresar a la red social.
  • Permitir el compartir y reaccionar a las publicaciones.
  • Permitir la edición o eliminación de las publicaciones.

ENTREVISTAS

PREGUNTAS

Pregunta 1: ¿Sientes que tu trabajo tiene suficiente visibilidad ?
Pregunta 2: ¿Para ti, es fácil conocer o contactarte con otros artistas del medio?
Pregunta 3: ¿Consideras importante el relacionarte con otros artistas del medio?
Pregunta 4: Si hubiera una red social para artistas murales, ¿Qué tipo de información te gustaría encontrar?

Entrevista 1 (Mujer, 27 años) 1: Eh no, debido a las restricciones de la pandemia, los lugares donde solían estar expuestos mis murales han sido restringidas (Restaurantes, Galerías, y calles cerca a oficinas).
2: Se ha reducido el espacio de interacción, debido a la pandemia.
3: Sí, porque igual siempre hemos sido una comunidad unida. Pero ahora siento que se ha limitado nuestra interacción y convivencia.
4: Me gustaría mostrar mi trabajo como hacía antes, y recibir feedback y comentarios de otros artistas, así como explorar otros perfiles, para ampliar mi red de contactos.

Entrevista 2 (Hombre,22 años)
1: No mucho, con la llegada de la pandemia mi trabajo como el de otros se ha visto detenido e ignorado.
2: Realmente incluso antes de la pandemia el conocer a otros muralistas fue un tanto limitado.
3: Por supuesto, como artista me gusta cocnocer gente en este medio, que pueda apoyarme y denvolverme.
4: Me gustaría conocer a más artistas y ver su arte, además de mostrarles el mío.

Historias de Usuario

Historia de Usuario 1

Yo como usuari@ deseo tener una vista inicial atractiva en la plataforma antes de ingresar a mi cuenta.

Criterio de aceptación:

- Se muestra campos para ingresar: nombre, apellido, nombre de usuario, correo electrónico, contraseña
- La contraseña tiene más de 6 dígitos
- No se pueden ingresar números en los campos de nombre y apellido
- Se muestra casilla para términos y condiciones
- No se activa la cuenta si no se acepta el mensaje de verificación
- Se muestran opciones para registrarse desde google o facebook
- Se muestra un mensaje indicando que  ya puede iniciar sesión
- Se muestra mensaje y opción para regresar al log in

Definición de lo terminado

Login con Firebase:
- Para el login y las publicaciones en el muro puedes utilizar Firebase
- Creación de cuenta de acceso y autenticación con cuenta de correo y contraseña, y también con una cuenta de Google.

Validaciones:
- Solamente se permite el acceso a usuarios con cuentas válidas.
- No pueden haber usuarios repetidos.
- La cuenta de usuario debe ser un correo electrónico válido.
- Lo que se escriba en el campo (input) de contraseña debe ser secreto.

Comportamiento:
- Al enviarse el formulario de registro o inicio de sesión, debe validarse.
- Si hay errores, se deben mostrar mensajes descriptivos para ayudar al usuario a corregirlos

Testeo:
- Se hizo testeo de las funciones de la historia de Usuario

Historia de Usuario 2

Yo como usuari@ quiero iniciar sesión con el correo y la contraseña que registré para poder ver mi muro

Criterio de aceptación:
- Se muestra campos para ingresar: correo electrónico y contraseña
- La contraseña tiene más de 6 dígitos
- El botón se habilita cuando los inputs no esten vacios
- Se muestran opciones para ingresar desde google o facebook
- Se muestra mensaje y opción para ir al registro

Validaciones:

 - Solamente se permite el acceso a usuarios con cuentas válidas.
 - No pueden haber usuarios repetidos.
 - La cuenta de usuario debe ser un correo electrónico válido.
 - Lo que se escriba en el campo (input) de contraseña debe ser secreto

 Comportamiento:

 - Al enviarse el formulario de registro o inicio de sesión, debe validarse.
 - Si hay errores, se deben mostrar mensajes descriptivos para ayudar al usuario a corregirlos.

Definición de lo terminado:
Login con Firebase:

 - Creación de cuenta de acceso y autenticación con cuenta de correo y contraseña.
 - Creación de cuenta de acceso y autenticación con una cuenta de Google.
 - Se hizo test unitarios
 - Se hizo testeo de funciones
 - Se hizo test manualmente buscando errores e imperfecciones simples.
 - Se hizo pruebas de usabilidad e incorporaron el feedback de los usuarios como mejoras.
 - Se recibió feedback de compañeras.
 - Es responsive.

Historia de Usuario 3

Yo como usuari@ quiero poder comentar publicaciones de otros artistas

Criterio de aceptación:
- Hay un botón para generar el comentario
- Sólo se puede comentar texto
- El comentario se visualiza inmediatamente después de haberlo publicado
- Puede hacer comentarios en publicaciones de otros
- Puede hacer uno o más comentarios en un mismo post
- Se muestra el nombre de la persona que hizo el comentario
- Se muestra la foto de la persona que hizo el comentario

Definición de lo terminado:
- Se hizo test unitarios
- Se hizo testeo de funciones
- Se hizo test manualmente buscando errores e imperfecciones simples.
- Se hizo pruebas de usabilidad e incorporaron el feedback de los usuarios como mejoras.
- Se recibió feedback de compañeras.
- Es responsive.

Historia de Usuario 4

Yo como usuari@ deseo una plataforma que me permita ver las publicaciones de otros usuarios

Criterio de aceptación:
- Al recargar la aplicación, se debe verificar si el usuario está logueado antes de mostrar contenido.

Definición de lo terminado:
- Se hizo test unitarios
- Se hizo testeo de funciones
- Se hizo test manualmente buscando errores e imperfecciones simples.
- Se hizo pruebas de usabilidad e incorporaron el feedback de los usuarios como mejoras.
- Se recibió feedback de compañeras.
- Es responsive

Historia de Usuario 5

Yo como usuari@ quiero crear y editar publicaciones en el muro

Criterio de aceptación:
Validaciones:
- Al publicar, se debe validar que exista contenido en el input.
  
Comportamiento:
- Al recargar la aplicación, se debe verificar si el usuario está logueado antes de mostrar contenido.
- Puede hacer una o muchas publicaciones.
- Puede eliminar publicación(es) específicas.
- Pide confirmación antes de eliminar un post.
- Al dar click para editar un post, debe cambiar el texto por un input que permita editar el texto y luego guardar los cambios.
- Al guardar los cambios debe cambiar de vuelta a un texto normal pero con la información editada
- Al recargar la página se puede ver los textos editados.

Definición de lo terminado:
- Se hizo test unitarios
- Se hizo testeo de funciones
- Se hizo test manualmente buscando errores e imperfecciones simples.
- Se hizo pruebas de usabilidad e incorporaron el feedback de los usuarios como mejoras.
- Se recibió feedback de compañeras.
- Es responsive

Historia de Usuario 6

Yo como usuari@ deseo poder dale like o una emoción a las publicaciones que me gusten

Criterio de aceptación:
- Hay un botón like en cada publicación realizada
- Hay un contador de likes en cada publicación
- Un usuario puede dar like 1 vez a 1 publicación
- Se peude quitar el like de las publicaciones
- Sólo si el usuario está logueado puede dar like
Definición de lo terminado:
- Las funciones han sido testeadas
- El contador muestra la cantidad de likes que tiene la publicación en tiempo real
- 

Historia de Usuario 7

Yo como usuario quiero editar mi publicación para plasmar algo distinto

Criterio de aceptación:
- Hay un botón para editar la publicación
- Sólo el usuario que hizo la publicación la puede editar

Definición de lo terminado:
- Se han testeado las funciones
- Los cambios se pueden visualizar en menos de 1rn

Historia de Usuario 8

Yo como usuario quiero eliminar mi publicación para que ya no aparezca en mi muro de mi red

Criterio de aceptación:
- Sólo el usuario que creó la publicación la puede eliminar
- Hay un mensaje de verificación cuando se da click en el botón de eliminar.
- El mensaje de verificación contiene un botón para cancelar la acción y otro para verificarla
- Al recargar la página, no se verá la publicación ni los posts de esta.

Definición de lo terminado:
- Se hizo test unitarios
- Se hizo testeo de funciones
- Se hizo test manualmente buscando errores e imperfecciones simples.
- Se hizo pruebas de usabilidad e incorporaron el feedback de los usuarios como mejoras.
- Se recibió feedback de compañeras.
- Es responsive

Historia de Usuario 9

Yo como usuaria deseo hacer una busqueda sobre temas que podrían interesarme

Criterio de aceptación:
-
-
-
Definición de lo terminado:
-

Historia de Usuario 10

Yo como usuari@ deseo poder cerrar mi sesión en la red social

Criterio de aceptación:
- Hay un botón para cerrar la sesión
- Al hacer click en el botón Salir se muestra la página de log in
- El usuario no puede ver sus publicaciones o las publicaciones del resto

Definición de lo terminado:
- Las funciones de cerrar sesión han sido testedas
- Regresa a la página de log in
- Se hizo test unitarios
- Se hizo testeo de funciones
- Se hizo test manualmente buscando errores e imperfecciones simples.
- Se hizo pruebas de usabilidad e incorporaron el feedback de los usuarios como mejoras.
- Se recibió feedback de compañeras.
- Es responsive.

Historia de Usuario 11

Yo como usuari@ deseo poder ver mi perfil de la red social cuando este logueada

Criterio de aceptación:
- Se muestra la foto por defecto de la cuenta de google si ingresó a través de esta opción
- Se puede cambiar la foto de pefil una vez que haya iniciado sesión

Definición de lo terminado:
- Se hizo test unitarios
- Se hizo testeo de funciones
- Se hizo test manualmente buscando errores e imperfecciones simples.
- Se hizo pruebas de usabilidad e incorporaron el feedback de los usuarios como mejoras.
- Se recibió feedback de compañeras.
- Es responsive.

PROTIPOS DE BAJA FIDELIDAD

(Vista Mobile)

Mobile baja calidad 1

Mobile baja calidad 2

Mobile baja calidad 3

Mobile baja calidad 5

Mobile baja calidad 4

(Vista Desktop)

PC baja calidad 1

PC baja calidad 2

PC baja calidad 3

Feedback Recibido

PROTOTIPOS ALTA FIDELIDAD

(Vista Mobile)

Frame 5 Mobile alta calidad 5 Mobile alta calidad 6 Mobile alta calidad 7 Mobile alta fidelidad 1 Mobile alta fidelidad 2

(Vista Desktop)

Frame 7 Frame 9 PC alta calidad 3

Feedback Recibido

PROTIPO FINAL

2. Resumen del proyecto

En este proyecto construirás una Red Social sobre lo que decidan tú y tu equipo. Podría ser, por ejemplo, sobre alimentación saludable, feminismo, educación, salud, energías renovables, amantes de las Empanadas o de los Tacos de Canasta, de la Feijoada, o de lo que sea.

Tu Red Social tendrá que permitir a cualquier usuario crear una cuenta de acceso y loguearse con ella; crear, editar, borrar y "likear" publicacciones.

3. Objetivos de aprendizaje

El objetivo principal de aprendizaje de este proyecto es construir una Single-page Application (SPA) responsive (con más de una vista / página) en la que podamos leer y escribir datos.

HTML y CSS

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

    mobile

  • Vista Desktop

    desktop

DOM y Web APIs

  • Uso de selectores del DOM.
  • Manejo de eventos del DOM (addEventListener, removeEventListener, Event objeto, delegación de eventos)
  • Manipulación dinámica del DOM (appendChild | createElement | createTextNode | innerHTML | textContent | etc.)
  • Implementación de routing (History API. | hashchange)

JavaScript

  • Uso de condicionales (if-else | switch | operador ternario)
  • Uso de funciones (parámetros | argumentos | valor de retorno)
  • Manipular arrays (filter | map | sort | reduce)
  • Manipular objects (key | value)
  • Uso ES modules (import | export)
  • Diferenciar entre expression y statements.
  • Diferenciar entre tipos de datos atómicos y estructurados.
  • Uso de callbacks.
  • Consumo de Promesas.

Testing

Estructura del código y guía de estilo

  • Organizar y dividir el código en módulos (Modularización)
  • Uso de identificadores descriptivos (Nomenclatura | Semántica)
  • Uso de linter (ESLINT)

Git y Github

  • Uso de comandos de git (add | commit | pull | status | push)
  • Manejo de repositorios de GitHub (clone | fork | gh-pages)
  • Colaboración en Github (branches | pull requests | |tags)
  • Organización en Github (projects | issues | labels | milestones)

Firebase

UX

  • Diseñar la aplicación pensando y entendiendo al usuario.
  • Crear prototipos para obtener feedback e iterar.
  • Aplicar los principios de diseño visual (contraste, alineación, jerarquía)
  • Planear y ejecutar tests de usabilidad.

4. Consideraciones generales

  • Este proyecto se debe trabajar en equipos de tres.

  • La lógica del proyecto debe estar implementada completamente en JavaScript (ES6+), HTML y CSS 😃. Para este proyecto no está permitido utilizar frameworks o librerías de CSS y JS.

  • La división y organización del trabajo debe permitir, sin excepciones, que cada integrante del equipo practique el aprendizaje de todo lo involucrado en cada historia. No se dividan el trabajo como en una fábrica.

    • ¿Hasta acá has avanzado en tus proyectos con cierta fluidez y sin mayores problemas? Sé generosa con tus compañeras, permíteles aprender y practicar sin restricciones, aunque tome un poco más de tiempo. Aproveha de coachearlas, de hacer pair programming, una de las mejores maneras de aprender es explicando verbalmente.

    • ¿Se te está haciendo difícil y te cuesta un poco más avanzar? No te quedes con las partes "fáciles" del proyecto, conversa, negocia, exige tu oportunidad para practicar y aprender lo que se te hace más difícil.

  • Solamente pueden trabajar en una única historia por vez, no pueden avanzar a la siguiente sin haber completado la anterior. La historia se completa cuando se cumplen todos sus Criterios de Aceptación + toda su Definición de Terminado.

Para comenzar tendrás que hacer un fork y clonar este repositorio.

5. Criterios de aceptación mínimos del proyecto

5.1 Boilerplate

Este proyecto no incluye un boilerplate, así es que tendrás que definir la estructura de carpetas y escribir tus propias Pruebas Unitarias (tests). Para hacerlo, puedes guiarte de los proyectos anteriores.

5.2 Definición del producto

En el README.md cuéntanos brevemente cómo descubriste las necesidades de los usuarios y cómo llegaste a la definición final de tu producto. Es importante que detalles:

  • Quiénes son los principales usuarios de producto.
  • Qué problema resuelve el producto / para qué le servirá a estos usuarios.

5.3 Historias de usuario

Una vez que entiendas las necesidades de tus usuarixs, escribe las Historias de Usuario que representen todo lo que necesitan hacer/ver en la Red Social. Cada una de tus Historias de Usuario debe tener:

  • Criterios de Aceptación: todo lo que debe ocurrir para satisfacer las necesidades del usuario.

  • Definición de terminado: todos los aspectos técnicos que deben cumplirse para que, como equipo, sepan que esa historia está terminada y lista para publicarse. Todas tus Historias de Usuario (salvo excepciones), deben incluir estos aspectos en su Definición de Terminado (más todo lo que necesiten agregar):

    • Debe ser una SPA.
    • Debe ser responsive.
    • Deben haber recibido code review de al menos una compañera de otro equipo.
    • Hicieron los test unitarios
    • Testearon manualmente buscando errores e imperfecciones simples.
    • Hicieron pruebas de usabilidad e incorporaron el feedback de los usuarios como mejoras.
    • Desplegaron su aplicación y etiquetaron la versión (git tag).

5.4 Diseño de la Interfaz de Usuario (prototipo de baja fidelidad)

Debes definir cuál será el flujo que seguirá el usuario dentro de tu aplicación y, con eso, diseña la Interfaz de Usuario (UI por sus siglas en inglés) que siga este flujo.

5.5 Responsive

Debe verse bien en dispositivos de pantallas grandes (computadoras/es, laptops, etc.) y pequeñas (tablets, celulares, etc.). Te sugerimos seguir la técnica de mobile first (más detalles sobre esta técnica al final).

5.6 Consideraciones del comportamiento de la interfaz de usuario (UI)

Estas consideraciones te ayudarán a escribir las Definiciones de Terminado de tus H.U.:

Creación de cuenta de usuario e inicio de sesión

  • Login con Firebase:
    • Para el login y las publicaciones en el muro puedes utilizar Firebase
    • Creación de cuenta de acceso y autenticación con cuenta de correo y contraseña, y también con una cuenta de Google.
  • Validaciones:
    • Solamente se permite el acceso a usuarios con cuentas válidas.
    • No pueden haber usuarios repetidos.
    • La cuenta de usuario debe ser un correo electrónico válido.
    • Lo que se escriba en el campo (input) de contraseña debe ser secreto.
  • Comportamiento:
    • Al enviarse el formulario de registro o inicio de sesión, debe validarse.
    • Si hay errores, se deben mostrar mensajes descriptivos para ayudar al usuario a corregirlos.

Muro/timeline

  • Validaciones:
    • Al publicar, se debe validar que exista contenido en el input.
  • Comportamiento:
    • Al recargar la aplicación, se debe verificar si el usuario está logueado antes de mostrar contenido.
    • Poder publicar un post.
    • Poder dar y quitar like a una publicación. Máximo uno por usuario.
    • Llevar un conteo de los likes.
    • Poder eliminar un post específico.
    • Pedir confirmación antes de eliminar un post.
    • Al dar click para editar un post, debe cambiar el texto por un input que permita editar el texto y luego guardar los cambios.
    • Al guardar los cambios debe cambiar de vuelta a un texto normal pero con la información editada.
    • Al recargar la página debo de poder ver los textos editados.

7. Entrega

El proyecto será entregado subiendo tu código a GitHub (commit/push) y la interfaz será desplegada usando GitHub pages u otro servicio de hosting que puedas haber encontrado en el camino.


lim014-social-network's People

Contributors

gabrielaguerrac avatar nangebav avatar danielislas3 avatar

Recommend Projects

  • React photo React

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

  • Vue.js photo Vue.js

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

  • Typescript photo Typescript

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

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

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

  • web

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

  • server

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

  • Machine learning

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

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

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

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.