Code Monkey home page Code Monkey logo

url-shortener's Introduction

URL Shortener

Un acortador de URL puede sonar sencillo, pero en casos de uso masivo y forma de "hash" de las URL puede ser costoso y debe ser planeado con cuidado Este tipo de proyectos, desde el lado más técnico suele preguntarse en entrevistas técnicas de sistemas de diseño por temas de escalabilidad, tiempo y rendimiento.

Objetivo

  1. Proponer la cantidad de caracteres que tendrá cada URL hash -> Done
  2. Proponer un algoritmo que realice el proceso de hash que nos permita acortar URL's. Considerar cuanto es el espacio que tomaría hacer n cantidad de URL's -> Done
  3. Elegir una tecnología de caché y justificar (si se usa) -> Done
  4. Elegir una base de datos apropiada y justificar -> Done
  5. Explicar forma de redirección al cliente al sitio web original que contiene la shortned url y justificar -> Done
  6. Realizar un frontend básico, que utilice este repositorio como backend implementando un balanceador de carga entre ambas partes -> Done
  7. El backend deberá estar siempre disponible, de lo contrario, todos los enlaces acortados no tendrán utilidad -> Done

Extra

  1. Proponer un mecanismo de seguridad para garantizar que no se está acortando una URL maliciosa.
  2. Implementar un cron (diario) que verifique que enlaces redirigen a lugares que ya no existen y eliminarlos -> Considere utilizar microservicios.
  3. Eliminar los links luego de un cierto tiempo -> ¿Elegirías nativamente desde la base de datos o un cron?

url-shortener's People

Contributors

tomihq avatar

Stargazers

 avatar

Watchers

 avatar

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.