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.
- Python 3.11
- FastAPI
- SQLite
- React
- TypeScript
- Vite
- Tailwind CSS
- Docker
- GitHub Actions
devops-project/
backend/ API em FastAPI e banco SQLite
front/ Interface React TS
.github/ Workflow de CIClone o repositorio e entre na pasta do projeto:
git clone https://github.com/carloosf/devops-project.git
cd devops-projectCrie os arquivos de ambiente a partir dos exemplos:
cp backend/.env.example backend/.env
cp front/.env.example front/.envSuba os containers:
docker compose up --buildAcesse:
- Frontend: http://localhost:3000
- Backend: http://localhost:8008
- Swagger: http://localhost:8008/docs
Backend:
cd backend
cp .env.example .env
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reloadNo Windows PowerShell, ative o ambiente com:
.\venv\Scripts\Activate.ps1Frontend:
cd front
cp .env.example .env
npm install
npm run devBackend:
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.
- 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.
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.
- Carlos Augusto Ferreira da Silva - Matricula: 01564896