Este repositório foi preparado como um template para você criar seu próprio Plano de Desenvolvimento Individual (PDI) e publicar em uma página web moderna.
Ele já vem com:
- interface pronta para exibir perfil, metas, contribuições, roadmap e soft skills;
- área administrativa protegida por senha;
- banco local e produção com Cloudflare D1;
- estrutura preparada para deploy no Cloudflare.
Antes de começar, tenha instalado:
- Node.js 20+
- npm
- uma conta no Cloudflare
- opcionalmente: Wrangler CLI
- Clique em "Use this template" no GitHub.
- Crie um novo repositório com o nome que quiser.
- Clone o repositório na sua máquina.
git clone <seu-repositorio>
cd <seu-repositorio>Você pode usar o script de setup automático:
chmod +x scripts/setup-template.sh
./scripts/setup-template.shOu instalar manualmente:
npm install
cp .env.example .envSe quiser usar outro gerenciador, o projeto também suporta o fluxo padrão do Node.js com npm.
Os principais arquivos a editar são:
- src/data/profile.ts: dados do seu perfil
- migrations/0002_seed.sql: metas, contribuições e roadmap de exemplo
- migrations/0004_seed_events_career.sql: eventos e objetivo de carreira de exemplo
No arquivo src/data/profile.ts, troque:
- name
- title
- subtitle
- company
- area
- github
- bio
- lastUpdate
Exemplo:
export const profile = {
name: "Seu Nome",
title: "Desenvolvedor Backend",
subtitle: "Java | Spring Boot | AWS",
company: "Sua empresa",
area: "Backend / Cloud",
github: "https://github.com/seu-usuario",
linkedin: "https://linkedin.com/in/seu-perfil",
bio: "Escreva uma descrição curta sobre você.",
};Você pode editar os dados de:
- metas
- contribuições
- roadmap técnico
- soft skills
- eventos
- objetivo de carreira
Esses dados estão vinculados ao banco de dados, então a forma mais simples é alterar os seeds ou criar novos registros pelo admin.
Crie um arquivo .env ou .dev.vars com as variáveis abaixo:
ADMIN_PASSWORD=troque-esta-senha
SESSION_SECRET=troque-este-segredoO arquivo .env.example já traz um modelo inicial para você copiar.
Importante: em produção, use secrets do Cloudflare em vez de deixar essas senhas no código.
npm run devA aplicação deve abrir em:
http://localhost:3000
Acesse a rota:
http://localhost:3000/admin/login
Use a senha configurada em .dev.vars.
Este projeto usa Cloudflare D1. Para rodar localmente, você precisa aplicar as migrations.
npx wrangler d1 migrations apply <nome-do-banco> --localSe você estiver utilizando um setup local já configurado pelo projeto, pode ser necessário adaptar o nome do banco para o seu ambiente.
Os dados iniciais estão nas migrations SQL. Após aplicar as migrations, você já terá um conteúdo inicial para testar o template.
- Acesse o Cloudflare.
- Entre na área de Workers & Pages.
- Crie um novo projeto.
- Acesse Workers & Pages > D1.
- Crie um novo banco.
- Anote o nome do banco e o ID.
No painel do Cloudflare, crie os seguintes secrets:
- ADMIN_PASSWORD
- SESSION_SECRET
No projeto do Cloudflare, adicione o binding do D1:
- nome do binding: DB
- banco: o banco D1 que você criou
Use o Wrangler para publicar:
npx wrangler deploySe o projeto estiver configurado com Pages, siga o fluxo do painel e faça o deploy a partir da interface.
src/
api/ # server functions e autenticação
components/ # layout, seções e UI
data/ # dados do perfil
routes/ # páginas do app
types/ # tipos TypeScript
migrations/ # schema e seed do banco
public/ # imagens e assets públicos
- Troque o nome e os dados do perfil
- Troque a foto em public/images
- Atualize as metas e contribuições
- Ajuste o roadmap técnico
- Defina uma senha administrativa segura
- Configure o Cloudflare D1
- Faça o deploy
- Nunca deixe senhas e segredos no repositório público.
- Use sempre secrets no Cloudflare para produção.
- O template foi pensado para ser adaptado, então sinta-se à vontade para modificar o layout e os textos.
- Se quiser, você pode transformar o conteúdo em um portfolio pessoal, currículo digital ou PDI corporativo.
- Verifique se as variáveis ADMIN_PASSWORD e SESSION_SECRET estão corretas.
- Em produção, confirme se os secrets foram configurados no Cloudflare.
- Confirme se o binding DB está corretamente configurado.
- Verifique se as migrations foram aplicadas no ambiente certo.
- Confirme se o Node.js está na versão correta.
- Rode npm install novamente.
- Confira se o arquivo .dev.vars existe e está preenchido.