{"id":29571710,"url":"https://github.com/oxdrtech/meu-portfolio-frontend","last_synced_at":"2026-05-19T04:13:31.378Z","repository":{"id":270009780,"uuid":"909124189","full_name":"oxdrtech/meu-portfolio-frontend","owner":"oxdrtech","description":null,"archived":false,"fork":false,"pushed_at":"2025-12-16T18:33:51.000Z","size":20190,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-20T09:42:46.817Z","etag":null,"topics":["mantine-ui","nextauth","nextjs"],"latest_commit_sha":null,"homepage":"https://oxdr.tech/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oxdrtech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-12-27T19:45:06.000Z","updated_at":"2025-12-16T18:33:54.000Z","dependencies_parsed_at":"2025-01-12T03:25:39.010Z","dependency_job_id":"9e212711-dc88-4d53-bd02-9c734854c81c","html_url":"https://github.com/oxdrtech/meu-portfolio-frontend","commit_stats":null,"previous_names":["ddr23/meu-portfolio","ddr23/meu-portfolio-frontend","oxdrtech/meu-portfolio-frontend"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/oxdrtech/meu-portfolio-frontend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxdrtech%2Fmeu-portfolio-frontend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxdrtech%2Fmeu-portfolio-frontend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxdrtech%2Fmeu-portfolio-frontend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxdrtech%2Fmeu-portfolio-frontend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oxdrtech","download_url":"https://codeload.github.com/oxdrtech/meu-portfolio-frontend/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oxdrtech%2Fmeu-portfolio-frontend/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33201543,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-18T09:27:30.708Z","status":"online","status_checked_at":"2026-05-19T02:00:06.763Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["mantine-ui","nextauth","nextjs"],"created_at":"2025-07-19T04:07:40.038Z","updated_at":"2026-05-19T04:13:31.358Z","avatar_url":"https://github.com/oxdrtech.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Meu Portfólio Frontend\n\nEste é o meu site de portfólio, desenvolvido para apresentar meus projetos, habilidades e experiência como desenvolvedor.\n\nO site foi criado com foco em performance e fluidez, utilizando boas práticas de desenvolvimento, como componentização, separação de responsabilidades e containerização.\n\nA integração com o backend é feita por meio de requisições **REST** para um servidor **NestJS**, que gerencia os contatos enviados pelo formulário. Assim que um novo contato é salvo, um webhook é disparado para um canal do **Discord**, permitindo o acompanhamento em tempo real.\n\nO deploy do frontend foi realizado em uma **VPS da Hostinger**, garantindo maior controle sobre o ambiente e otimização de recursos. O backend também está hospedado de forma independente, assegurando a separação de responsabilidades.\n\nCaso tenha interesse em saber mais sobre meu trabalho, entre em contato:\n\n- **LinkedIn:** [linkedin.com/in/oxdrtech](https://linkedin.com/in/oxdrtech)\n\n---\n\n## Tecnologias Utilizadas\n\n- **Next.js 15** - Framework React para aplicações otimizadas\n- **TypeScript** - Tipagem estática para maior segurança no código\n- **Mantine Dev** - Biblioteca para estilização rápida e responsiva\n- **GSAP** - Biblioteca para animações fluidas e interativas\n- **NextAuth** - Autenticação segura para área privada\n- **NestJS (Backend)** - API desenvolvida para gestão de contatos\n- **PostgreSQL** - Banco de dados para armazenar os contatos\n- **Docker** - Ambiente isolado para desenvolvimento e deploy\n\n## Funcionalidades\n\n- Apresentação do meu perfil profissional\n- Formulário de contato integrado com backend\n- Envio automático e em tempo real de contatos recebidos para um canal do Discord via Webhook\n- Área privada protegida por autenticação NextAuth.js para gerenciamento de leads\n\n---\n\n# Guia de Desenvolvimento\n\n## 🛠️ Configuração do Ambiente Local\n\n### 📌 Pré-requisitos\n\nAntes de iniciar, certifique-se de ter os seguintes requisitos instalados em sua máquina:\n\n- [Node.js 22](https://nodejs.org/)\n- [Docker e Docker Compose](https://www.docker.com/)\n\n### 📥 Clonando o Repositório\n\nIndependente do ambiente (desenvolvimento ou produção), primeiro clone o repositório e entre na pasta do projeto:\n\n```bash\ngit clone https://github.com/oxdrtech/meu-portfolio-frontend.git\n```\n\n```bash\ncd meu-portfolio-frontend\n```\n\n---\n\n### 🚀 Passo a Passo para Desenvolvimento\n\n1. **Instale as dependências**\n\n```bash\nnpm install\n```\n\n2. **Configure as variáveis de ambiente**\n\n```bash\ncp .env.dev.example .env\n```\n\n3. **Inicie os serviços**\n\n#### 🏗️ Opção 1: Executar a aplicação localmente com o Next.js\n\n- Para iniciar o servidor de desenvolvimento, utilize:\n\n```bash\nnpm run dev\n```\n\n#### 🏗️ Opção 2: Executar a aplicação dentro do Docker\n\n- Inicie todos os serviços via Docker Compose:\n\n```bash\ndocker-compose up -d\n```\n\n4. **Testar a aplicação**\n\n- Acesse [http://localhost:3000](http://localhost:3000) para verificar o funcionamento.\n\n---\n\n## 🔥 Testando o Ambiente de Produção Localmente\n\nCaso queira testar a versão de produção do seu frontend, siga os passos abaixo:\n\n1. **Configure as variáveis de ambiente**\n\n```bash\ncp .env.prod.example .env\n```\n\n\u003e **Observação:** Nessa etapa, preencha corretamente as variáveis no arquivo `.env`.\n\n2. **Construa a imagem Docker para produção**\n\n```bash\ndocker build -t meu-portfolio-frontend-prod --target production .\n```\n\n3. **Execute o container de produção**\n\n```bash\ndocker run -d -p 3000:3000 --name portfolio-frontend-prod meu-portfolio-frontend-prod\n```\n\nSe tudo estiver correto, o aplicativo estará rodando em [http://localhost:3000](http://localhost:3000).\n\n4. **Verifique o funcionamento**\n\n```bash\ncurl http://localhost:3000/api/health\n```\n\nO retorno esperado é:\n\n```json\n{ \"status\": \"OK\" }\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foxdrtech%2Fmeu-portfolio-frontend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foxdrtech%2Fmeu-portfolio-frontend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foxdrtech%2Fmeu-portfolio-frontend/lists"}