Skip to content

Latest commit

 

History

26 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Encurtador de Links

Aplicacao web para criar links curtos e redirecionar visitantes para o destino real depois de uma tela intermediaria de loading. O objetivo do projeto e demonstrar uma entrega simples, mas completa, com backend, frontend, Docker e CI/CD.

Tecnologias

  • Python 3.11
  • FastAPI
  • SQLite
  • React
  • TypeScript
  • Vite
  • Tailwind CSS
  • Docker
  • GitHub Actions

Estrutura

devops-project/
  backend/      API em FastAPI e banco SQLite
  front/        Interface React TS
  .github/      Workflow de CI

Como Rodar Com Docker Compose

Clone o repositorio e entre na pasta do projeto:

git clone https://github.com/carloosf/devops-project.git
cd devops-project

Crie os arquivos de ambiente a partir dos exemplos:

cp backend/.env.example backend/.env
cp front/.env.example front/.env

Suba os containers:

docker compose up --build

Acesse:

Como Rodar Localmente

Backend:

cd backend
cp .env.example .env
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reload

No Windows PowerShell, ative o ambiente com:

.\venv\Scripts\Activate.ps1

Frontend:

cd front
cp .env.example .env
npm install
npm run dev

Variaveis De Ambiente

Backend:

APP_NAME="Encurtador de Links"
APP_ENV="development"
DATABASE_URL="sqlite:///./data/links.db"
FRONTEND_BASE_URL="http://localhost:3000"
BACKEND_CORS_ORIGINS="http://localhost:3000"

Frontend:

VITE_API_URL="http://localhost:8000"

No Docker Compose, o frontend e buildado com VITE_API_URL=http://localhost:8008, pois a API e publicada nessa porta no host.

Funcionalidades

  • Criar link curto com slug automatico ou personalizado.
  • Listar links cadastrados.
  • Resolver link curto pela API.
  • Exibir tela de loading antes do redirecionamento.
  • Contabilizar acessos ao link curto.
  • Validar URL e slug com respostas amigaveis.

CI/CD

O workflow em .github/workflows/main.yml executa a cada push ou pull request para main e valida:

  • build da imagem Docker do backend;
  • build da imagem Docker do frontend.

Membros

  • Carlos Augusto Ferreira da Silva - Matricula: 01564896

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages