Projeto Open Source - Sistema de Gerenciamento Acadêmico

0️⃣ Contexto

Estou desenvolvendo um sistema para gerenciamento de dados acadêmicos (toda faculdade ou instituição de ensino possui um desses).

O código tá aqui (https://github.com/ZaqueuCavalcante/syki) e a aplicação rodando aqui (https://syki.zaqbit.com/).

Venho postando no LinkedIn todas as atualizações de desenvolvimento do projeto (https://www.linkedin.com/in/zaqueu-cavalcante).

Todos os contatos que tive com sistemas desse tipo foram semelhantes: UI com cara de aplicação desktop dos anos 2000, lentidão, baixa disponibilidade, apresentação de informações irrelevantes para o usuário e dificuldade em realizar operações básicas, como acompanhar meu desempenho nas provas e minha frequência nas aulas.

Encontrei o Fedena como uma opção de código aberto, mas parece estar defasado e carente de manutenção hoje em dia.

Nesse post queria levantar ideias de features essenciais para que um sistema desse tipo se torne funcional e possa ser adotado por uma faculdade de pequeno porte inicialmente.

1️⃣ O que já desenvolvi

Decidi organizar as funcionalidades com base nas roles dos usuários do sistema. Dessa forma, as features estão agrupadas em:

  • Acadêmico: funcionalidades de gestão, como cadastro de campus, cursos, disciplinas, períodos acadêmicos e de matrícula, oferta de curso, criação de grades curriculares, abertura de turmas, envio de notificações/avisos, cadastro de professores e alunos.

  • Professor: acompanhamento de turmas, recebimento de notificações, realização de chamadas e cadastro de notas das avaliações de cada aluno dentro de uma turma.

  • Aluno: recebimento de notificações, acompanhamento das disciplinas cursadas, notas, frequência e matrícula acadêmica.

  • Cross: cadastro de instituição, definição e reset de senha, setup de 2FA, login normal e login com 2FA.

  • Admin: acompanhamento de instituições e usuários, gestão de feature flags.

2️⃣ O que vou desenvolver

  • Limite mínimo de frequência e nota para poder ser aprovado em uma disciplina
  • Pré-requisitos para realização de matrícula nas disciplinas
  • Gestão inteligente de calendário acadêmico e de agenda
  • Telas de perfil dos usuários
  • Aplicativo pro aluno (talvez pro professor mais tarde também)
  • Tela de perfil do usuário
  • Diário de classe
  • Dispensa de disciplina
  • Monitoria (aluno monitor)
  • Gestão de trabalhos/atividades/simulados/avaliações
  • Requerimentos (ex: comprovação de matrícula)

Tem mais coisa no radar, só não tirei tempo pra estruturar melhor ainda...

3️⃣ Ideias de funcionalidades

  • Quais funcionalidades você acharia interessante que um sistema assim tivesse?
  • Quais você avalia como irrelevantes?
  • Vc já usou algum software desse tipo? O que tinha de legal nele? O que tinha de ruim?

Boa tarde amigo, recomendo fortemente colocar um throttle na api, mesmo que com token! Fiz um teste ai na tabela de cursos do modo demonstração, dê uma olhada depois! :)

Boa tarde. Existe o rate limit já, mas tá alto (120 req/h, vc fez 104, quase lá). Vou fazer uns testes pra definir valores mais baixos por endpoint... Obrigado pelo feedback!

trabalho com desenvolvimento de aplicações para educação também, especialmente aquelas que tem integração com o Google for Education. Não há projetos open source satisfatórios, ainda mais aqueles que não foram feitos pensando no Brasil. Há uma carência desse tipo de app, se você se aproximar de empresas quem tem instituição de ensino superior (IES) como cliente, ou das próprias IES que tem cursos de TI, vai conseguir devs para turbinar o desenvolvimento via comunidade. projetos open sources vivem de treinamentos, suporte e infraestrutura como serviço. dá pra empreender nesse modelo.

infelizmente nunca tive foco em IES, e não tenho know how da Stack de front e back adotada no projeto.

desejo sucesso!

Boa! Essa ideia de se aproximar das instituições de ensino é fundamental mesmo, a princípio eu queria ter contato com gestores que pudessem validar as funcionalidades que já desenvolvi, se elas realmente fazem sentido dentro de uma operação de faculdade. Daí os próximos passos seriam: - ter pelo menos uma instituição usando o sistema e dando feedback - ter mais devs contribuindo, como você falou Tentei pesquisar por grupos, fórums, comunidades online pra divulgar o projeto, mas não achei nada do tipo ainda... Obrigado!

Olá,trabalho com sistemas educacionais voltado a rede municipal. O que sugiro e é muito procurado. Um módulo de central de vagas. O que seria isso? Todo ano e a mesma briga, pais procuram vagas para escolas e creches. E todo ano as gestões municipais se perdem, ou com a falta de vagas ou contratando escolas ou creches particulares. Esse modulo seria um portal onde os pais poderiam solicitar uma vaga. e ao sistema teria a inteligencia de sugerir a melhor opção de escola, conforme a rota do ônibus escolar.

Boa! Acho q eh um problema bem válido, mas q foge do escopo do projeto (educação superior). No entanto, tem um problema semelhante q vou precisar resolver: todo semestre é preciso definir quais turmas serão abertas, em quais salas, dias e horários as aulas irão ocorrer, quem serão os professores... No final é um problema de alocar recursos com base em restrições mutuamente excludentes, então daria pra extender a mesma solução para o problema que você trouxe acima. Obrigado pelo feedback!
sim, no caso, esse problema se chama, atribuição de docente. isso ocorre na esfera municipal,onde os professores passam por um concurso e recebem uma pontuação, e através dessa pontuação eles fazem uma ordem de preferência, onde os professores podem escolher as escolas, e horários. isso acaba com o esquema de privilégio. quanto as turmas, tem um processo chamado de pre matricula, onde ele faz uma analise previa, para ver quantas vagas serão necessárias para atender a demanada.
Tenho o código de um sistema que fiz com algoritmos genéticos para resolver exatamente esse problema se estiver interessado, só está uma droga pq é da época da faculdade
Opa, se puder compartilhar agradeço. Vc tentou via solução exata tbm (sem heurística)? A princípio eu acho que seria viável, dependendo das restrições e da quantidade cursos/professores/alunos.
Não tentamos pq na época a ideia era justamente aplicar algoritmos genéticos a um problema, creio que dê sim para fazer, mas não consigo pensar em uma boa solução de outra forma por conta do conflito de horários entre professores
@edinog, bom dia, poderia me chamar no instagram, tenho algo e talvez possamos conversar que vai te atender essa demanda. @marceloligeirinho

Eu trabalho na area administrativa de uma escola estadual , se quiser sugestões nessa area eu tenho varias,e na parte de escrituração de informações necessarias para geração de boletim e histórico

Boa! - Quais são as 5 principais operações que você realiza no seu trabalho, dentro do sistema? - Elas possuem problemas? Quais? - Como é feita a parte de boletim e histórico? É complicado, falta informação, dá muito erro?
Frequência dos docentes contagem de tempo trabalhado para concessão de benefícios como quinquênio ,sexta parte ,aposentadoria ,licença prêmio . contagem de faltas aula para fins de pagamento com cada falta tendo seu requerimento especificando o tipo de falta como falta medica,serviço obrigatório por lei,licença saude entre outras. Entrada e saida de documentos com protocolo Expedição de ofício numerados sequencialmente mantendo um indice substituição de aulas por docente eventual essa é a principal demanda administrativa em relação ao RH geral da instituição os boletins devem ser gerados bimestralmente contendo o indice de disciplina com cada qual contendo a nota bimestral, numero de faltas do aul o e porcentagem relativa a frequência do aluno no total de aulas são 4 e o boletim deve conter tambem a nota final do aluno na materia e a media de frequência do aluno durante o ano com o total de faltas e porcentagem o histórico é composto por cada media final do aluno e a carga horária total da materia em cada ano e uma coluna somando o total de carga horária durante todoa os anos cursados
Anotei aqui como 4 principais pontos (frequência do docente, substituição de aulas, boletim e histórico do aluno). Vou analisar como facaria a implementação dessas funcionalidades, mas acredito que as duas últimas serão mais fáceis pq já tenho todos esses dados no sistema atual.

Parabéns pela iniciativa. Naveguei e achei excelente a usabilidade. Tem muito potencial.

Sugestão, criar um modulo de gestão das matrículas que são sempre semestrais. São registros para identificar a entrada do aluno em um período de curso e em quais disciplinas. Sendo necessário controlar também as disciplinas secundárias/adicionais/complementares.

Obrigado pelo feedback sobre a usabilidade, passei bastante tempo tentando deixar as coisas simples e intuitivas, bom saber que tô acertando. A gestão das matrículas está parcialmente implementada: hoje as turmas são abertas, depois liberadas pra matrícula (dentro do período de matrícula), onde os alunos podem escolher quais disciplinas vão cursar no semestre atual. Ao final do período de matrícula, as turmas são iniciadas pelo gestor acadêmico e agora podem ser acessadas pelo professor para que ele realize as chamadas nas aulas e adicione as notas dos alunos. Como vc falou, a parte de disciplinas secundárias/adicionais/complementares ainda n foi feita, mas é essencial pois a maioria dos cursos possui essas disciplinas como obrigatórias. Também falta implementar o conceito de ter pré-requistos pra se matricular em uma disciplina (ex: pra pagar Cálculo II precisa ter pago Cálculo I antes). Novamente, obrigado pelo seu feedback!
Zaqueu, esse conceito de ter pre-requisitos nao precisa ser a prioridade. Pois as matriculas sao feitas pelas secretarias e elas conseguem fazer esse filtro manualmente. Entao o indispensavel mesmo seria somente a gestao das matriculas de cada curso controladas por periodo. Outra coisa indispensavel, o cadastro do aluno precisa ter um status de matricula_status = 0 ou 1 sendo 0 para nao matriculado e 1 para matriculado. A cada semestre a secretaria ira desativar a matricula de todos os alunos com apenas um botao, eles precisam disso e gostam de fazer assim. Outra forma de controlar isso seria adicionar um campo de matricula_data_encerramento, e colocar quando a matricula sera encerrada pois precisa ser controlada a cada semestre. Depois por ultimo, seria uma gestao financeira das matriculas, com recebimento via pix;cartao ou boleto. Para esse recursos voce pode utilizar a api da asaas que esta muito facil de integrar. Se precisar de ajuda tenho os fontes disso em asp
Boa tarde. É que pensando no ensino superior, o próprio aluno acessa o sistema e escolhe em quais disciplinas ele quer se matricular. Dessa forma é necessário ter esse controle de pré-requisitos... Hoje o aluno possui um status q poderia ser utilizado pra esse controle que vc falou. O módulo financeiro vou desenvolver mais pra frente, após deixar redondinho o acadêmico. Ele deve ser bem flexível pra suportar a integração com diferentes gateways de pagamento, assim como de formas de pagamento.