Skip to content

viitorags/gouly

Repository files navigation

Gouly - Encurtador de URL

Um encurtador de URL simples e eficiente construído com Go, PostgreSQL e TailwindCSS.

Tecnologias

  • Go 1.24: Linguagem backend para alta performance.
  • PostgreSQL: Banco de dados relacional para persistência dos links.
  • TailwindCSS: Framework CSS utility-first para estilização rápida e responsiva.
  • HTML Templates: Renderização server-side das views.

Pré-requisitos

Antes de começar, certifique-se de ter instalado em sua máquina:

Instalação e Configuração

  1. Clone o repositório

    git clone https://github.com/viitorags/gouly.git
    cd gouly
  2. Configure o Banco de Dados Crie um banco de dados no PostgreSQL e execute o comando SQL necessário para criar a tabela (ajuste conforme seu schema, ex: schema/init.sql se existir, ou baseie-se no model):

    CREATE TABLE urls (
        id SERIAL PRIMARY KEY,
        original_url TEXT NOT NULL,
        short_url VARCHAR(10) UNIQUE NOT NULL,
        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    );
  3. Instale as dependências do Frontend

    npm install
  4. Instale as dependências do Backend

    go mod download

Compilação e Execução

Frontend (TailwindCSS)

Para gerar o arquivo CSS final:

npm run build:css

Para assistir as mudanças em desenvolvimento:

npm run watch:css

Backend (Servidor Go)

Inicie o servidor:

go run main.go

O servidor iniciará na porta 8085 (ou outra definida em router.go).

API Endpoints

Criar URL Encurtada

POST /api/v1/urls

Corpo da Requisição (JSON):

{
  "original_url": "https://www.exemplo.com.br/caminho/muito/longo"
}

Resposta:

{
  "short_url": "a1b2c3d4",
  "original_url": "https://www.exemplo.com.br/caminho/muito/longo"
}

Redirecionar

GET /:short_url Redireciona para a URL original associada.

Estrutura do Projeto

  • /config: Configurações do banco de dados e logger.
  • /handler: Lógica de controle (criação de links, redirecionamento).
  • /router: Definição das rotas HTTP.
  • /views: Templates HTML.
  • /static: Arquivos estáticos (CSS, imagens).

About

Encurtador de Url escrito em Go

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages