Giter Club home page Giter Club logo

ucabture's Introduction

Backend para la app de Ucabture

Build Status

Logo

Primero tener instalado:

  • node (v10.12.0)
  • npm (v6.4.1)
  • git
  1. Clonar el repo:
git clone https://github.com/leolas95/ucabture
  1. Ir al directorio donde lo descargaron, y ejecutar:
npm install

para instalar las dependencias.

  1. 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
  1. Para iniciar el servidor:
npm start
  1. Para ejecutar las pruebas:
npm test

Estructura de la app

  • db/: Directorio con los archivos de configuracion de la base de datos
  • routes/: Directorio con las rutas que maneja el backend
  • schemas/: Directorio con los esquemas de los modelos de la base de datos
  • tests/: Directorio con los archivos para realizar las pruebas
  • app.js: Archivo principal que arranca el servidor
  • config/: Directorio donde estan las configuraciones para funcionalidades comunes, como la de subir imagenes

Endpoints

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

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.