Desenvolvimento dos sistemas acadêmicos do Departamento Acadêmico de Informática (DAINF) — UTFPR. Base de estudo para a equipe de extensão.
O DAINF mantém sistemas acadêmicos usados por alunos e professores para gestão de TCC, estágios, atividades complementares e atividades extensionistas. O projeto de extensão da UTFPR tem como objetivo desenvolver, documentar e evoluir esses sistemas de forma colaborativa e aberta.
| Subdomínio | Sistema | Descrição |
|---|---|---|
tcc.dainf.com.br | Gestão de TCC | Submissão de documentos de TCC, bancas e acompanhamento. |
estagio.dainf.com.br | Gestão de Estágios | Documentos de estágio obrigatório e não obrigatório. |
ac.dainf.com.br + atividades / ativ / horas | Atividades Complementares | Registro de atividades com carga horária por grupo (cultural/esporte, retorno à sociedade, técnico-científico). |
extensao.dainf.com.br | Atividades Extensionistas | Registro e validação de atividades de extensão. |
centraldedrones.com.br | Central de Drones | Empréstimo de drones DJI e treinamentos internos. |
impressoras.dainf.com.br | Impressoras 3D | Solicitação de impressão para alunos e servidores. |
horarios.dainf.com.br | Horários | Grade horária das disciplinas do DAINF. |
dainf.com.br | Portal | Página inicial com links para todos os sistemas. |
sigautfpr.com.br | Documentação | Esta página: passo a passo do desenvolvimento, modelagem e código. |
Importante: TCC, Estágio, Atividades Complementares e Extensão compartilham a mesma aplicação — a diferença é o tipo de documento selecionado no painel. Isso mantém uma única base de código (um único repositório no GitHub), mais fácil de manter.
A aplicação segue o modelo front-end estático + API REST em PHP, sem framework, para facilitar o aprendizado:
dainf/
├── app/
│ ├── index.html # tela de login
│ ├── painel.html # painel do aluno (envio/consulta de documentos)
│ └── backend/
│ ├── api.php # API REST (login, upload, listagem, download)
│ ├── recognition.php # reconhecimento/validação de certificados
│ └── uploads/ # arquivos enviados (PDF, imagens)
├── www/ # portal dainf.com.br
└── siga/ # esta documentação
Banco sistema_academico. Esquema atual:
usuarios (id, nome, email, matricula, senha, ativo, created_at)
documentos (id, user_id, tipo, categoria, titulo, descricao,
carga_horaria, nome_arquivo, caminho_arquivo,
data_upload, status)
user_tokens (id, user_id, token, expires_at)
-- tipo: 'tcc' | 'estagio' | 'atividade_complementar' | 'extensao'
-- categoria (AC): 'cultural_esporte' | 'retorno_sociedade' | 'tecnico_cientifico'
-- status: 'pendente' | 'aprovado' | 'reprovado'
Melhorias futuras sugeridas para a equipe: tabela de administradores/avaliadores, tabela de categorias dinâmicas (hoje as categorias são fixas) e índice em user_id + tipo.
| Integrante | Papel | Responsabilidades |
|---|---|---|
| Lenon | Back-end | API PHP, banco de dados, autenticação, upload de arquivos, relatório técnico. |
| Natanael | Front-end | Telas de login e painel, usabilidade, responsividade. |
| Leonn | Front-end | Estilo/UI, portal dainf.com.br, documentação visual. |
| Prof. Wellton | Orientação | Arquitetura, infraestrutura, revisão e publicação. |
Esta é a ordem que foi seguida para colocar os sistemas no ar — use como guia:
usuarios, documentos, user_tokens).login, upload_document, get_documents, get_carga_horaria_resumo…).fetch.Para gerar os diagramas UML de cada sistema, use os prompts abaixo em uma ferramenta de IA (ChatGPT, Claude, Gemini ou gerador de diagramas como Mermaid). Cole o prompt e substitua [SISTEMA] pelo nome do sistema:
Gere um diagrama de casos de uso (UML) em Mermaid para o sistema "[SISTEMA]" do DAINF da UTFPR. Atores: Aluno, Avaliador/Professor e Administrador. Casos de uso: fazer login, enviar documento, listar meus documentos, baixar documento, consultar carga horária, aprovar/reprovar documento, cadastrar usuário. Inclua relacionamentos include/extend e saia com o código Mermaid.Gere um diagrama de classes (UML) em Mermaid para o sistema "[SISTEMA]" com as entidades: Usuario (id, nome, email, matricula, senha, ativo), Documento (id, usuario_id, tipo, categoria, titulo, descricao, carga_horaria, nome_arquivo, caminho_arquivo, data_upload, status) e UserToken (id, usuario_id, token, expires_at). Relacionamentos: Usuario 1..* Documento; Usuario 1..* UserToken. Saia com o código Mermaid.Gere um diagrama de sequência (UML) em Mermaid para o fluxo de envio de documento no sistema "[SISTEMA]": Aluno → Front-end (HTML/JS) → API (PHP) → Banco (MySQL). Fluxo: login com email/senha, API valida e retorna token, aluno envia PDF com tipo/categoria/carga horária, API valida arquivo e salva no banco, retorna sucesso. Saia com o código Mermaid.Dica: cole o código Mermaid em mermaid.live para renderizar e exportar as imagens, e inclua-as no relatório (Word) e aqui na documentação.
O código é liberado sob licença MIT. Estrutura do repositório:
siga-dainf/
├── app/ # aplicação (front + back)
├── docs/ # documentação (esta página, modelagem, relatórios)
├── README.md # visão geral + como rodar
├── LICENSE # MIT
└── .gitignore
Organização no GitHub: github.com/sigautfpr.
Repositório do código (todos os sistemas): github.com/sigautfpr/siga-dainf.
# 1. Clonar o repositório
git clone https://github.com/sigautfpr/siga-dainf.git
cd siga-dainf
# 2. Subir o banco (Docker)
docker run -d --name dainf-db -e MARIADB_DATABASE=sistema_academico \
-e MARIADB_USER=usuario -e MARIADB_PASSWORD='M@coli#0202' \
-p 3306:3306 mariadb:10.11
# 3. Rodar o PHP embutido
php -S localhost:8000 -t app/
# 4. Acessar http://localhost:8000