Skip to content

taller2-2c2018/applicationServer

Repository files navigation

Application Server

Build Status Coverage Status

Descripción

ApplicationServer es un backend que permite administrar una red social de usuarios, donde los mismos pueden:

  • Administrar amistades
  • Publicar historias con fotos, videos, título, descripción, especificadas en una ubicación geográfica por coordenadas
  • Publicar historias rápidas con un período de 4hs de vigencia
  • Envío de notificaciones relevantes para el usuario

Esta es una aplicación desarrollada en python flask v1, conectada a una base de datos mongodb, y una base redis.

A su vez esta aplicación se encuentra conectada a una instancia del backend de shared server.

Paralelamente, se utilizan algunos servicios externos:

  • Facebook para autenticación de usuarios
  • Firebase para envío de notificaciones push

Configuración local

Para correr la app local, debe existir un archivo en el directorio /src/config/.env con las siguientes variables:

SHARED_SERVER_HOST=<SHARED_SERVER_HEROKU_URL>
SERVER_USER=<SHARED_SERVER_ADMIN_USER>
SERVER_PASSWORD=<SHARED_SERVER_ADMIN_PASSWORD>
MONGO_URL=<MONGO_DB_CONNECTION_URL>
REDIS_HOST=<REDIS_HOST>
REDIS_PORT=<REDIS_PORT>
ANDROID_APP_TOKEN=<FACEBOOK_ANDROID_SDK_TOKEN>
FIREBASE_SERVER_KEY=<FIREBASE_SERVER_KEY>
LOGGING_LEVEL=<DEBUG|OTHER>
FLASH_STORY_VALID_HOURS=<TOTAL_TIME_IN_HOURS_FLASH_STORY_IS_VALID>

Ejecución en docker:

Requerimientos:

  • Docker
  • Docker-compose

En el directorio raíz del proyecto ejecutar el siguiente comando:

$~ docker-compose up

Esto levanta una instancias del aplication server, conectado con un container que contiene la base de datos MongoDB.

Conexión a docker

Para ejecutar comandos como pip install <paquete>, se puede conectar al docker container de la siguiente manera:

$~ docker exec -it <nombre_del_container> sh