{"id":27939504,"url":"https://github.com/dadoscoelho/meucurriculo","last_synced_at":"2026-04-20T19:02:50.707Z","repository":{"id":291820724,"uuid":"978449279","full_name":"DadosCoelho/meuCurriculo","owner":"DadosCoelho","description":"Este é um projeto de currículo web dinâmico que exibe informações pessoais, formação, experiências e projetos de um desenvolvedor, puxando dados de um Gist do GitHub e da API de repositórios do GitHub. O currículo é responsivo, suporta temas claro/escuro, e permite salvar o conteúdo como PDF.","archived":false,"fork":false,"pushed_at":"2025-05-06T18:26:56.000Z","size":18,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-06T18:27:23.726Z","etag":null,"topics":["api","css","gist","github","html","javascript"],"latest_commit_sha":null,"homepage":"https://meu-curriculo-gamma.vercel.app","language":"JavaScript","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/DadosCoelho.png","metadata":{"files":{"readme":"README.markdown","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}},"created_at":"2025-05-06T02:21:10.000Z","updated_at":"2025-05-06T18:26:59.000Z","dependencies_parsed_at":"2025-05-06T18:38:05.345Z","dependency_job_id":null,"html_url":"https://github.com/DadosCoelho/meuCurriculo","commit_stats":null,"previous_names":["dadoscoelho/meucurriculo"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DadosCoelho%2FmeuCurriculo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DadosCoelho%2FmeuCurriculo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DadosCoelho%2FmeuCurriculo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DadosCoelho%2FmeuCurriculo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DadosCoelho","download_url":"https://codeload.github.com/DadosCoelho/meuCurriculo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252856425,"owners_count":21814853,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["api","css","gist","github","html","javascript"],"created_at":"2025-05-07T09:54:36.784Z","updated_at":"2026-04-20T19:02:50.654Z","avatar_url":"https://github.com/DadosCoelho.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Currículo Dinâmico\n\nEste é um projeto de currículo web dinâmico que exibe informações pessoais, formação, experiências e projetos de um desenvolvedor, puxando dados de um Gist do GitHub e da API de repositórios do GitHub. O currículo é responsivo, suporta temas claro/escuro, e permite salvar o conteúdo como PDF.\n\n## Funcionalidades\n\n- **Informações Dinâmicas**: Dados do currículo (nome, contato, formação, experiências) são carregados de um arquivo `curriculo.json` hospedado em um Gist do GitHub.\n- **Projetos do GitHub**: Exibe repositórios do GitHub em seções de destaque e carrossel, com links para sites (se disponíveis, indicados por um ícone de corrente 🔗) ou repositórios.\n- **Tema Responsivo**: Suporta modo claro e escuro com base nas preferências do sistema do usuário.\n- **Exportação para PDF**: Permite salvar o currículo como PDF usando a biblioteca `html2pdf.js`.\n- **Animações**: Efeitos de transição para seções e projetos, usando Intersection Observer.\n- **Cache Local**: Armazena dados em `localStorage` para reduzir chamadas à API.\n\n## Estrutura do Projeto\n\n```\n├── index.html        # Página principal do currículo\n├── styles.css        # Estilos da interface\n├── script.js         # Lógica principal (carregamento de dados, renderização)\n├── .env              # Configurações sensíveis (GIST_ID, GITHUB_USERNAME, PROFILE_IMAGE_URL)\n└── .gitignore        # Ignora arquivos sensíveis e temporários\n```\n\n### Arquivos Principais\n\n- **`index.html`**: Contém a estrutura HTML do currículo, incluindo referência a `script.js`.\n- **`styles.css`**: Define o layout, temas e animações.\n- **`script.js`**: Gerencia o carregamento de dados do Gist e repositórios, renderização de projetos, e funcionalidades como salvar PDF.\n- **`.env`**: Armazena chaves sensíveis (`GIST_ID`, `GITHUB_USERNAME`, `PROFILE_IMAGE_URL`). **Não versionado** (ignorado pelo `.gitignore`).\n- **`.gitignore`**: Protege `.env` e outros arquivos sensíveis (ex.: `node_modules`, `config.js`).\n\n## Estrutura do Gist\n\nO currículo carrega dados de um arquivo `curriculo.json` hospedado em um Gist do GitHub, identificado pelo `GIST_ID` em `.env`. O arquivo JSON deve seguir a estrutura abaixo:\n\n```json\n{\n  \"nome\": \"Seu Nome Completo\",\n  \"contato\": {\n    \"email\": \"seu.email@exemplo.com\",\n    \"github\": \"https://github.com/seu-usuario\",\n    \"telefone\": \"+55 (11) 99999-9999\"\n  },\n  \"objetivos\": \"Descrição dos seus objetivos profissionais.\",\n  \"formacao\": [\n    {\n      \"curso\": \"Nome do Curso\",\n      \"instituicao\": \"Nome da Instituição\",\n      \"periodo\": \"MM/AAAA - MM/AAAA\"\n    }\n    // ... mais formações\n  ],\n  \"experiencias\": [\n    {\n      \"cargo\": \"Cargo Ocupado\",\n      \"empresa\": \"Nome da Empresa\",\n      \"periodo\": \"MM/AAAA - MM/AAAA\",\n      \"descricao\": \"Descrição das responsabilidades e conquistas.\"\n    }\n    // ... mais experiências\n  ]\n}\n```\n\n### Explicação dos Campos\n\n- **`nome`**: Seu nome completo, exibido no cabeçalho e rodapé.\n- **`contato`**: Objeto com:\n  - `email`: Endereço de e-mail, exibido como link clicável.\n  - `github`: URL do perfil do GitHub, exibido como link.\n  - `telefone`: Número de telefone, exibido como link clicável.\n- **`objetivos`**: Texto descrevendo seus objetivos profissionais.\n- **`formacao`**: Array de objetos, cada um com:\n  - `curso`: Nome do curso (ex.: \"Ciência da Computação\").\n  - `instituicao`: Nome da instituição (ex.: \"Universidade XYZ\").\n  - `periodo`: Período do curso (ex.: \"01/2018 - 12/2022\").\n- **`experiencias`**: Array de objetos, cada um com:\n  - `cargo`: Cargo ocupado (ex.: \"Desenvolvedor Frontend\").\n  - `empresa`: Nome da empresa (ex.: \"Empresa ABC\").\n  - `periodo`: Período de trabalho (ex.: \"06/2020 - Presente\").\n  - `descricao`: Descrição detalhada das responsabilidades.\n\n### Como Criar o Gist\n\n1. Acesse [gist.github.com](https://gist.github.com/).\n2. Crie um novo Gist com um arquivo chamado `curriculo.json`.\n3. Cole o JSON com a estrutura acima, preenchendo com seus dados.\n4. Torne o Gist público (ou secreto, se preferir, mas garanta que a API possa acessá-lo).\n5. Copie o ID do Gist (ex.: `1848e354f2c127682042a4ec9b611b5b`) e adicione-o ao `.env`.\n\n## Configuração\n\n### Pré-requisitos\n\n- Navegador moderno (Chrome, Firefox, Safari, etc.).\n- Conexão com a internet para carregar dados da API do GitHub.\n- Servidor local (recomendado) para evitar problemas de CORS ao testar localmente (ex.: `npx http-server`).\n- Configuração do servidor para bloquear acesso direto ao `.env` (ex.: Nginx, Apache).\n\n### Passos para Executar\n\n1. **Clone o Repositório**:\n   ```bash\n   git clone https://github.com/DadosCoelho/meuCurriculo.git\n   cd meuCurriculo\n   ```\n\n2. **Crie o Arquivo `.env`**:\n   - Crie um arquivo `.env` na raiz do projeto com o seguinte conteúdo:\n     ```plaintext\n     GIST_ID=SEU_GIST_ID\n     GITHUB_USERNAME=SEU_GITHUB_USERNAME\n     PROFILE_IMAGE_URL=URL_DA_SUA_IMAGEM\n     ```\n   - Substitua `SEU_GIST_ID` pelo ID do Gist que contém o arquivo `curriculo.json`.\n   - Substitua `SEU_GITHUB_USERNAME` pelo seu nome de usuário do GitHub.\n   - Substitua `URL_DA_SUA_IMAGEM` pelo link da sua imagem de perfil (ex.: `https://avatars.githubusercontent.com/u/165790519?v=4`).\n   - **Nota**: Este arquivo é ignorado pelo `.gitignore` para proteger suas chaves.\n\n3. **Configure o Servidor para Proteger o `.env`**:\n   - Para evitar que o `.env` seja acessível publicamente, configure seu servidor:\n     - **Nginx**:\n       ```nginx\n       location ~* \\.env$ {\n           deny all;\n           return 403;\n       }\n       ```\n     - **Apache**:\n       ```apache\n       \u003cFiles \".env\"\u003e\n           Order allow,deny\n           Deny from all\n       \u003c/Files\u003e\n       ```\n   - Alternativamente, use um proxy ou backend para fornecer as variáveis de configuração de forma segura.\n\n4. **Verifique o `index.html`**:\n   - Certifique-se de que `index.html` inclui apenas o script necessário:\n     ```html\n     \u003cscript src=\"script.js\"\u003e\u003c/script\u003e\n     ```\n   - O script `script.js` carrega as configurações do `.env`.\n\n5. **Execute o Projeto**:\n   - Inicie um servidor local:\n     ```bash\n     npx http-server\n     ```\n   - Acesse `http://localhost:8080` no navegador.\n   - Alternativamente, abra `index.html` diretamente, mas isso pode causar problemas de CORS.\n\n6. **Teste as Funcionalidades**:\n   - Verifique se os dados do Gist e repositórios são carregados.\n   - Confirme que a imagem de perfil usa o `PROFILE_IMAGE_URL` do `.env`.\n   - Teste o botão de salvar PDF.\n   - Confirme que os links de projetos com `homepage` mostram o ícone de corrente (`🔗`).\n\n## Segurança\n\n- **Chaves Sensíveis**: O `GIST_ID`, `GITHUB_USERNAME` e `PROFILE_IMAGE_URL` são armazenados em `.env`, que é ignorado pelo `.gitignore` para evitar exposição no repositório Git.\n- **Limitações**: Como o projeto é estático, o `.env` precisa ser acessível via `fetch('/.env')`, o que pode expô-lo em servidores públicos. Para maior segurança, considere:\n  - Configurar o servidor para bloquear acesso direto ao `.env` (veja acima).\n  - Usar um token de acesso pessoal do GitHub com permissões restritas.\n  - Configurar um backend ou proxy para chamadas à API.\n  - Hospedar o Gist em um repositório privado.\n- **Cache Seguro**: Dados armazenados no `localStorage` têm um TTL de 1 hora e não incluem informações sensíveis.\n\n## Personalização\n\n- **Estilização**: Edite `styles.css` para ajustar cores, fontes ou animações.\n- **Configurações**: Modifique `script.js` para alterar o número de projetos em destaque (`featuredProjectCount`) ou o atraso das animações (`animationDelay`).\n- **Dados do Currículo**: Atualize o arquivo `curriculo.json` no Gist para refletir suas informações pessoais, formação e experiências.\n- **Imagem de Perfil**: Atualize o `PROFILE_IMAGE_URL` no `.env` para mudar a imagem de perfil.\n\n## Dependências\n\n- **html2pdf.js**: Usado para gerar PDFs do currículo. Incluído via CDN.\n- **API do GitHub**: Usada para carregar dados do Gist e repositórios.\n\n## Contribuição\n\n1. Faça um fork do repositório.\n2. Crie uma branch para sua feature:\n   ```bash\n   git checkout -b minha-feature\n   ```\n3. Commite suas alterações:\n   ```bash\n   git commit -m \"Adiciona minha feature\"\n   ```\n4. Envie para o repositório remoto:\n   ```bash\n   git push origin minha-feature\n   ```\n5. Abra um Pull Request.\n\n## Licença\n\n[MIT License](LICENSE) - Sinta-se à vontade para usar, modificar e distribuir este projeto.\n\n## Contato\n\n- **GitHub**: [DadosCoelho](https://github.com/DadosCoelho)\n- **Email**: Disponível no currículo renderizado.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdadoscoelho%2Fmeucurriculo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdadoscoelho%2Fmeucurriculo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdadoscoelho%2Fmeucurriculo/lists"}