Skip to content

Williamluqui/encurtadordelink

Repository files navigation

Encurtado de Links

SobreFuncionalidadesLayoutComo executar

✅ Tecnologias

Tecnologia Versão
Node v20.11.0
Express
express-rate-limit v7.2.0
Mongoose v8.2.3
ShortId v2.2.16
Docker v3.8
Docker compose

💻 Sobre o projeto

Projeto encurtador de url com validações e containização dos serviços.A idéia do produto é um usuário possuir uma url da internet e encurta-lo para utilizar em outros sites ou redes sociais.

🔐 Segurança

Rate Limit para evitar muitas requisições seguidas, para testar, está definido que o usuário poderá fazer 5 requisições seguidas e foi estipulado um tempo de 1 minuto, para poder realizar novamente a requisição.

🎨 Layout

Layout ainda a definir


🚀 Como executar o projeto

💡O projeto está em um container junto com o banco de dados.

Pré-requisitos

Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas: Git, Node.js. Além disto é bom ter um editor para trabalhar com o código como VSCode

🎲 Rodando o Backend (servidor)

# Clone este repositório
$ git clone  https://github.com/Williamluqui/encurtadordelink.git

# Instale as dependências caso queira (o docker já faz o processo de rodar na sua máquina).
$ npm install


# Rodar o docker compose
# Obs.:É necessario ter o docker instalado na máquina

$ docker-compose up --build
# Com esse comando já será capaz de fazer todo o processo de encurtamento da url.

🧭 Rodando a aplicação

# Utilize a sua ferramenta para realizar a requisição.

Body

{"url":"https://suaurlparaencurtar.com"}

Rotas

$ POST http://localhost:3333/cutmyurl
$ GET http://localhost:3333/mUEoWKfEJ

# Basta clicar no link urlShort para ser redirecionado para o link original, ex:
Response
{
    "data": {
        "_id": "6600fd173a01c69ea86f2796",
        "url": "https://suaurlparaencurtar.com",
        "hash": "mUEoWKfEJ",
        "urlShort": "https://localhost:3333/mUEoWKfEJ",
        "createdAt": "2024-03-25T04:27:03.749Z",
        "updatedAt": "2024-03-25T04:27:03.749Z",
        "__v": 0
    }
}
Base do arquivo .env do container

DATABASE_URL="mongodb://root:example@mongo:27017/"

# Essas são credênciais válidas para a comunicação entre o mongo e a aplicação.

About

Projeto academico de encurtador de links

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published