Skip to content

Latest commit

 

History

30 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CourseGen AI

CourseGen AI

Transforme documentos de planejamento de disciplinas em pacotes Moodle prontos para importar — com inteligência artificial.


O que é

CourseGen AI é uma aplicação web que converte automaticamente a Matriz DE (documento de planejamento de disciplinas do IFCE, em .docx) em arquivos de backup Moodle (.mbz), prontos para importação na plataforma.

Todo o processo de leitura, interpretação e estruturação do conteúdo é feito pelo modelo Google Gemini 3 Flash, eliminando horas de trabalho manual de cadastro no Moodle.


Funcionalidades

  • Extração inteligente — lê a Matriz DE e identifica automaticamente nome, código, ementa, objetivos, cronograma, atividades e avaliações
  • Suporte a quizzes — importa arquivos de questões (.docx) e os associa às atividades corretas
  • Suporte a tarefas — anexa arquivos de tarefas às atividades de entrega
  • Associação flexível de anexos — reconhece Tarefa 1, tarefa_1 e usa ordem alfabética quando não há número
  • Editor de revisão — visualize e edite o JSON extraído antes de gerar o pacote
  • Builder manual — crie a estrutura da disciplina do zero, sem precisar de documentos
  • Geração completa de MBZ — gera o XML compatível com o formato Moodle 2.x com seções, fóruns, quizzes, tarefas, wikis, glossários, chats e encontros
  • Cadastro em lote de alunos — converte a planilha da turma em CSV de importação do Moodle, com validação de CPF e e-mail e revisão antes de gerar
  • Livro de notas configurável — categorias, pesos e quais atividades entram em cada uma
  • Tema claro/escuro — interface responsiva com suporte a modo escuro nativo

Fluxo de uso

1. Upload          →   2. Revisão         →   3. Download
────────────────       ─────────────────       ────────────────
Suba a Matriz DE       Revise e edite o        Baixe o .mbz e
+ quizzes + tarefas    JSON extraído pela IA   importe no Moodle

Tecnologias

Camada Tecnologia
Frontend Next.js 16, React 19, TypeScript
Estilização Tailwind CSS v4
IA Google Gemini (@google/genai, chamada no backend)
Leitura de DOCX mammoth.js
Leitura de planilhas exceljs (.xlsx/.xls) + parser próprio de CSV
Geração de MBZ archiver.js + XML programático
Uploads grandes Vercel Blob (@vercel/blob), com envio direto do browser
Utilitários uuid, jsonrepair, pdfjs-dist

Instalação

Pré-requisitos

Passos

# Clone o repositório
git clone git@github.com:juanfernandez13/CourseGen-AI.git
cd CourseGen-AI/ui

# Instale as dependências
yarn install

# Configure as variáveis de ambiente
echo "GEMINI_KEY=sua_chave_aqui" > .env.local

# Inicie o servidor de desenvolvimento
yarn dev

Acesse em http://localhost:3000.


Estrutura do projeto

.
├── AGENTS.md                   # Instruções para agentes de IA (CLAUDE.md importa)
├── ui/
│   ├── app/
│   │   ├── api/
│   │   │   ├── extract/        # Matriz e quizzes → JSON, via Gemini
│   │   │   ├── generate/       # JSON + anexos → .mbz (resposta em stream)
│   │   │   ├── alunos/         # extract: planilha → registros; csv: um por curso
│   │   │   ├── blob-upload/    # Assina o upload direto do browser
│   │   │   ├── prompt/         # Prompt de extração + exemplo, para outra IA
│   │   │   └── health/         # Chave do servidor e Blob disponíveis?
│   │   ├── cadastro-lote/      # Tela de cadastro em lote de alunos
│   │   ├── components/
│   │   │   ├── UploadStep      # Passo 1 — upload de arquivos
│   │   │   ├── ReviewStep      # Passo 2 — revisão do JSON
│   │   │   ├── GradebookEditor # Categorias e pesos do livro de notas
│   │   │   ├── BuilderStep     # Modo manual de criação
│   │   │   └── DoneStep        # Passo 3 — confirmação de download
│   │   └── lib/
│   │       ├── api.ts          # Funções de fetch para as rotas
│   │       ├── uploads.ts      # Envio direto ao Blob quando há store
│   │       └── useJsonHistory  # Histórico local de extrações
│   └── server/
│       ├── extractor.js        # Prompts e chamadas ao Gemini
│       ├── parser.js           # Leitura de DOCX com mammoth
│       ├── planilha.js         # Leitura de XLSX/CSV
│       ├── alunos.js           # Validação de CPF/e-mail e montagem do CSV
│       ├── taskFileMapper.js   # Associa arquivos a tarefas e quizzes pelo nome
│       ├── blobStore.ts        # Adapter do Vercel Blob
│       └── mbzGenerator/
│           ├── index.js        # Ciclo de vida do pipeline MBZ
│           ├── model.js        # Normalização, categorias e IDs do Moodle
│           ├── activityWriter.js # Escrita das atividades
│           ├── builders.js     # Construtores de XML Moodle
│           └── utils.js        # Helpers de XML, SHA1 e datas
└── package.json

Variáveis de ambiente

Variável Descrição
GEMINI_KEY Chave do Google Gemini. Opcional se cada usuário informar a sua na interface
BLOB_READ_WRITE_TOKEN Vercel Blob. Sem ele, os arquivos vão direto para as rotas — o que basta em desenvolvimento, onde não existe o limite de 4,5 MB da Vercel

Importando no Moodle

Restaure o .mbz num curso novo e vazio, marcando "sobrescrever a configuração do curso". Ao mesclar num curso já existente, o Moodle não recria as categorias do livro de notas e as atividades aparecem soltas na raiz.

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages