Skip to content

Práctica de una app de venta de artículos de segunda mano

Notifications You must be signed in to change notification settings

jffornieles/nodepop

Repository files navigation

NODEPOP

Nodepop es una app de venta de artículos de segunda mano, proporciona anuncios con información sobre articulos a los usuarios que estén autenticados.

Operaciones que realiza el API en su primera versión:

  • Registro (nombre, email, contraseña).
  • Autenticación (email y contraseña). El acceso al API se hará con autenticación, usando JWT (JSON Web Token)
  • Consulta de anuncios paginada para usuarios autenticados. Con filtros por tag, tipo de anuncio (venta o búsqueda), rango de precio (preciomínimo y precio máximo) y nombre de artículo (que comience por el dato buscado)
  • Consulta de tags existentes

Internacionalización

Se debe especificar el idioma del usuario en cada petición (se captura de Accept-Language). La API devolverá traducidos los mensajes de errror que debe mostrar al usuario en su idioma (solo disponible en esta primera versión en inglés y español). Si no se especifica el idioma, por defecto se establecerá el español.

Índice:

  1. Instalación
  2. Clonar repositorio e instalar dependencias
  3. Inicialización de la base de datos
  4. Especificar las variables de entorno
  5. Modelo de datos
  6. Entornos de ejecución
  7. Guia de estilo

Instalación.

Para realizar la instalación es conveniente disponer del siguiente software:

NPM version Tener instalado npm en esta versión o superiores.

NODE version Tener instalado Node.js en esta versión o superiores.

MONGODB version Tener instalado el motor de base de datos mongoDB y que esté arrancado.

Clonar repositorio e instalar dependencias

Descargar este repositorio o clonarlo desde git . Una vez clonado, instalar las dependencias con npm. Desde línea de comandos:

$ cd nodepop
nodepop/$ npm install

Para más información sobre los paquetes requeridos para esta aplicación consultar el fichero package.json.

Inicialización de la base de datos.

Desde un terminal, y una vez arrancado el servidor de mongodb, en el directorio raiz del proyecto ejecutar:

nodepop/$ npm run installDB

Al ejecutar este comando:

  • Se creará la base de datos nodepop en mongoDB.
  • Se crearán las colecciones de anuncios y usuarios con datos de muestra.

Si ya se ha creado con anterioridad la base de datos nodepop con ambas colecciones, esta ejecución borrará todos los documentos de anuncios y usuarios y los volverá a cargar con los datos de muestra.

Nota: los datos de muestra están en los ficheros anuncios.json y usuarios.json respectivamente. Se pueden modificar ambos ficheros para añadir/quitar documentos tanto de anuncios como de usuarios, siempre que se respete la estructura que dicta el modelo.

Especificar las variables de entorno

En el directorio de la aplicación se puede encontrar un fichero .env.example. Renombrar dicho fichero a .env y configurar las variables de entorno con los valores que utilizará la aplicación.

Modelo de datos.

La base de datos mongoDB en la que se alojará la información de la API seguirá el modelo de datos para las colecciones:

  • anuncios
  • usuarios

anuncios

Esta colección obedecerá al siguiente modelo:

{
    nombre: String,
    venta: Boolean,
    precio: Number,
    foto: String,
    tags: [String]
}

Los tags válidos serán los siguientes:

  • work
  • lifestyle
  • motor
  • mobile

En esta colección se han definido los siguientes índices, ya que será por los que se realizarán las consultas:

  • nombre
  • venta
  • precio
  • tags

usuarios

Para la colección de usuarios el modelo es:

{
    nombre: String,
    email: String,
    clave: String
}

Para la colección usuarios se ha definido un índice por el campo email.

Entornos de ejecución.

La API se podrá arrancar en los siguientes entornos:

Entorno de producción sin cluster.

Ejecutar en línea de comandos desde el directorio de la aplicación:

nodepop/$ npm run start

Entorno de producción con cluster.

Ejecutar en línea de comandos desde el directorio de la aplicación:

nodepop/$ npm run cluster

Guia de estilo

Para la revisión de estilo de código y de posibles bugs utilizaremos ESLint. En su configuración se ha optado por la versión de JavaScript Standard (revisar fichero .eslintrc.js).

Se ha añadido al directorio raiz del proeycto el archivo .eslintignore. En este archivo podemos añadir los directorios o archivos de nuestro proyecto para los que no queramos revisión de estilo.

En muchos IDEs existen plugins que lo integran , por ejemplo en Visual Code existe este para ESLint que tras instalarlo y añadir un proyecto con la configuración que queramos podemos ver que nos muestra los errores sobre cada una de las líneas.

About

Práctica de una app de venta de artículos de segunda mano

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published