✨ Construído com Vibe Coding - Este projeto foi desenvolvido com foco na experiência do desenvolvedor, uso de ferramentas modernas e fluxo de trabalho otimizado para produtividade e qualidade.
Aprendi é uma plataforma educacional open-source, construída pela comunidade, para a comunidade. Nosso foco: cursos práticos em Markdown, quizzes interativos, certificados simbólicos e uma experiência leve e acessível. ✨
Proporcionar educação acessível e gratuita para quem deseja aprender, sem barreiras técnicas ou financeiras.
Tornar-se referência em cursos gratuitos em português, com conteúdo de qualidade revisado pela comunidade e experiência de aprendizado envolvente.
| Valor | Descrição |
|---|---|
| 🎓 Educação Acessível | Conhecimento gratuito e de qualidade para todos |
| 🤝 Comunidade First | Colaboração e revisão aberta por autores e mantenedores |
| 🔓 Transparência Total | Código aberto e processos claros de contribuição |
| ⚡ Inovação Contínua | Tecnologias modernas para excelente experiência do usuário |
| 🎨 Simplicidade Elegante | Interface limpa, intuitiva e direta ao ponto |
| Recurso | Descrição |
|---|---|
| 📚 Cursos em Markdown | Conteúdo estruturado em arquivos .md fáceis de editar |
| ⏱️ Quizzes Interativos | Sistema com timer e regras de aprovação configuráveis |
| 🏆 Certificados Exportáveis | Geração de certificados em PNG com dados do aluno |
| 🔒 Privacidade Garantida | Progresso salvo localmente por perfil (não rastreamos) |
| 🌙 Dark Mode Nativo | Interface com suporte completo a temas claro/escuro |
| 📱 Totalmente Responsivo | Experiência otimizada para desktop e mobile |
| ⚡ Performance Otimizada | Carregamento rápido com Next.js 14 e caching inteligente |
- Node.js >= 18.x
- npm ou yarn
- Git
# Clone o repositório
git clone https://github.com/seu-usuario/aprendi.git
cd aprendi
# Instale as dependências
npm install
# Inicie o servidor de desenvolvimento
npm run devAcesse http://localhost:3000 no seu navegador.
# Desenvolvimento
npm run dev # Inicia servidor de desenvolvimento
npm run test # Executa testes
npm run test:watch # Modo watch para testes
npm run lint # Verifica qualidade do código
# Produção
npm run build # Cria build de produção
npm run start # Inicia servidor de produção
npm run validate # Valida estrutura dos cursos
# Utilitários
npm run type-check # Verificação de tipos TypeScript
npm run test:coverage # Gera relatório de cobertura de testesaprendi/
├── content/ # Conteúdo dos cursos
│ ├── courses/ # Cada curso em sua própria pasta
│ │ ├── meu-curso/ # Exemplo: estrutura de curso
│ │ │ ├── meta.yml # Metadados do curso
│ │ │ ├── content.md # Conteúdo em Markdown
│ │ │ ├── quiz.yml # Perguntas do quiz (opcional)
│ │ │ └── cover.png # Imagem de capa
│ └── instructors/ # Informações dos instrutores
├── src/ # Código-fonte da aplicação
│ ├── app/ # Rotas e páginas (App Router)
│ ├── components/ # Componentes React reutilizáveis
│ ├── hooks/ # Custom hooks
│ ├── lib/ # Utilitários e configurações
│ └── stores/ # Estado global (Zustand)
├── public/ # Assets estáticos
├── docs/ # Documentação detalhada
├── scripts/ # Scripts de automação
└── tests/ # Testes automatizados
- 📝 Como Criar Cursos - Guia completo para criação de cursos
- 🎨 Boas Práticas de Conteúdo
- 📊 Estrutura de Metadados
- ⏱️ Sistema de Quizzes - Timer, pontuação e aprovação
- 🏆 Exportação de Certificados - Geração de PNG
- 📈 Analytics & Comentários - Engajamento e feedback
Adoramos contribuições! Siga estes passos:
- Fork o repositório
- Clone localmente:
git clone https://github.com/seu-usuario/aprendi.git - Crie uma branch:
git checkout -b feat/nova-funcionalidade - Faça suas alterações seguindo as convenções do projeto
- Teste suas mudanças:
npm run test && npm run lint - Commit com mensagem clara:
git commit -m "feat: adiciona nova funcionalidade" - Push para sua branch:
git push origin feat/nova-funcionalidade - Abra um Pull Request com descrição detalhada
📘 Leia nosso CONTRIBUTING.md para guidelines completas.
Cada curso deve conter:
# meta.yml
title: "Nome do Curso"
description: "Descrição curta e atraente"
author: "Nome do Autor"
level: "iniciante|intermediário|avançado"
duration: "2 horas"
tags: ["tag1", "tag2"]
published: false # Mude para true quando pronto!- Capa do curso:
cover.png(1200×630px) - Otimizado para redes sociais - Imagens internas: Use formato WebP quando possível
- Ícones: Sistema de ícones do Lucide React
- Use Markdown com extensões GFM (GitHub Flavored Markdown)
- Inclua exemplos de código com syntax highlighting
- Adicone quizzes interativos para reforçar aprendizado
- Mantenha tom acessível e inclusivo
# Fluxo completo de validação
npm run lint # ESLint para padrões de código
npm run test # Vitest para testes unitários
npm run type-check # TypeScript type checking
npm run validate # Validação de estrutura de cursos- Testes unitários com Vitest
- Testes de componentes React
- Validação de schemas com Zod
- Cobertura alvo: >80%
Distribuído sob licença MIT. Veja LICENSE para mais informações.
- 📖 Documentação: docs/
- 🐛 Reportar Bugs: Issues
- 💡 Sugestões: Discussions
- 💬 Chat: [Discord/Slack] - Adicione seu link aqui
Este projeto foi desenvolvido seguindo princípios de Vibe Coding:
- 🎵 Flow contínuo - Ferramentas configuradas para desenvolvimento sem interrupções
- ⚡ Feedback instantâneo - Hot reload, testes rápidos e validação em tempo real
- 🎨 Experiência visual - UI/UX cuidadosamente planejada desde o início
- 🧩 Modularidade - Componentes reutilizáveis e estrutura escalável
- 🤝 Colaboração feliz - Convenções que facilitam trabalho em equipe
✨ Aprendi - Educação gratuita, código aberto, comunidade forte
Comece a contribuir • Explore a documentação • Crie seu primeiro curso