Giter VIP home page Giter VIP logo

sapos's Introduction

Sapos Logo Release Build Code Climate coverage MIT License

About

SAPOS main goal is to ease the management of information related to graduate programs such as enrollments, courses, advisement, scholarships, requirements, among others.

This project was initiated by professors Leonardo Murta and Vanessa Braganholo and followed by three term projects from the Computer Science undergraduate course at Universidade Federal Fluminense.

Team

  • Leonardo Gresta Paulino Murta (joined in July 2011)
  • Vanessa Braganholo (joined in July 2011)
  • Rodrigo Dias Ferreira (joined in September 2011)
  • Tiago Manuel Padrela Ferreira Amaro (joined in September 2011)
  • Bruno de Pinho Schettino (joined in January 2013)
  • Everton Moreth (joined in January 2013)
  • Bernardo da Costa Santos (joined in July 2013)
  • João Felipe Nicolaci Pimentel (joined in August 2013)
  • Luis Antônio Vieira Junior (joined in August 2013)
  • Daniel Prett (joined in August 2014)
  • Carlos Eduardo Cabral da Cunha (joined in August 2016)
  • Caio Henrique Velloso Paranhos (joined in March 2024)
  • Igor de Paula Siqueira Monárdez (joined in May 2024)

Additional contributors

  • Celso da Cruz Carneiro Ribeiro (usage feedback)
  • Simone de Lima Martins (usage feedback)
  • Helio Augusto Garcia de Andrade (usage feedback)
  • Teresa Cancela (usage feedback)
  • Viviane Moura Aceti Alves (usage feedback)
  • Carol Cruz (text revision)
  • Juliana Serra Affonso (design)
  • Pedro Henrique Pegado Ribeiro (logo designer)

Documentation

Development

Technologies

Acknowledgements

We would like to thank JetBrains for providing us a license of RubyMine, used in the development of SAPOS.

RubyMine Logo

License

Copyright (c) 2013 Universidade Federal Fluminense (UFF)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

sapos's People

Contributors

bernardocs avatar braganholo avatar brunodess avatar bschettino avatar caiovelp avatar carlos-eduardo-cabral-da-cunha avatar danielpcampagna avatar dependabot[bot] avatar emoreth avatar igormonardez avatar joaofelipe avatar leomurta avatar lvieirajr avatar rdiasferreira avatar tiagoamaro avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sapos's Issues

Resolver problema de quebra de página em histórico e boletim

Está havendo uma quebra de página forçada no histórico e boletim. As etapas concluídas e nome do orientador ficam sempre na página 2, mesmo quando há espaço suficiente sobrando na página 1. Gerar o histórico e boletim em uma única página nesses casos.

Gerar histórico escolar do aluno

Para gerar o histórico, precisaremos guardar informações que hoje não temos: título da tese ou dissertação, conceito do programa na CAPES.

Associação de aluno com cidade

Cidade → Estado → País, qualquer entidade que precise do cadastro de um endereço está ligada a essas três entidades, mas deveria estar ligada apenas com cidade.

Exemplo: ao cadastrar um aluno, eu seleciono o estado, mas o campo de cidade não é filtrado para aparecer apenas as cidades daquele estado. Deveria ser possível fazer esse filtro, ou então selecionar apenas a cidade que o estado seria preenchido automaticamente.

Permitir que o SAPOS possa ser usado por diferentes universidades e programas de pós

Atualmente temos textos e logos fixos referentes ao IC/UFF. Contudo, outros programas/universidades estão com interesses no SAPOS. Temos três opções:

  1. Criarmos um fork para cada instância e adaptarmos os textos e imagens. Por um lado, é fácil de fazer. Por outro, a manutenção fica dificultada.

  2. Criarmos uma parametrização de forma que se possa configurar o nome da universidade, da unidade e do programa, e indicar o logo. Gera esforço baixo para fazer mas tem como vantagem manter um único SAPOS. Contudo, continua tendo que instalar várias vezes (um para cada instância).

  3. Incluirmos o conceito de Programa no metamodelo do SAPOS. É a opção mais complexa de se materializar, contudo permitiria usar uma única instância do SAPOS para uma universidade inteira. Mesmo assim continua a demanda de parametrização do nome da universidade.

