Skip to content
/ INTEC Public

🎓 | INTEC - Sistema academico colaborativo, desenvolvido em Python com Flask, que permite gerenciar usuários, cursos, turmas, materiais, avisos, diários e notas de alunos. O sistema inclui funcionalidades para alunos, professores e administradores.

Notifications You must be signed in to change notification settings

ohthias/INTEC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PIM_2DSP39 – INTEC

Projeto Integrado Multidisciplinar – 2º Semestre

Este projeto é um sistema acadêmico completo, desenvolvido em Python com Flask, que permite gerenciar usuários, cursos, turmas, materiais, avisos, diários e notas de alunos. O sistema inclui funcionalidades para alunos, professores e administradores, com persistência de dados em arquivos JSON, integração opcional com uma biblioteca C para cálculo de médias, e um chatbot acadêmico com IA.


Funcionalidades Principais

Para Alunos

  • Visualizar dashboard personalizado com turmas, materiais e avisos.
  • Acessar conteúdos de suas turmas.
  • Consultar notas e médias calculadas.
  • Participar de chats da turma.
  • Interagir com o chatbot acadêmico (INTEC IA) para dúvidas.

Para Professores

  • Criar, editar e gerenciar turmas.
  • Lançar e atualizar notas de alunos com cálculo de média via biblioteca C.
  • Adicionar materiais e avisos nas turmas.
  • Registrar aulas no diário da turma.
  • Gerenciar alunos em turmas (adicionar/remover).
  • Acessar o chatbot acadêmico para suporte e informações.

Para Administradores

  • Criar, editar e remover cursos.
  • Gerenciar professores e alunos.
  • Criar turmas automaticamente ao editar cursos.

Estrutura do Projeto

PIM_2DSP39/
├─ app.py                   # Arquivo principal Flask
├─ ai_routes.py             # Rotas do chatbot acadêmico
├─ utils.py                 # Funções auxiliares, ex: cálculo de média
├─ notas.c                  # Código fonte C para cálculo de média
├─ ai_module/
│  ├─ __init__.py           # Blueprint do chatbot
│  └─ recommendation.py      # Lógica de recomendação de estudos
│  └─ adptative_recommendation.py   # Lógica de recomendação de estudos adaptativa
├─ libs/
│  └─ notas.dll             # Biblioteca C para cálculo de média
│  └─ libnotas.so              # Biblioteca C para cálculo de média (Linux)
├─ data/                    # Armazena os arquivos JSON
│  ├─ users.json
│  ├─ turmas.json
│  ├─ materiais.json
│  ├─ avisos.json
│  ├─ chat_turma.json
│  ├─ diario_turma.json
│  └─ cursos.json
├─ static/                  # Arquivos estáticos (CSS, JS, uploads)
│  └─ materiais/
└─ templates/               # Templates HTML para Flask

Tecnologias Utilizadas

  • Python 3.x
  • Flask (web framework)
  • Blueprints Flask (organização modular, ex: chatbot)
  • Bootstrap 5 (frontend)
  • JSON (persistência de dados)
  • C / ctypes (cálculo de médias via DLL)

Pré-requisitos

  • Python 3.x instalado
  • Pip para instalação de dependências
  • Sistema Windows (se for usar a DLL .dll) ou Linux (se usar .so)
  • Chave de API do Gemini (para o chatbot acadêmico)

Instalação e Execução

  1. Clone o repositório:
git clone <repo_url>
cd PIM_2DSP39
  1. Instale dependências:
pip install Flask
  1. Execute o servidor:
flask run
  1. Acesse no navegador:
http://127.0.0.1:5000/
  1. Para acessar o chatbot acadêmico:
<a class="nav-link" id="chatbot-tab" href="{{ url_for('ai.chatbot') }}">
    INTEC IA
</a>

Observação: o url_for('ai.chatbot') refere-se ao blueprint ai e à função chatbot.


Configuração da Biblioteca C (DLL)

O cálculo da média pode ser feito via biblioteca C para desempenho:

import ctypes
lib = ctypes.CDLL("libs/notas.dll")
lib.calcular_media.restype = ctypes.c_double
lib.calcular_media.argtypes = [ctypes.c_double, ctypes.c_double, ctypes.c_double, ctypes.c_double]

def calcular_media_c(np1, np2, peso_np1=0.4, peso_np2=0.6):
    return lib.calcular_media(np1, np2, peso_np1, peso_np2)

Certifique-se de que a DLL está no caminho correto libs/notas.dll. Para Linux, substitua por .so.


Estrutura de Dados

Exemplo de um usuário aluno:

{
    "fullname": "Maria Silva",
    "email": "maria@teste.com",
    "password": "<hash>",
    "role": "student",
    "curso": "Análise de Sistemas",
    "periodo_atual": 1,
    "matricula": "AN01023",
    "notas": {
        "Matemática": {"NP1": 8.0, "NP2": 7.5, "media": 7.7}
    }
}

About

🎓 | INTEC - Sistema academico colaborativo, desenvolvido em Python com Flask, que permite gerenciar usuários, cursos, turmas, materiais, avisos, diários e notas de alunos. O sistema inclui funcionalidades para alunos, professores e administradores.

Topics

Resources

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •