- node (v10.12.0)
- npm (v6.4.1)
- git
- Clonar el repo:
git clone https://github.com/leolas95/ucabture
- Ir al directorio donde lo descargaron, y ejecutar:
npm install
para instalar las dependencias.
- En el directorio raiz del proyecto, crear el archivo
.dotenv
con las variables de entorno:
# Host donde se almacena la base de datos. Si es en local, es localhost
DB_HOST=localhost
# Puerto donde esta ejecutandose el servidor de la base de datos. En mongo por defecto es 27017
DB_PORT=27017
# Nombre de la base de datos de desarrollo
DB_DEVDB=expresateucabdb
# Nombre de la base de datos de pruebas
DB_TESTDB=expresateucabtestdb
# Entorno de ejecucion: production, qa, dev
NODE_ENV=dev
- Para iniciar el servidor:
npm start
- Para ejecutar las pruebas:
npm test
db/
: Directorio con los archivos de configuracion de la base de datosroutes/
: Directorio con las rutas que maneja el backendschemas/
: Directorio con los esquemas de los modelos de la base de datostests/
: Directorio con los archivos para realizar las pruebasapp.js
: Archivo principal que arranca el servidorconfig/
: Directorio donde estan las configuraciones para funcionalidades comunes, como la de subir imagenes
URL base: https://ucabture.herokuapp.com/
METODO | RUTA | DESCRIPCION | FORM ENCODING | PARAMETROS | RETORNO EXITO | RETORNO ERROR |
---|---|---|---|---|---|---|
GET | /:username/feed | Obtiene el feed de imagenes del usuario :username | N/A | username: el nombre de usuario (Ej: pedrito123) | 200 | 404 si el usuario no existe |
POST | /signup | Endpoint para crear un nuevo usuario. | application/x-www-form-urlencoded | name: el nombre real del usuario lastname: el apellido real del usuario username: el nombre de usuario (unico dentro del sistema) password: la clave de acceso del usuario email: correo electronico del usuario group: El grupo al que pertenece el usuario. Debe ser uno de: estudiantes, proftcompleto, proftconvencional, empleados, egresados |
201 | 400 si el usuario ya existe |
POST | /upload | Sube una nueva imagen al servidor | multipart/form-data | description: La descripcion de la imagen emoji: La calificacion dada a la imagen, del 1 al 5, donde 1 es mala calificacion, y 5 es la mejor calificacion lat: latitud de donde fue tomada la imagen lng: longitud de donde fue tomada la imagen date: Fecha en que fue tomada la imagen, en formato UNIX Timestamp, en milisegundos username: nombre de usuario del usuario que sube la imagen image: la imagen propiamente dicha (recordar que debe ser el ultimo parametro) |
201 | 404 si el usuario no existe |
POST | /login | Permite iniciar sesion en el sistema | application/x-www-form-urlencoded | username: nombre de usuario password: clave del usuario |
200 | 400 si la clave es incorrecta o el usuario no existe |
GET | / | Obtiene todos los usuarios | N/A | N/A | 200 | N/A |
POST | /admins/login | Permite que un administrador inicie sesion | application/x-www-form-urlencoded | username: El nombre de usuario del administrador password: La clave de acceso del administrador |
200 | 400 si los campos estan vacios, o la clave ingresada es invalida 404 si el administrador no esta registrado. |
POST | /admins/signup | Registrar un nuevo administrador | application/x-www-form-urlencoded | name: nombre real del administrador lastname: apellido username: nombre de usuario del administrador password: la clave de acceso del administrador |
200 | 400 si el username esta ocupado |
POST | /admins/bcast | Difunde una nueva publicacion a los usuarios | multipart/form-data | title: El titulo de la publicacion description: El mensaje descriptivo de la publicacion groups: Una lista de los grupos a quienes se les desea difundir la publicacion, en minusculas y separados por coma. Ej: proftcompleto,empleados username: el nombre de usuario del administrador que realiza la difusion image: La imagen de la difusion |
201 si la difusion tuvo exito | 404 si el administrador indicado no existe |
GET | /admins/resume | Obtiene el resumen de publicaciones hechos por los usuarios, que se le muestra al admin | N/A | N/A | 200 | N/A |
GET | /admins/:username/record | Obtiene el historial de publicaciones hechos por el admin :username | N/A | username: El nombre de usuario del admin | 200 | 404 si el admin no existe |
GET | /admins | Obtiene todos los administradores | N/A | N/A | 200 | N/A |