Erro ao incluir dois orientadores em uma matrícula

Quando eu tento incluir dois orientadores de uma só vez em uma matrícula, obtenho o erro abaixo:

Não foi possível gravar orientação: 1 erro
Por favor, verifique o(s) seguinte(s) campo(s):
Orientador Principal não pode ficar em branco

image

Se eu inserir primeiro um orientador, salvar, depois inserir o outro, funciona.

Internal Error em consulta por etapa atrasada.

Ao verificar "Pedido de Banca" atrasado funciona, mas ao verificar "Exame de Qualificação" dá internal error. O log indica o seguinte erro:

NoMethodError (undefined method `<' for nil:NilClass):
  app/models/year_semester.rb:109:in `+'
  app/models/year_semester.rb:127:in `increase_semesters'
  app/models/enrollment.rb:56:in `block (3 levels) in with_delayed_phases_on'
  app/models/enrollment.rb:55:in `block (2 levels) in with_delayed_phases_on'
  app/models/enrollment.rb:43:in `block in with_delayed_phases_on'
  app/models/enrollment.rb:36:in `with_delayed_phases_on'
  app/controllers/enrollments_controller.rb:110:in `condition_for_delayed_phase_column'

Melhoria na visualização do sistema

Melhorar a visualização do sistema adicionando links para entidades relacionadas sempre que possível -- tarefa alocada ao projeto final do Luis e João Felipe.

Incluir nome do orientador no histórico do aluno

Incluir apenas se o motivo do desligamento do aluno tiver sido "Titulação". Para não deixar o sistema amarrado no conteúdo de uma tupla (tipo de desligamento), sugiro fazermos assim:

No cadastro de motivo de desligamento, adicionar um checkbox para dizer se o orientador deve aparecer no histórico se o aluno for desligado por aquele motivo.

Erro em inscrições - campo referente a aluno ou disciplina desaparecem da tela

O erro acontece na tela de turmas ou na tela de matrículas. Às vezes, o campo referente ao aluno some da tela de turma (e fica apenas os campos de disciplina, situação, nota, frequencia e obs). Da mesma forma que isso some, depois volta, sem que ninguém modifique nada no código. Na tela de matrícula, quem some é o campo de disciplina, conforme tela abaixo.

image

Já notamos que quando o aluno some da tela de turma, se sairmos da tela, formos até a tela de inscrição, adicionarmos uma inscrição e depois voltarmos para tela de turma, os alunos reaparecem. Mas não sabemos explicar o motivo.

Ordenação da grade de registros não funciona

Na tela de turmas, por exemplo, se eu clico na coluna nome da disciplina ou nome do professor para ordenar os registros da tela de turmas, a ordenação fica errada.

Notei que o mesmo acontece na tela de matrículas. Deve estar ocorrendo em outras telas do sistema também.

Search for non-allocated (i.e. available) scholarships

In the search screen of scholarship allocations, allow one to search for scholarships that are currently not allocated to an enrollment, but that are still valid (end date before current time).

Allow also to search for scholarships that will be available at a certain time in the future (use "etapas atrasadas" as an inspiration).

Adição de chave primária em realização de etapas

Eu consegui cadastrar, para a mesma
matrícula, duas realizações da mesma etapa. Seria bom colocar como
chave primária da tabela apenas o id da matrícula e o id da etapa.
Assim evitaríamos que um aluno realizasse a mesma etapa duas vezes
(pois isso com certeza seria um erro da secretaria).

Como teste, cadastrei prova de ingles duas vezes para a matrícula
D022.108.004 - Leandro Soares de Sousa, com datas diferentes. Isso não
deveria ser permitido.

O mesmo está ocorrendo em prorrogações concedidas. Eu consegui
cadastrar duas prorrogações iguais para o mesmo aluno. Exemplo: o sistema está permitindo que eu cadastre duas vezes prorrogação extraordinária para
D022.108.004 - Leandro Soares de Sousa.

User with Professor profile cannot use recordselect

Error:

A CanCan::AccessDenied occurred in students#browse:
  You are not authorized to access this page.
  vendor/bundle/ruby/1.9.1/gems/cancan-1.6.9/lib/cancan/ability.rb:208:in `authorize!'

-------------------------------
Request:
-------------------------------
  * URL       : https://sel.ic.uff.br/sapos-homologacao/students/browse?escape=false
  * IP address: 200.20.15.21
  * Parameters: {"escape"=>"false", "action"=>"browse", "controller"=>"students"}
  * Rails root: /usr/local/sapos/computacao/staging
  * Timestamp : 2013-08-07 23:38:15 UTC

Credits page is not opening

The credits page (https://sel.ic.uff.br/sapos-homologacao/credits/show) is not opening on staging. The following error is registered in the log file:

ActionView::Template::Error (incompatible character encodings: UTF-8 and ASCII- 8BIT):

    6:     </div>
    7: 
    8:     <div id="credits">
    9:       <%= markdown(@credits) %>
    10:       <%= markdown("#Outros\n * "  + link_to(I18n.t("doc.authors"), credits_authors_path)  + "\n * "  + link_to(I18n.t("doc.license"), credits_license_path)) %>
    11:     </div>
    12:   </div>

app/views/credits/show.html.erb:9:in `_app_views_credits_show_html_erb___2020747813218395038_34768940'

Gerar boletim do aluno

O boletim é igual ao histórico, mas com as seguintes informações adicionais:

  1. Abaixo do bloco de disciplinas de cada período, colocar o CR do aluno naquele período

  2. Ao final da listagem de todas as disciplinas, colocar o CR acumulado do aluno

  3. Listar todas as disciplinas, inclusive as que no aluno foi reprovado

  4. Colocar o nome do orientador, independente se o motivo do desligamento foi titulação ou não

  5. O título do relatório deve ser "Boletim Escolar" ao invés de "Histórico Escolar"

O link para a emissão do boletim pode aparecer em matrícula, ao lado do link para histórico, editar, visualizar e excluir.

Erro na paginação de resultado de busca em matrícula

Se eu entro em matrícula e faço a seguinte busca:

Ativo? Sim
Realização de Etapa: Pedido de Banca

O SAPOS me diz que existem 13 registros que satisfazem a essa
consulta, mas só mostra 7. Não aparece os links de paginação. Se eu
clico em matrícula para ordenar, aparecem registros que não apareciam
inicialmente, e os que estavam aparecendo somem, e mesmo assim o link
de paginação não aparece.

Se eu mando imprimir o relatório, aparecem os 13...

Alocação dupla de bolsas

Vi que tem um erro no SAPOS. A bolsa CAPESDDS25 continua alocada para
a Sandra (a data de encerramento está vazia), mas tb está alocada ao
Leonardo Musmano. O SAPOS deveria ter acusado um erro e não ter
deixado inserir a alocação da bolsa do Leonardo sem fechar a alocação
da Sandra...

Busca na tela de turmas

Permitir busca por ano semestre, professor, nome da disciplina, nome da turma e matrícula do aluno.

Preenchimento automático de datas em alocação de bolsas

Olhar pela data de admissão da matrícula do aluno, e já preencher o formulário de alocação de bolsas da seguinte forma:

data de início = mês seguinte ao mês corrente
data de limite = ano/semestre da matrícula do aluno + 24 meses (para mestrado) ou ano/semestre da matrícula do aluno + 48 meses (para doutorado).

Exemplo: Alocar uma bolsa para o aluno de matrícula M048.212.012. Esse aluno é aluno de mestrado e foi admitido em Agosto de 2012 (essa info está em Matrícula).
Supondo que estamos em Dezembro de 2012:

data de início = Janeiro de 2013 (dezembro/2012 + 1 mês)
data limite = Julho de 2014 (Agosto 2012 + 24 meses)
data de encerramento fica vazia

Area de concentração p/ aluno e professor

(um aluno só pode estar ligado a uma área)
(um professor pode estar ligado a mais de uma área)

Ao setar o orientador do aluno, checar se a área de concentração dele é uma das do orientador. Caso não seja, dar um aviso.

Internal error when querying something based on date

ActiveRecord::StatementInvalid (Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '["enrollments.admission_date"]) >= '2013-08-01' and DATE(["enrollments.admission' at line 1: SELECT COUNT(DISTINCT `enrollments`.`id`) FROM `enrollments` LEFT OUTER JOIN `students` ON `students`.`id` = `enrollments`.`student_id` LEFT OUTER JOIN `levels` ON `levels`.`id` = `enrollments`.`level_id` LEFT OUTER JOIN `enrollment_statuses` ON `enrollment_statuses`.`id` = `enrollments`.`enrollment_status_id` LEFT OUTER JOIN `dismissals` ON `dismissals`.`enrollment_id` = `enrollments`.`id` WHERE (enrollment_statuses.id in ('2')) AND (DATE(["enrollments.admission_date"]) >= '2013-08-01' and DATE(["enrollments.admission_date"]) < '2013-09-01')):

Erro ao lançar nota com casas decimais

Com a atualização que fizemos no final de semana, o SAPOS parou de aceitar notas quebradas. Ele aceita 7, mas não aceita 7,3, por exemplo. Me parece que ele voltou a pedir notas entre 0 e 100, mas na hora ele transforma o 73 em 730 e diz que o valor é inválido. Se eu coloco 7,3 ele diz que o valor é inválido, e o mesmo acontece com 7.3.

Motivos de desligamento de bolsa

  • criar tabela de atributos de fim de bolsa:
  • motivo de encerramento:
    titulação
    critério de curso
    prazo de bolsa esgotado
    desligado do curso por limite de prazo
    desistencia de bolsa
    acúmulo de bolsas
    mudança de agência
    desistência do curso
    mudança de programa CAPES
    trancamento de matrícula
    insuficiência de matrícula
    insuficiência de aproveitamento
    falecimento
    não atende as normas do programa

Vizualização na tela de matrícula

Adicionar tudo que aparece no link de editar também no link de visualizar de Matrícula. Assim, será possível saber quem são os orientadores daquela matrícula, as etapas que já cumpriu, as disciplinas que já cursou, etc, ao clicar no link visualizar.

Fazer o layout arrumadinho parecido com o que foi feito no link de visualizar na tela de professores.

Consultas complexas

  • Permitir consultas complexas (por exemplo, cruzar aluno com bolsa, aluno com orientador, etc.), e deixar que o usuário possa criar outras consultas sempre que necessário, salvando-as, sem ter que pedir para os desenvolvedores implementarem. A consulta poderia ser escrita em SQL via formulário, e salvas com um nome específico.
  • Teria como rodar as consultas com outro usuário do BD? Isso permitiria criarmos um usuário no BD com acesso só de leitura, para evitar efeitos colaterais.
  • Teria como permitir que, ao escrever a consulta, fossem criadas variáveis? Assim, ao escolher uma consulta para rodar, o usuário poderia preencher parâmetros que seriam atribuídos a essas variáveis.
  • Seria interessante fornecer uma possibilidade de gerar o resultado da consulta em pdf, para facilitar impressão e envio em meio digital.

Relatório com nome, email e matrícula dos alunos de uma turma

Na tela de turma, deixar gerar relatório com nome, email e matrícula dos alunos inscritos numa determinada turma. Esse relatório poderá ser enviado aos professores da disciplina, caso precisem contactar os alunos (não precisa ser envio automático, mas se tiver um botão de enviar, melhor ainda). Caso contrário a secretaria pode gerar o relatório em PDF e enviar ao professor por email.

Essa funcionalidade é necessária pois, atualmente, a info com os nomes e emails dos alunos está na página do IC, e essa página será extinta na nova versão da página do IC que deve ser lançada em breve.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.