/hackathon-ocupa2-backend

Backend de la aplicación desarrollada para el hackathon de ocupa2

Primary LanguageJavaScript

Documentación

Primeros pasos

  • Si no dispones de elasticsearch, puedes descargarlo aquí.
  • Descarga el proyecto, instala dependencias y arranca el proyecto.
    git clone https://github.com/joseanfernandez/hackathon-ocupa2-backend.git
    cd hackathon-ocupa2-backend
    npm install
    npm start
  • Usa las dos primeras rutas del apartado General en el orden establecido.
    Con esto tendrás creados los índices necesarios y almacenado los hashtags con su id para futuras consultas.

    • /elasticSetup
    • /populateHashtagIndex

General

  • Configuración de elasticsearch
  GET /elasticSetup

Para mayor comodidad, se ha creado una ruta que genera los índices con el mapping en elasticsearch.

  • Poblar base de de datos con todos los hashtags
  GET /populateHashtagIndex

Guarda todos los hashtags con su categoría e id para hacer las peticiones de los posts. Una vez guardado ese hashtag, el id se consultará en nuestra base de datos local (elasticsearch), evitando peticiones a la API.

  • Hashtags
  GET /hashtags

Listado de todos los hashtags almacenados en elasticsearch.

Twitter

  • Follow
  GET /twitter/follow?id={user_id}&action={follow/unfollow}
  • Like
  GET /twitter/like?id={tweetId}&action={like/dislike}
  • Retweet
  GET /twitter/retweet?id={tweetId}&action={retweet/unretweet}
  • Tweets por categoría
  GET /twitter/getTweets/category?name={category}  

(Usa nuestra bbdd elasticsearch)

  • Tweets por hashtag
  GET /twitter/getTweets/hashtag?name={hashtag}  

(Usa nuestra bbdd elasticsearch)

  • Tweets desde la API
  GET /twitter/getTweetsFromApi?name={hashtag}  

(Usa directamente la API proporcionada, devolviendo tweet con detalles)

  • Guardar tweets desde la API
  GET /twitter/saveTweetsFromApi?name={hashtag}  

(Guarda en elasticsearch todos los tweets con detalles)

Instagram

  • Follow
  GET /instagram/follow?id={user_id}&action={follow/unfollow}
  • Like
  GET /instagram/like?id={postId}&action={like/dislike}
  • Posts por categoría
  GET /instagram/getPosts/category?name={category}  

(Usa nuestra bbdd elasticsearch)

  • Posts por hashtag
  GET /instagram/getPosts/hashtag?name={hashtag}  

(Usa nuestra bbdd elasticsearch)

  • Guardar posts desde la API
  GET /instagram/savePostsFromApi?name={hashtag}&type={recent_media/top_media}

(Guarda en elasticsearch todos los posts con detalles)