RotaFront é o seu copiloto na jornada de desenvolvimento Front-End. Esta aplicação interativa permite que você selecione as tecnologias que já domina, as que está estudando e as que deseja aprender. Com base nessas informações, a IA, integrada com o Google Gemini, gera um roadmap de estudos personalizado e lógico para acelerar sua carreira.
- Seleção Interativa: Escolha tecnologias em três categorias: "Já domino", "Estou estudando" e "Quero aprender".
- Geração com IA: Utilize o poder do Google Gemini para criar um plano de estudos inteligente e adaptado ao seu perfil.
- Roadmap Personalizado: Receba um passo a passo claro, com descrição, pré-requisitos e sugestões de recursos para cada etapa.
- Interface Moderna: Uma UI limpa e responsiva construída com React e TailwindCSS, rodando em um projeto Astro.
- Feedback de Carregamento e Erros: A interface informa o usuário durante a geração do roadmap e exibe mensagens de erro claras.
- Framework: Astro - Para o ambiente de desenvolvimento e build do site, permitindo a renderização de componentes de UI no servidor ou cliente.
- Biblioteca de UI: React - Para criar os componentes interativos da aplicação (client:load).
- Linguagem: TypeScript - Para adicionar tipagem estática e aumentar a robustez do código.
- Estilização: TailwindCSS - Para a criação de uma interface moderna e responsiva de forma utilitária.
- IA Generativa: Google Gemini - Para a lógica de geração do roadmap através de sua API.
- Ícones: React Icons - Para a utilização de ícones vetoriais de diversas bibliotecas.
Siga os passos abaixo para executar o RotaFront em seu ambiente de desenvolvimento.
- Clone o repositório:
git clone https://github.com/VictorFrancelino/rotafront.git- Navegue até o diretório do projeto:
cd rotafront- Instale as dependências:
npm installPara que a integração com a IA do Gemini funcione, você precisa de uma chave de API.
-
Crie um arquivo chamado
.envna raiz do projeto. -
Adicione sua chave da API do Google Gemini a este arquivo:
GEMINI_API_KEY="SUA_CHAVE_DE_API_AQUI"Você pode obter uma chave de API gratuitamente no Google AI Studio.
Com tudo configurado, inicie o servidor de desenvolvimento:
npm run devAbra seu navegador e acesse http://localhost:4321 para ver a aplicação em funcionamento.
A lógica da aplicação é dividida entre o client-side (interação do usuário) e o server-side (geração do roadmap).
- Interface do Usuário (Client-side):
- O componente principal
TechsSection.tsxé renderizado no cliente (client:load). - Ele utiliza o hook customizado
useRoadmapGenerator.tspara gerenciar o estado das tecnologias selecionadas, o status de carregamento e o roadmap gerado. - O usuário clica nos
Chips dentro dosCards, e a funçãohandleUpdateTechCardatualiza o estado, associando cada tecnologia a uma categoria (domino, estudando, quero aprender).
- Geração do Roadmap (Server-side):
- Ao clicar em "Criar meu Roadmap", a função
handleGenerateRoadmapé acionada. - Ela agrupa as tecnologias selecionadas e envia uma requisição
POSTpara o endpoint/api/generateRoadmap.ts. - Este endpoint (Astro API Route) recebe os dados, constrói um prompt detalhado e o envia para a API do Google Gemini.
- O prompt instrui a IA a agir como um especialista Front-End e retornar um roadmap em um formato JSON estrito.
- A API do Gemini processa o pedido e retorna o roadmap estruturado.
- O endpoint valida o JSON recebido e o envia de volta para o cliente.
- Exibição do Resultado:
- O hook
useRoadmapGeneratorrecebe o JSON do roadmap e atualiza seu estado. - A interface re-renderiza, exibindo o componente
RoadmapView.tsx, que formata os passos em uma linha do tempo (RoadmapTimeline.tsx).
A estrutura de pastas do projeto foi organizada para manter o código modular e escalável.
src/
├── assets/ # Imagens, fontes e outros arquivos estáticos
├── components/ # Componentes React reutilizáveis (Card, Chip, Button)
├── constants/ # Constantes globais (ex: cores do tema)
├── data/ # Dados estáticos da aplicação (lista de techs e cards)
├── hooks/ # Hooks customizados do React (ex: useRoadmapGenerator)
├── layouts/ # Layouts base do Astro (ex: Layout.astro)
├── pages/ # Páginas e endpoints da API do Astro
│ ├── api/
│ │ └── generateRoadmap.ts # Endpoint que se comunica com a IA
│ └── index.astro # Página principal da aplicação
├── sections/ # Seções maiores da página, que agrupam componentes
├── styles/ # Arquivos de estilização globais
└── types/ # Definições de tipos do TypeScript
Victor Francelino
- Portfólio: victorfrancelino.netlify.app
- GitHub: @VictorFrancelino
- LinkedIn: /in/victorfrancelino/
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.