From 7b672f5416e1b98399d6bdaa72b7578282ec2a6a Mon Sep 17 00:00:00 2001 From: Icaro Rezende Date: Tue, 30 Mar 2021 10:12:25 -0300 Subject: [PATCH 01/38] fix gemfile and migrations --- Gemfile | 1 - Gemfile.lock | 159 +++++++----------- ...91121154635_add_monitor_to_atendimentos.rb | 2 +- db/schema.rb | 12 +- db/seeds.rb | 11 +- 5 files changed, 75 insertions(+), 110 deletions(-) diff --git a/Gemfile b/Gemfile index bfc41880..e97f4c25 100644 --- a/Gemfile +++ b/Gemfile @@ -27,7 +27,6 @@ gem 'jbuilder', '~> 2.5' # Use ActiveModel has_secure_password gem 'bcrypt', '~> 3.1.7' -gem 'webdrivers', '~> 4.0' # Uses HAML templates gem 'haml' diff --git a/Gemfile.lock b/Gemfile.lock index c2dba9cb..91fa9006 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -20,48 +20,43 @@ GIT GEM remote: https://rubygems.org/ specs: - - abstract_type (0.0.7) - actioncable (5.2.4) - actionpack (= 5.2.4) + actioncable (5.2.5) + actionpack (= 5.2.5) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailer (5.2.4) - actionpack (= 5.2.4) - actionview (= 5.2.4) - activejob (= 5.2.4) + actionmailer (5.2.5) + actionpack (= 5.2.5) + actionview (= 5.2.5) + activejob (= 5.2.5) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (5.2.4) - actionview (= 5.2.4) - activesupport (= 5.2.4) - rack (~> 2.0) + actionpack (5.2.5) + actionview (= 5.2.5) + activesupport (= 5.2.5) + rack (~> 2.0, >= 2.0.8) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (5.2.4) - activesupport (= 5.2.4) - + actionview (5.2.5) + activesupport (= 5.2.5) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.3) - - activejob (5.2.4) - activesupport (= 5.2.4) + activejob (5.2.5) + activesupport (= 5.2.5) globalid (>= 0.3.6) - activemodel (5.2.4) - activesupport (= 5.2.4) - activerecord (5.2.4) - activemodel (= 5.2.4) - activesupport (= 5.2.4) + activemodel (5.2.5) + activesupport (= 5.2.5) + activerecord (5.2.5) + activemodel (= 5.2.5) + activesupport (= 5.2.5) arel (>= 9.0) - activestorage (5.2.4) - actionpack (= 5.2.4) - activerecord (= 5.2.4) - marcel (~> 0.3.1) - activesupport (5.2.4) - + activestorage (5.2.5) + actionpack (= 5.2.5) + activerecord (= 5.2.5) + marcel (~> 1.0.0) + activesupport (5.2.5) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) @@ -70,10 +65,8 @@ GEM public_suffix (>= 2.0.2, < 5.0) arel (9.0.0) arrayfields (4.9.2) - ast (2.4.2) autoprefixer-rails (10.2.4.0) - execjs bcrypt (3.1.16) bindex (0.8.1) @@ -114,7 +107,6 @@ GEM coffee-script-source execjs coffee-script-source (1.12.2) - concurrent-ruby (1.1.8) crass (1.0.6) cucumber (5.3.0) @@ -147,7 +139,6 @@ GEM capybara (>= 2.18, < 4) cucumber (>= 3.0.2, < 6) mime-types (~> 3.2) - nokogiri (~> 1.8) rails (>= 5.0, < 7) cucumber-rails-training-wheels (1.0.0) @@ -174,9 +165,7 @@ GEM factory_bot (~> 6.1.0) railties (>= 5.0.0) fattr (2.4.0) - ffi (1.15.0) - flay (2.12.1) erubis (~> 2.7.0) path_expander (~> 1.0) @@ -189,9 +178,7 @@ GEM formatador (0.2.5) globalid (0.4.2) activesupport (>= 4.2.0) - guard (2.16.2) - formatador (>= 0.2.4) listen (>= 2.7, < 4.0) lumberjack (>= 1.0.12, < 2.0) @@ -215,22 +202,16 @@ GEM html2haml (>= 1.0.1) railties (>= 5.1) hirb (0.7.3) - html2haml (2.2.0) erubis (~> 2.7.0) haml (>= 4.0, < 6) nokogiri (>= 1.6.0) ruby_parser (~> 3.5) - http-accept (1.7.0) - http-cookie (1.0.3) - domain_name (~> 0.5) - i18n (1.7.0) + i18n (1.8.9) concurrent-ruby (~> 1.0) - ice_nine (0.11.2) - jbuilder (2.9.1) - activesupport (>= 4.2.0) - jquery-rails (4.3.5) - + jbuilder (2.11.2) + activesupport (>= 5.0.0) + jquery-rails (4.4.0) rails-dom-testing (>= 1, < 3) railties (>= 4.2.0) thor (>= 0.14, < 2.0) @@ -242,9 +223,7 @@ GEM rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) ruby_dep (~> 1.2) - loofah (2.9.0) - crass (~> 1.0.2) nokogiri (>= 1.5.9) lumberjack (1.2.8) @@ -256,36 +235,30 @@ GEM fattr (~> 2.2, >= 2.2.0) map (~> 6.1, >= 6.1.0) map (6.6.0) - marcel (0.3.3) - mimemagic (~> 0.3.2) + marcel (1.0.0) method_source (1.0.0) metric_fu-Saikuro (1.1.3) middleware (0.1.0) mime-types (3.3.1) mime-types-data (~> 3.2015) mime-types-data (3.2021.0225) - mimemagic (0.3.6) - mini_mime (1.0.2) - - - mini_portile2 (2.4.0) - minitest (5.13.0) - msgpack (1.3.1) - multi_json (1.14.1) - + mini_mime (1.0.3) + mini_portile2 (2.5.0) + minitest (5.14.4) + msgpack (1.4.2) + multi_json (1.15.0) multi_test (0.1.2) nenv (0.3.0) - netrc (0.11.0) - nio4r (2.5.2) - nokogiri (1.10.7) - mini_portile2 (~> 2.4.0) + nio4r (2.5.7) + nokogiri (1.11.2) + mini_portile2 (~> 2.5.0) + racc (~> 1.4) notiffany (0.1.3) nenv (~> 0.1) shellany (~> 0.0) - parallel (1.19.1) - parser (2.5.3.0) - ast (~> 2.4.0) - + parallel (1.20.1) + parser (3.0.0.0) + ast (~> 2.4.1) path_expander (1.1.0) pg (1.2.3) popper_js (1.16.0) @@ -305,20 +278,18 @@ GEM rack-test (1.1.0) rack (>= 1.0, < 3) railroady (1.5.3) - - rails (5.2.4.5) - actioncable (= 5.2.4.5) - actionmailer (= 5.2.4.5) - actionpack (= 5.2.4.5) - actionview (= 5.2.4.5) - activejob (= 5.2.4.5) - activemodel (= 5.2.4.5) - activerecord (= 5.2.4.5) - activestorage (= 5.2.4.5) - activesupport (= 5.2.4.5) + rails (5.2.5) + actioncable (= 5.2.5) + actionmailer (= 5.2.5) + actionpack (= 5.2.5) + actionview (= 5.2.5) + activejob (= 5.2.5) + activemodel (= 5.2.5) + activerecord (= 5.2.5) + activestorage (= 5.2.5) + activesupport (= 5.2.5) bundler (>= 1.3.0) - railties (= 5.2.4.5) - + railties (= 5.2.5) sprockets-rails (>= 2.0.0) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) @@ -337,10 +308,9 @@ GEM json require_all (~> 3.0) ruby-progressbar - - railties (5.2.4.5) - actionpack (= 5.2.4.5) - activesupport (= 5.2.4.5) + railties (5.2.5) + actionpack (= 5.2.5) + activesupport (= 5.2.5) method_source rake (>= 0.8.7) thor (>= 0.19.0, < 2.0) @@ -348,7 +318,6 @@ GEM rake (13.0.3) rb-fsevent (0.10.4) rb-inotify (0.10.1) - ffi (~> 1.0) redcard (1.1.0) reek (6.0.3) @@ -383,9 +352,7 @@ GEM rspec-support (3.10.2) ruby-progressbar (1.11.0) ruby_dep (1.5.0) - ruby_parser (3.15.1) - sexp_processor (~> 4.9) rubyzip (2.3.0) sass (3.7.4) @@ -447,22 +414,18 @@ GEM activemodel (>= 5.0) bindex (>= 0.4.0) railties (>= 5.0) - - - webdrivers (4.1.3) + webdrivers (4.6.0) nokogiri (~> 1.6) rubyzip (>= 1.3.0) selenium-webdriver (>= 3.0, < 4.0) - websocket-driver (0.7.1) - - + websocket-driver (0.7.3) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) xpath (3.2.0) nokogiri (~> 1.8) PLATFORMS - x86_64-linux + ruby DEPENDENCIES bcrypt (~> 3.1.7) @@ -499,12 +462,10 @@ DEPENDENCIES tzinfo-data uglifier (>= 1.3.0) web-console (>= 3.3.0) - - webdrivers (~> 4.0) - + webdrivers RUBY VERSION ruby 2.7.2p137 BUNDLED WITH - 2.2.9 + 2.1.4 diff --git a/db/migrate/20191121154635_add_monitor_to_atendimentos.rb b/db/migrate/20191121154635_add_monitor_to_atendimentos.rb index 190fa11f..2431b02f 100644 --- a/db/migrate/20191121154635_add_monitor_to_atendimentos.rb +++ b/db/migrate/20191121154635_add_monitor_to_atendimentos.rb @@ -1,5 +1,5 @@ class AddMonitorToAtendimentos < ActiveRecord::Migration[5.2] def change - add_reference :atendimentos, :monitor, foreign_key: true + add_reference :atendimentos, :monitor, foreign_key: {to_table: :users} end end diff --git a/db/schema.rb b/db/schema.rb index b3b197b1..d0aa8b15 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,9 +10,10 @@ # # It's strongly recommended that you check this file into your version control system. - ActiveRecord::Schema.define(version: 2019_12_10_130811) do + # These are extensions that must be enabled in order to support this database + enable_extension "plpgsql" create_table "admins", force: :cascade do |t| t.string "name", null: false @@ -25,13 +26,13 @@ end create_table "atendimentos", force: :cascade do |t| - t.integer "motivo_id" + t.bigint "motivo_id" t.date "dia" t.string "descricao" t.string "aluno_atendido" t.datetime "created_at", null: false t.datetime "updated_at", null: false - t.integer "monitor_id" + t.bigint "monitor_id" t.index ["monitor_id"], name: "index_atendimentos_on_monitor_id" t.index ["motivo_id"], name: "index_atendimentos_on_motivo_id" end @@ -142,7 +143,7 @@ t.boolean "feito" t.datetime "inicio" t.datetime "fim" - t.integer "monitoria_id" + t.bigint "monitoria_id" t.datetime "created_at", null: false t.datetime "updated_at", null: false t.index ["monitoria_id"], name: "index_tarefas_on_monitoria_id" @@ -193,4 +194,7 @@ t.integer "c_restantes", default: 0, null: false end + add_foreign_key "atendimentos", "motivos" + add_foreign_key "atendimentos", "users", column: "monitor_id" + add_foreign_key "tarefas", "monitoria", column: "monitoria_id" end diff --git a/db/seeds.rb b/db/seeds.rb index 54463dc5..5d163dc2 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -17,26 +17,27 @@ # remember_token: nil, created_at: '2018-06-04 18:12:09.050792', updated_at: '2018-06-04 18:12:09.050792') ###################### -Disciplina.create([{id:1, nome: "APC", +Disciplina.create!([{id:1, nome: "APC", fk_tipo_disciplina_id: 1, c_prat: 2, c_teor: 4, cod_disciplina: 1}]) -Disciplina.create([{id:2, nome: "ED", +Disciplina.create!([{id:2, nome: "ED", fk_tipo_disciplina_id: 1, c_prat: 2, c_teor: 2, cod_disciplina: 2}]) ###################### -# User.create(id: 1, name: "Aluno1", email: "aluno1@gmail.com", password: "123456", -# cpf: "03638481182", rg: "2645178", matricula: "140080279") +User.create!(id: 1, name: "Aluno", email: "aluno1@gmail.com", password: "123456", password_confirmation: '123456', + cpf: "03638481182", rg: "2645178", matricula: "140080279") # User.create(id: 2, name: "Aluno2", email: "aluno2@gmail.com", password: "123456", # cpf: "03638481111", rg: "2645111", matricula: "140080211", # fk_banco: nil, remember_token: nil, created_at: '2018-06-04 19:02:24.831795', # updated_at: '2018-06-04 19:02:24.831795') -#Professor.create(id: 1, name: "Carla", email: "carla@unb.br", username: "carla", password: "123456", role: 1) +Professor.create!(id: 1, name: "Genaina", email: "genaina@unb.br", username: "genaina", password: "123456", password_confirmation: '123456', role: 1) +Professor.create!(id: 2, name: "Carla", email: "carla@unb.br", username: "carla", password: "123456", password_confirmation: '123456', role: 1) ###################### ###################### From cc9672954c62a7582521604d384442bf031f78a8 Mon Sep 17 00:00:00 2001 From: Alice Lima Date: Wed, 21 Apr 2021 16:09:19 -0300 Subject: [PATCH 02/38] adiciona feature validarMencao --- features/validarMencao.feature | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 features/validarMencao.feature diff --git a/features/validarMencao.feature b/features/validarMencao.feature new file mode 100644 index 00000000..1622ae90 --- /dev/null +++ b/features/validarMencao.feature @@ -0,0 +1,28 @@ +# language: pt +Funcionalidade: Como professor, consigo vizualizar as menções verídicos dos alunos que se inscreveram na monitoria +da minha disciplina. + + Cenário de Fundo: + Dado que o banco possui um aluno e um professor + E que o banco possui um historico do aluno + E que o banco possui a mencao informada pelo aluno + + Cenário: O aluno aplica para monitoria (remunerada ou voluntária) com a mencao verídica (Happy Path) + Quando eu estiver efetuando o processo de aplicação de monitoria + Eu informo minha mencao na disciplina e meu historico atualizado + A mencao informada é a mesma que está no meu histórico + Então a minha aplicação de monitoria tem a mencao válida. + + Cenário: O aluno aplica para a monitoria (remunerada ou voluntaria) com a mencao inferior a ms (Sad Path) + Quando eu estiver efetuando o processo de aplicação de monitoria + Eu informo minha mencao na disciplina e meu historico atualizado + A mencao informada é inferior a ms + Então a minha aplicação de monitoria é inválida. + + Cenário: O aluno aplica para a monitoria (remunerada ou voluntária) com a mencao incorreta (Sad Path) + Quando eu estiver efetuando o processo de aplicação de monitoria + Eu informo minha mencao na disciplina e meu historico atualizado + A mencao informada difere da que está no meu histórico + Então a minha aplicação de monitoria tem a mencao invalida. + + \ No newline at end of file From d8aa663c517949add3a6c51b7d09d4459d9477f5 Mon Sep 17 00:00:00 2001 From: Vitor Vasconcelos de Oliveira Date: Wed, 21 Apr 2021 16:21:08 -0300 Subject: [PATCH 03/38] Adciona Validar Matricula --- features/validarMatricula.feature | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 features/validarMatricula.feature diff --git a/features/validarMatricula.feature b/features/validarMatricula.feature new file mode 100644 index 00000000..0a882815 --- /dev/null +++ b/features/validarMatricula.feature @@ -0,0 +1,21 @@ +# language: pt +Funcionalidade: Como professor, consigo vizualizar as Matrículas verídicas dos alunos que se inscreveram +na monitoria da minha disciplina. + + Cenário de Fundo: + Dado que o banco possui um aluno e um professor + E que o banco possui um historico do aluno + E que o banco possui a matricula informada pelo aluno + + Cenário: O aluno aplica para monitoria (remunerada ou voluntária) com uma matrícula verídica (Happy Path) + Quando eu estiver efetuando o processo de aplicação de monitoria + Eu informo minha matricula e meu historico atualizado + A matricula informada é a mesma que está no meu histórico + Então a minha aplicação de monitoria tem a matricula válida. + + Cenário: O aluno aplica para a monitoria (remunerada ou voluntária) com uma matrícula incorreta (Sad Path) + Quando eu estiver efetuando o processo de aplicação de monitoria + Eu informo minha matricula e meu historico atualizado + A matricula informada difere da que consta no meu historico + Então a minha aplicação de monitoria tem a matricula invalida. + \ No newline at end of file From cd2325f49d391c297880933e4fed7f5fcaf45261 Mon Sep 17 00:00:00 2001 From: Raylan Sales Date: Wed, 21 Apr 2021 16:28:42 -0300 Subject: [PATCH 04/38] Adciona ValidarIRA --- features/validarIRA.feature | 38 +++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 features/validarIRA.feature diff --git a/features/validarIRA.feature b/features/validarIRA.feature new file mode 100644 index 00000000..84ce0cc2 --- /dev/null +++ b/features/validarIRA.feature @@ -0,0 +1,38 @@ +# language: pt +Funcionalidade: Como professor, consigo vizualizar os IRAs verídicos dos alunos e maior ou igual a 3,5 , no caso de +monitoria remunerada, que se inscreveram na monitoria da minha disciplina. + + Cenário de Fundo: + Dado que o banco possui um aluno e um professor + E que o banco possui um histórico do aluno + E que o banco possui o IRA informado pelo aluno + + Cenário: O aluno aplica para monitoria voluntária com um IRA verídico (Happy Path) + Quando eu estiver efetuando o processo de aplicação de monitoria + Eu informo o meu IRA atual + E envio o meu histórico atualizado + O IRA informado é o mesmo que está no meu histórico + Então a minha aplicação de monitoria tem o IRA válido. + + Cenário: O aluno aplica para monitoria remunerada com um IRA verídico e maior ou igual a 3,5 (Happy Path) + Quando eu estiver efetuando o processo de aplicação de monitoria + Eu informo o meu IRA atual + E eu envio o meu histórico atualizado + O IRA informado é o mesmo que está no meu histórico + E o meu IRA é maior ou igual a 3,5 + Então a minha aplicação de monitoria tem o IRA válido. + + Cenário: O aluno aplica para monitoria voluntária ou remunerada com um IRA não verídico (Sad Path) + Quando eu estiver efetuando o processo de aplicação de monitoria + Eu não informo o meu IRA atual + E eu envio o meu histórico atualizado + O IRA informado não é o mesmo que está no meu histórico + Então a minha aplicação de monitoria tem o IRA inválido. + + Cenário: O aluno aplica para monitoria remunerada com um IRA verídico e não válido (Sad Path) + Quando eu estiver efetuando o processo de aplicação de monitoria + Eu informo o meu IRA atual + E eu envio o meu histórico atualizado + O IRA informado é o mesmo que está no meu histórico + E o meu IRA é menor a 3,5 + Então a minha aplicação de monitoria tem o IRA inválido. \ No newline at end of file From 190dc8f0c09cc84c3a25976ff69558422923bb2d Mon Sep 17 00:00:00 2001 From: Giovana Date: Wed, 21 Apr 2021 16:33:26 -0300 Subject: [PATCH 05/38] adcionar validacao status --- features/validarStatusAluno.feature | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 features/validarStatusAluno.feature diff --git a/features/validarStatusAluno.feature b/features/validarStatusAluno.feature new file mode 100644 index 00000000..53c879ca --- /dev/null +++ b/features/validarStatusAluno.feature @@ -0,0 +1,20 @@ +# language: pt +Funcionalidade: Como professor, consigo vizualizar apenas os alunos que aplicaram para monitoria com status válido. + + + Cenário de Fundo: + Dado que o banco possui um aluno e um professor + E que o banco possui um historico do aluno + + Cenário: O aluno aplica para monitoria voluntária ou remunerada com status válido (Happy Path) + Quando eu estiver efetuando o processo de aplicação de monitoria + Eu envio o meu histórico atualizado + O meu status que consta no histórico é "ATIVO" + Então a minha aplicação de monitoria tem o status válido. + + Cenário: O aluno aplica para monitoria voluntária ou remunerada com status inválido (Sad Path) + Quando eu estiver efetuando o processo de aplicação de monitoria + Eu envio o meu histórico atualizado + O meu status que consta no histórico é "INATIVO" + Então a minha aplicação de monitoria tem o status inválido. + \ No newline at end of file From 00e4bcc45603195f37b19526ae7af25def6a8d8e Mon Sep 17 00:00:00 2001 From: Raylan Sales Date: Wed, 21 Apr 2021 16:43:55 -0300 Subject: [PATCH 06/38] Revert "Adciona ValidarIRA" This reverts commit cd2325f49d391c297880933e4fed7f5fcaf45261. --- features/validarIRA.feature | 38 ------------------------------------- 1 file changed, 38 deletions(-) delete mode 100644 features/validarIRA.feature diff --git a/features/validarIRA.feature b/features/validarIRA.feature deleted file mode 100644 index 84ce0cc2..00000000 --- a/features/validarIRA.feature +++ /dev/null @@ -1,38 +0,0 @@ -# language: pt -Funcionalidade: Como professor, consigo vizualizar os IRAs verídicos dos alunos e maior ou igual a 3,5 , no caso de -monitoria remunerada, que se inscreveram na monitoria da minha disciplina. - - Cenário de Fundo: - Dado que o banco possui um aluno e um professor - E que o banco possui um histórico do aluno - E que o banco possui o IRA informado pelo aluno - - Cenário: O aluno aplica para monitoria voluntária com um IRA verídico (Happy Path) - Quando eu estiver efetuando o processo de aplicação de monitoria - Eu informo o meu IRA atual - E envio o meu histórico atualizado - O IRA informado é o mesmo que está no meu histórico - Então a minha aplicação de monitoria tem o IRA válido. - - Cenário: O aluno aplica para monitoria remunerada com um IRA verídico e maior ou igual a 3,5 (Happy Path) - Quando eu estiver efetuando o processo de aplicação de monitoria - Eu informo o meu IRA atual - E eu envio o meu histórico atualizado - O IRA informado é o mesmo que está no meu histórico - E o meu IRA é maior ou igual a 3,5 - Então a minha aplicação de monitoria tem o IRA válido. - - Cenário: O aluno aplica para monitoria voluntária ou remunerada com um IRA não verídico (Sad Path) - Quando eu estiver efetuando o processo de aplicação de monitoria - Eu não informo o meu IRA atual - E eu envio o meu histórico atualizado - O IRA informado não é o mesmo que está no meu histórico - Então a minha aplicação de monitoria tem o IRA inválido. - - Cenário: O aluno aplica para monitoria remunerada com um IRA verídico e não válido (Sad Path) - Quando eu estiver efetuando o processo de aplicação de monitoria - Eu informo o meu IRA atual - E eu envio o meu histórico atualizado - O IRA informado é o mesmo que está no meu histórico - E o meu IRA é menor a 3,5 - Então a minha aplicação de monitoria tem o IRA inválido. \ No newline at end of file From 2f22698534ed479186ecc42ac099f9bb2f2f9a39 Mon Sep 17 00:00:00 2001 From: Raylan Sales Date: Wed, 21 Apr 2021 16:48:39 -0300 Subject: [PATCH 07/38] adcionar validarIRA incompleto --- features/validarIRA.feature | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 features/validarIRA.feature diff --git a/features/validarIRA.feature b/features/validarIRA.feature new file mode 100644 index 00000000..7798bef3 --- /dev/null +++ b/features/validarIRA.feature @@ -0,0 +1,23 @@ +# language: pt +Funcionalidade: Como professor, consigo vizualizar os IRAs verídicos dos alunos e maior ou igual a 3,5 , no caso de +monitoria remunerada, que se inscreveram na monitoria da minha disciplina. + + Cenário de Fundo: + Dado que o banco possui um aluno e um professor + E que o banco possui um histórico do aluno + E que o banco possui o IRA informado pelo aluno + + Cenário: O aluno aplica para monitoria voluntária com um IRA verídico (Happy Path) + Quando eu estiver efetuando o processo de aplicação de monitoria + Eu informo o meu IRA atual + E envio o meu histórico atualizado + O IRA informado é o mesmo que está no meu histórico + Então a minha aplicação de monitoria tem o IRA válido. + + Cenário: O aluno aplica para monitoria remunerada com um IRA verídico e maior ou igual a 3,5 (Happy Path) + Quando eu estiver efetuando o processo de aplicação de monitoria + Eu informo o meu IRA atual + E eu envio o meu histórico atualizado + O IRA informado é o mesmo que está no meu histórico + E o meu IRA é maior ou igual a 3,5 + Então a minha aplicação de monitoria tem o IRA válido. From eb3841b8f4036df5565efcad4c2acec01d4f7d47 Mon Sep 17 00:00:00 2001 From: AlvaroLuz Date: Wed, 21 Apr 2021 16:52:15 -0300 Subject: [PATCH 08/38] Finalizacao features validarIRA --- features/validarIRA.feature | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/features/validarIRA.feature b/features/validarIRA.feature index 7798bef3..84ce0cc2 100644 --- a/features/validarIRA.feature +++ b/features/validarIRA.feature @@ -21,3 +21,18 @@ monitoria remunerada, que se inscreveram na monitoria da minha disciplina. O IRA informado é o mesmo que está no meu histórico E o meu IRA é maior ou igual a 3,5 Então a minha aplicação de monitoria tem o IRA válido. + + Cenário: O aluno aplica para monitoria voluntária ou remunerada com um IRA não verídico (Sad Path) + Quando eu estiver efetuando o processo de aplicação de monitoria + Eu não informo o meu IRA atual + E eu envio o meu histórico atualizado + O IRA informado não é o mesmo que está no meu histórico + Então a minha aplicação de monitoria tem o IRA inválido. + + Cenário: O aluno aplica para monitoria remunerada com um IRA verídico e não válido (Sad Path) + Quando eu estiver efetuando o processo de aplicação de monitoria + Eu informo o meu IRA atual + E eu envio o meu histórico atualizado + O IRA informado é o mesmo que está no meu histórico + E o meu IRA é menor a 3,5 + Então a minha aplicação de monitoria tem o IRA inválido. \ No newline at end of file From dd201442df222ff297537a8e6c93bfbefedbb2c9 Mon Sep 17 00:00:00 2001 From: Vitor Vasconcelos de Oliveira Date: Thu, 6 May 2021 10:36:43 -0300 Subject: [PATCH 09/38] Delete monitoria.rb --- app/models/monitoria.rb | 29 ----------------------------- 1 file changed, 29 deletions(-) delete mode 100644 app/models/monitoria.rb diff --git a/app/models/monitoria.rb b/app/models/monitoria.rb deleted file mode 100644 index e5e72b26..00000000 --- a/app/models/monitoria.rb +++ /dev/null @@ -1,29 +0,0 @@ -class Monitoria < ApplicationRecord - - def self.all_disciplinas - @disciplinas = Array.new - Disciplina.find_each do |d| - @disciplinas << [d.nome, d.cod_disciplina] - end - @disciplinas - end - - # def self.all_turmas - # @turmas = Array.new - # Turma.find_each do |t| - # @turmas << [t.turma, t.id] - # end - # @turmas - # end - - def self.all_status - return [['Pendente', 1], ['Recusado', 2], ['Aceito', 3], ['Encerrado', 4]] - end - validates_presence_of :remuneracao - validates_presence_of :fk_matricula - validates_presence_of :fk_cod_disciplina - validates_presence_of :fk_turmas_id - validates_presence_of :fk_status_monitoria_id - - -end From b8e479ca1582ab1c0bf1badc4cf7af4c7dc9afa7 Mon Sep 17 00:00:00 2001 From: Vitor Vasconcelos de Oliveira Date: Thu, 6 May 2021 10:39:15 -0300 Subject: [PATCH 10/38] =?UTF-8?q?Modifica=C3=A7=C3=A3o=20no=20arquivo=20mo?= =?UTF-8?q?nitoria.rb?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Nesse commit foi adicionado o scraping do pdf do histórico --- app/models/monitoria.rb | 90 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 app/models/monitoria.rb diff --git a/app/models/monitoria.rb b/app/models/monitoria.rb new file mode 100644 index 00000000..f18e988d --- /dev/null +++ b/app/models/monitoria.rb @@ -0,0 +1,90 @@ +class Monitoria < ApplicationRecord + + require 'pdf-reader' + + # after_create :validate_historico + + def self.all_disciplinas + @disciplinas = Array.new + Disciplina.find_each do |d| + @disciplinas << [d.nome, d.cod_disciplina] + end + @disciplinas + end + + # def self.all_turmas + # @turmas = Array.new + # Turma.find_each do |t| + # @turmas << [t.turma, t.id] + # end + # @turmas + # end + + def self.all_status + return [['Pendente', 1], ['Recusado', 2], ['Aceito', 3], ['Encerrado', 4]] + end + validates_presence_of :remuneracao + validates_presence_of :fk_matricula + validates_presence_of :fk_cod_disciplina + validates_presence_of :fk_turmas_id + validates_presence_of :fk_status_monitoria_id + + + # def self.validate_historico + # #passar nome do arquivo, ou o arquivo em si + # return self.scraping('historico_180112601.pdf', :fk_cod_disciplina) + # end + + def self.scraping(filename, disciplina) + flagMatricula=0 + flagStatus=0 + flagIRA=2 + flagMencao=0 + matricula_doc=0 + status_doc=0 + ira_doc=0 + mencao_doc=0 + filename = Rails.root.join('app', 'models',filename).to_s + #le o historico + PDF::Reader.open(filename) do |reader| + reader.pages.each do |page| + lines = page.text.scan(/^.+/) + lines.each do |line| + #adiquire a matricula a partir do historico + if line.include?('Matrícula:') + if flagMatricula == 0 + vet = line.split() + matricula_doc = vet[7] + flagMatricula = 1 + end + end + #adiquire o status a partir do historico + if line.include?('Status:') + if flagStatus == 0 + vet = line.split() + status_doc = vet[1] + flagStatus= 1 + end + end + #adiquire o IRA a partir do historico + if line.include?('IRA') + if flagIRA == 1 + vet = line.split() + ira_doc = vet[1] + end + flagIRA = flagIRA - 1 + + end + #adiquire a mencao a partir do historico + if line.include?(disciplina) + if flagMencao == 0 + vet = line.split() + mencao_doc = vet[-2] + flagMencao = 1 + end + end + end + end + end + end +end \ No newline at end of file From d4005dc18274bb4f76317d9cad38d06247252421 Mon Sep 17 00:00:00 2001 From: Raylan Sales Date: Thu, 6 May 2021 10:42:25 -0300 Subject: [PATCH 11/38] Delete validarIRA.feature --- features/validarIRA.feature | 38 ------------------------------------- 1 file changed, 38 deletions(-) delete mode 100644 features/validarIRA.feature diff --git a/features/validarIRA.feature b/features/validarIRA.feature deleted file mode 100644 index 84ce0cc2..00000000 --- a/features/validarIRA.feature +++ /dev/null @@ -1,38 +0,0 @@ -# language: pt -Funcionalidade: Como professor, consigo vizualizar os IRAs verídicos dos alunos e maior ou igual a 3,5 , no caso de -monitoria remunerada, que se inscreveram na monitoria da minha disciplina. - - Cenário de Fundo: - Dado que o banco possui um aluno e um professor - E que o banco possui um histórico do aluno - E que o banco possui o IRA informado pelo aluno - - Cenário: O aluno aplica para monitoria voluntária com um IRA verídico (Happy Path) - Quando eu estiver efetuando o processo de aplicação de monitoria - Eu informo o meu IRA atual - E envio o meu histórico atualizado - O IRA informado é o mesmo que está no meu histórico - Então a minha aplicação de monitoria tem o IRA válido. - - Cenário: O aluno aplica para monitoria remunerada com um IRA verídico e maior ou igual a 3,5 (Happy Path) - Quando eu estiver efetuando o processo de aplicação de monitoria - Eu informo o meu IRA atual - E eu envio o meu histórico atualizado - O IRA informado é o mesmo que está no meu histórico - E o meu IRA é maior ou igual a 3,5 - Então a minha aplicação de monitoria tem o IRA válido. - - Cenário: O aluno aplica para monitoria voluntária ou remunerada com um IRA não verídico (Sad Path) - Quando eu estiver efetuando o processo de aplicação de monitoria - Eu não informo o meu IRA atual - E eu envio o meu histórico atualizado - O IRA informado não é o mesmo que está no meu histórico - Então a minha aplicação de monitoria tem o IRA inválido. - - Cenário: O aluno aplica para monitoria remunerada com um IRA verídico e não válido (Sad Path) - Quando eu estiver efetuando o processo de aplicação de monitoria - Eu informo o meu IRA atual - E eu envio o meu histórico atualizado - O IRA informado é o mesmo que está no meu histórico - E o meu IRA é menor a 3,5 - Então a minha aplicação de monitoria tem o IRA inválido. \ No newline at end of file From d4b442b6860db51c9a875e017f8ae4fd9a3d15db Mon Sep 17 00:00:00 2001 From: Raylan Sales Date: Thu, 6 May 2021 10:42:37 -0300 Subject: [PATCH 12/38] Delete validarMatricula.feature --- features/validarMatricula.feature | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 features/validarMatricula.feature diff --git a/features/validarMatricula.feature b/features/validarMatricula.feature deleted file mode 100644 index 0a882815..00000000 --- a/features/validarMatricula.feature +++ /dev/null @@ -1,21 +0,0 @@ -# language: pt -Funcionalidade: Como professor, consigo vizualizar as Matrículas verídicas dos alunos que se inscreveram -na monitoria da minha disciplina. - - Cenário de Fundo: - Dado que o banco possui um aluno e um professor - E que o banco possui um historico do aluno - E que o banco possui a matricula informada pelo aluno - - Cenário: O aluno aplica para monitoria (remunerada ou voluntária) com uma matrícula verídica (Happy Path) - Quando eu estiver efetuando o processo de aplicação de monitoria - Eu informo minha matricula e meu historico atualizado - A matricula informada é a mesma que está no meu histórico - Então a minha aplicação de monitoria tem a matricula válida. - - Cenário: O aluno aplica para a monitoria (remunerada ou voluntária) com uma matrícula incorreta (Sad Path) - Quando eu estiver efetuando o processo de aplicação de monitoria - Eu informo minha matricula e meu historico atualizado - A matricula informada difere da que consta no meu historico - Então a minha aplicação de monitoria tem a matricula invalida. - \ No newline at end of file From 2380cb4e91a1349d5615faf8be6a3591dc58be2c Mon Sep 17 00:00:00 2001 From: Raylan Sales Date: Thu, 6 May 2021 10:42:48 -0300 Subject: [PATCH 13/38] Delete validarMencao.feature --- features/validarMencao.feature | 28 ---------------------------- 1 file changed, 28 deletions(-) delete mode 100644 features/validarMencao.feature diff --git a/features/validarMencao.feature b/features/validarMencao.feature deleted file mode 100644 index 1622ae90..00000000 --- a/features/validarMencao.feature +++ /dev/null @@ -1,28 +0,0 @@ -# language: pt -Funcionalidade: Como professor, consigo vizualizar as menções verídicos dos alunos que se inscreveram na monitoria -da minha disciplina. - - Cenário de Fundo: - Dado que o banco possui um aluno e um professor - E que o banco possui um historico do aluno - E que o banco possui a mencao informada pelo aluno - - Cenário: O aluno aplica para monitoria (remunerada ou voluntária) com a mencao verídica (Happy Path) - Quando eu estiver efetuando o processo de aplicação de monitoria - Eu informo minha mencao na disciplina e meu historico atualizado - A mencao informada é a mesma que está no meu histórico - Então a minha aplicação de monitoria tem a mencao válida. - - Cenário: O aluno aplica para a monitoria (remunerada ou voluntaria) com a mencao inferior a ms (Sad Path) - Quando eu estiver efetuando o processo de aplicação de monitoria - Eu informo minha mencao na disciplina e meu historico atualizado - A mencao informada é inferior a ms - Então a minha aplicação de monitoria é inválida. - - Cenário: O aluno aplica para a monitoria (remunerada ou voluntária) com a mencao incorreta (Sad Path) - Quando eu estiver efetuando o processo de aplicação de monitoria - Eu informo minha mencao na disciplina e meu historico atualizado - A mencao informada difere da que está no meu histórico - Então a minha aplicação de monitoria tem a mencao invalida. - - \ No newline at end of file From d936b16391cf77014d7b4d73534d904a440998ac Mon Sep 17 00:00:00 2001 From: Raylan Sales Date: Thu, 6 May 2021 10:42:59 -0300 Subject: [PATCH 14/38] Delete validarStatusAluno.feature --- features/validarStatusAluno.feature | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 features/validarStatusAluno.feature diff --git a/features/validarStatusAluno.feature b/features/validarStatusAluno.feature deleted file mode 100644 index 53c879ca..00000000 --- a/features/validarStatusAluno.feature +++ /dev/null @@ -1,20 +0,0 @@ -# language: pt -Funcionalidade: Como professor, consigo vizualizar apenas os alunos que aplicaram para monitoria com status válido. - - - Cenário de Fundo: - Dado que o banco possui um aluno e um professor - E que o banco possui um historico do aluno - - Cenário: O aluno aplica para monitoria voluntária ou remunerada com status válido (Happy Path) - Quando eu estiver efetuando o processo de aplicação de monitoria - Eu envio o meu histórico atualizado - O meu status que consta no histórico é "ATIVO" - Então a minha aplicação de monitoria tem o status válido. - - Cenário: O aluno aplica para monitoria voluntária ou remunerada com status inválido (Sad Path) - Quando eu estiver efetuando o processo de aplicação de monitoria - Eu envio o meu histórico atualizado - O meu status que consta no histórico é "INATIVO" - Então a minha aplicação de monitoria tem o status inválido. - \ No newline at end of file From 40ad7e88b278e6a210beaed81fab6323eb87ca54 Mon Sep 17 00:00:00 2001 From: Alice Lima Date: Thu, 6 May 2021 10:43:18 -0300 Subject: [PATCH 15/38] Add files via upload MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Histórico auxiliar para realização de scraping --- app/models/historico_180112601.pdf | Bin 0 -> 24982 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 app/models/historico_180112601.pdf diff --git a/app/models/historico_180112601.pdf b/app/models/historico_180112601.pdf new file mode 100644 index 0000000000000000000000000000000000000000..09b173ff97feba54043e79476faa1583aefe9b2b GIT binary patch literal 24982 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 H7-;?na65IQ literal 0 HcmV?d00001 From 7b6ccb9959cebc72057954a278e5161627bf54eb Mon Sep 17 00:00:00 2001 From: Raylan Sales Date: Thu, 6 May 2021 10:44:51 -0300 Subject: [PATCH 16/38] =?UTF-8?q?Hist=C3=B3rias=20de=20usu=C3=A1rio=20comp?= =?UTF-8?q?rimidas=20em=20um=20s=C3=B3=20arquivo=20e=20altera=C3=A7=C3=B5e?= =?UTF-8?q?s=20feitas=20nas=20mesmas.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- features/scraping.feature | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 features/scraping.feature diff --git a/features/scraping.feature b/features/scraping.feature new file mode 100644 index 00000000..ad2fec91 --- /dev/null +++ b/features/scraping.feature @@ -0,0 +1,38 @@ +# language: pt +Funcionalidade: Como professor, quero identificar se os alunos estão aptos ou não a participar da monitoria. + + Cenário de Fundo: + Dado que o aluno preencheu o formulario de monitoria, e que neste consta seu histórico + +# validarIRA + Cenário: O aluno aplica para monitoria remunerada com um IRA maior ou igual a 3.5 (Happy Path) + Quando o IRA que consta em meu historico é maior ou igual a 3.5 + Então a minha aplicação de monitoria tem o IRA válido + + Cenário: O aluno aplica para monitoria remunerada com um IRA inferior a 3.5 (Sad Path) + Quando meu IRA que consta em meu historico é inferior a 3.5 + Então a minha aplicação de monitoria é recusada + +# validarMatricula + Cenário: O aluno aplica para monitoria (remunerada ou voluntária) com uma matrícula válida (Happy Path) + Quando a matricula extraida do meu historico tem o formato válido + Então a minha aplicação de monitoria tem a matrícula válida + + +# validarStatusAluno + Cenário: O aluno aplica para monitoria voluntária ou remunerada com status válido (Happy Path) + Quando o status que consta no histórico é "ATIVO" + Então a minha aplicação de monitoria tem o status válido + + Cenário: O aluno aplica para monitoria voluntária ou remunerada com status inválido (Sad Path) + Quando o status que consta no histórico é diferente de "ATIVO" + Então a minha aplicação de monitoria é recusada + +# validdarMencao + Cenário: O aluno aplica para monitoria (remunerada ou voluntária) com a mencao igual ou superior a MS (Happy Path) + Quando a mencao extraida do histórico ou superior a MS + Então a minha aplicação de monitoria tem a mencao válida + + Cenário: O aluno aplica para a monitoria (remunerada ou voluntaria) com a mencao inferior a MS (Sad Path) + Quando a mencao extraída do histórico é inferior a MS + Então a minha aplicação de monitoria é recusada \ No newline at end of file From d700c56e2c3cf1e0ca4b303157816b613146ffb7 Mon Sep 17 00:00:00 2001 From: Alice Lima Date: Thu, 6 May 2021 10:46:22 -0300 Subject: [PATCH 17/38] =?UTF-8?q?Adi=C3=A7=C3=A3o=20dos=20cen=C3=A1rios=20?= =?UTF-8?q?do=20cucumber.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- features/step_definitions/scraping_steps.rb | 53 +++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 features/step_definitions/scraping_steps.rb diff --git a/features/step_definitions/scraping_steps.rb b/features/step_definitions/scraping_steps.rb new file mode 100644 index 00000000..76d27c38 --- /dev/null +++ b/features/step_definitions/scraping_steps.rb @@ -0,0 +1,53 @@ +Dado('que o aluno preencheu o formulario de monitoria, e que neste consta seu histórico') do + %{o aluno preenche o formulario e fornece seu historico} +end + +Quando('o IRA que consta em meu historico é maior ou igual a {float}') do |float| + float >= 3.5 +end + +Quando('meu IRA que consta em meu historico é inferior a {float}') do |float| + float < 3.5 +end + +Então('a minha aplicação de monitoria tem o IRA válido') do + %{a função de validação seta a flag do IRA em 1 (válido)} + flag_ira = 1 +end +Quando('a matricula extraida do meu historico tem o formato válido') do + %{a função de validação seta a flag da matrícula em 1 (válida)} +end + +Quando('a matricula extraida do meu historico tem o formato inválido') do + %{a função de validação seta a flag da matrícula em 0 (inválida)} +end + +Então('a minha aplicação de monitoria é recusada') do + %{a função de scraping retorna o resultado 'recusado', pois não foi possível identificar o aluno} +end + +Quando('o status que consta no histórico é {string}') do |string| + string = 'ATIVO' +end + +Então('a minha aplicação de monitoria tem o status válido') do + %{flag des status vale 1} + flag_historico = 1 +end + +Quando('o status que consta no histórico é diferente de {string}') do |string| + string != 'ATIVO' +end + +Quando('a mencao extraida do histórico ou superior a MS') do + %{a funcao reconhece que a mencao é MS ou SS} +end + +Então('a minha aplicação de monitoria tem a mencao válida') do + %{flag da mencao vale 1} + flag_mencao = 1 +end + +Quando('a mencao extraída do histórico é inferior a MS') do + %{a funcao reconhece que a mencao difere de SS e MS} +end \ No newline at end of file From e3ede0d1b7a339d1407d5f29ed7c6f1691ee5a3e Mon Sep 17 00:00:00 2001 From: giovana100 <37371309+giovana100@users.noreply.github.com> Date: Thu, 6 May 2021 10:50:40 -0300 Subject: [PATCH 18/38] Delete monitoria.rb --- app/models/monitoria.rb | 90 ----------------------------------------- 1 file changed, 90 deletions(-) delete mode 100644 app/models/monitoria.rb diff --git a/app/models/monitoria.rb b/app/models/monitoria.rb deleted file mode 100644 index f18e988d..00000000 --- a/app/models/monitoria.rb +++ /dev/null @@ -1,90 +0,0 @@ -class Monitoria < ApplicationRecord - - require 'pdf-reader' - - # after_create :validate_historico - - def self.all_disciplinas - @disciplinas = Array.new - Disciplina.find_each do |d| - @disciplinas << [d.nome, d.cod_disciplina] - end - @disciplinas - end - - # def self.all_turmas - # @turmas = Array.new - # Turma.find_each do |t| - # @turmas << [t.turma, t.id] - # end - # @turmas - # end - - def self.all_status - return [['Pendente', 1], ['Recusado', 2], ['Aceito', 3], ['Encerrado', 4]] - end - validates_presence_of :remuneracao - validates_presence_of :fk_matricula - validates_presence_of :fk_cod_disciplina - validates_presence_of :fk_turmas_id - validates_presence_of :fk_status_monitoria_id - - - # def self.validate_historico - # #passar nome do arquivo, ou o arquivo em si - # return self.scraping('historico_180112601.pdf', :fk_cod_disciplina) - # end - - def self.scraping(filename, disciplina) - flagMatricula=0 - flagStatus=0 - flagIRA=2 - flagMencao=0 - matricula_doc=0 - status_doc=0 - ira_doc=0 - mencao_doc=0 - filename = Rails.root.join('app', 'models',filename).to_s - #le o historico - PDF::Reader.open(filename) do |reader| - reader.pages.each do |page| - lines = page.text.scan(/^.+/) - lines.each do |line| - #adiquire a matricula a partir do historico - if line.include?('Matrícula:') - if flagMatricula == 0 - vet = line.split() - matricula_doc = vet[7] - flagMatricula = 1 - end - end - #adiquire o status a partir do historico - if line.include?('Status:') - if flagStatus == 0 - vet = line.split() - status_doc = vet[1] - flagStatus= 1 - end - end - #adiquire o IRA a partir do historico - if line.include?('IRA') - if flagIRA == 1 - vet = line.split() - ira_doc = vet[1] - end - flagIRA = flagIRA - 1 - - end - #adiquire a mencao a partir do historico - if line.include?(disciplina) - if flagMencao == 0 - vet = line.split() - mencao_doc = vet[-2] - flagMencao = 1 - end - end - end - end - end - end -end \ No newline at end of file From 8d41800bc4c90564a497c64fbe68a480748de6a6 Mon Sep 17 00:00:00 2001 From: giovana100 <37371309+giovana100@users.noreply.github.com> Date: Thu, 6 May 2021 10:51:46 -0300 Subject: [PATCH 19/38] =?UTF-8?q?Modifica=C3=A7=C3=B5es=20no=20arquivo=20m?= =?UTF-8?q?onitoria.rb=20(parte=202)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Foram adicionados condicionais para a validação. --- app/models/monitoria.rb | 129 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 app/models/monitoria.rb diff --git a/app/models/monitoria.rb b/app/models/monitoria.rb new file mode 100644 index 00000000..36d9d410 --- /dev/null +++ b/app/models/monitoria.rb @@ -0,0 +1,129 @@ +class Monitoria < ApplicationRecord + + require 'pdf-reader' + + # after_create :validate_historico + + def self.all_disciplinas + @disciplinas = Array.new + Disciplina.find_each do |d| + @disciplinas << [d.nome, d.cod_disciplina] + end + @disciplinas + end + + # def self.all_turmas + # @turmas = Array.new + # Turma.find_each do |t| + # @turmas << [t.turma, t.id] + # end + # @turmas + # end + + def self.all_status + return [['Pendente', 1], ['Recusado', 2], ['Aceito', 3], ['Encerrado', 4]] + end + validates_presence_of :remuneracao + validates_presence_of :fk_matricula + validates_presence_of :fk_cod_disciplina + validates_presence_of :fk_turmas_id + validates_presence_of :fk_status_monitoria_id + + + # def self.validate_historico + # #passar nome do arquivo, ou o arquivo em si + # return self.scraping('historico_180112601.pdf', :fk_cod_disciplina) + # end + + def self.scraping(filename, disciplina) + flagMatricula=0 + flagStatus=0 + flagIRA=2 + flagMencao=0 + matricula_doc=0 + status_doc=0 + ira_doc=0 + mencao_doc=0 + filename = Rails.root.join('app', 'models',filename).to_s + #le o historico + PDF::Reader.open(filename) do |reader| + reader.pages.each do |page| + lines = page.text.scan(/^.+/) + lines.each do |line| + #adiquire a matricula a partir do historico + if line.include?('Matrícula:') + if flagMatricula == 0 + vet = line.split() + matricula_doc = vet[7] + flagMatricula = 1 + end + end + #adiquire o status a partir do historico + if line.include?('Status:') + if flagStatus == 0 + vet = line.split() + status_doc = vet[1] + flagStatus= 1 + end + end + #adiquire o IRA a partir do historico + if line.include?('IRA') + if flagIRA == 1 + vet = line.split() + ira_doc = vet[1] + end + flagIRA = flagIRA - 1 + + end + #adiquire a mencao a partir do historico + if line.include?(disciplina) + if flagMencao == 0 + vet = line.split() + mencao_doc = vet[-2] + flagMencao = 1 + end + end + end + end + end + + + #validacao de matricula + if matricula_doc.length != 9 or matricula_doc != "#{matricula_doc.to_i}" + self.update(fk_status_monitoria_id: 2) + return 'Recusado pela matricula' + end + + #validacao de mencao + if mencao_doc != "SS" and mencao_doc != "MS" + self.update(fk_status_monitoria_id: 2) + return 'Recusado pela mencao' + end + + + #validacao IRA + if(:remuneracao == 'Remunerado') + if ira_doc.to_i < 3.5 or ira_doc.to_i > 5 + self.update(fk_status_monitoria_id: 2) + return 'Recusado pelo IRA' + end + else + if ira_doc.to_i < 0 or ira_doc.to_i > 5 + self.update(fk_status_monitoria_id: 2) + return 'Recusado pelo IRA2' + end + end + + + #validacao status + if status_doc != "ATIVO" + self.update(fk_status_monitoria_id: 2) + return 'Recusado pelo status' + end + + self.update(fk_status_monitoria_id: 3) + return 'Aceito' + + end + +end From 187bef7b94926a88eb57659d78e38c6f07bab02b Mon Sep 17 00:00:00 2001 From: Vitor Vasconcelos de Oliveira Date: Thu, 6 May 2021 10:53:45 -0300 Subject: [PATCH 20/38] Adicionando pdf-reader ao Gemfile MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Aqui adicionamos a gema pdf-reader para ajudar na leitura dos histórico em formato pdf. --- Gemfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Gemfile b/Gemfile index e97f4c25..b1692fb0 100644 --- a/Gemfile +++ b/Gemfile @@ -3,6 +3,8 @@ git_source(:github) { |repo| "https://github.com/#{repo}.git" } ruby '2.7.2' +# gem to read pdf files +gem 'pdf-reader', '~> 2.4.2' # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' gem 'rails', '~> 5.2.0' # Use postgresql as the database for Active Record From 82a072b86a61f52a690ef23bf5021756f6ee9fd6 Mon Sep 17 00:00:00 2001 From: AlvaroLuz <54986553+AlvaroLuz@users.noreply.github.com> Date: Thu, 6 May 2021 10:58:24 -0300 Subject: [PATCH 21/38] Delete monitoria_spec.rb deletando para substituir --- spec/models/monitoria_spec.rb | 73 ----------------------------------- 1 file changed, 73 deletions(-) delete mode 100644 spec/models/monitoria_spec.rb diff --git a/spec/models/monitoria_spec.rb b/spec/models/monitoria_spec.rb deleted file mode 100644 index ccc93e41..00000000 --- a/spec/models/monitoria_spec.rb +++ /dev/null @@ -1,73 +0,0 @@ -require "rails_helper" - -describe Monitoria do - before :each do - @monitoria = Monitoria.new(:remuneracao => "Remunerado", :fk_matricula => "150132131", :fk_cod_disciplina => 1, :fk_turmas_id => 1, :fk_status_monitoria_id => 1) - end - - context "todos os atributos estao presentes" do - - #Sad Path - it "invalido sem remuneracao" do - @monitoria.remuneracao = "" - expect(@monitoria.save).to be false - end - it "invalido sem matricula" do - @monitoria.fk_matricula = "" - expect(@monitoria.save).to be false - end - it "invalido sem disciplina" do - @monitoria.fk_cod_disciplina = "" - expect(@monitoria.save).to be false - end - it "invalido sem turma" do - @monitoria.fk_turmas_id = "" - expect(@monitoria.save).to be false - end - it "invalido sem situacao" do - @monitoria.fk_status_monitoria_id = "" - expect(@monitoria.save).to be false - end - #Happy Path - it "monitoria com todos os atributos e valida" do - expect(@monitoria.save).to be true - end - end - - context "chave primaria :id e unica" do - before :each do - @clone = Monitoria.new(:id=>1, :remuneracao => "Remunerado", :fk_matricula => "150132131", :fk_cod_disciplina => 2, :fk_turmas_id => 2, :fk_status_monitoria_id => 1) - end - - #Sad Path - it "chave primaria duplicada" do - @monitoria.id = 1 - @clone.save - - expect{@monitoria.save}.to raise_error(ActiveRecord::RecordNotUnique) - end - - #Happy Path - it "chave primaria nao e duplicada" do - @clone.save - - expect{@monitoria.save}.to_not raise_error - end - end - - describe '#all_status' do - it 'retorna array com as situaçoes' do - @status = [['Pendente', 1], ['Recusado', 2], ['Aceito', 3], ['Encerrado', 4]] - expect(Monitoria.all_status).to eq @status - end - end - - describe '#all_disciplinas' do - it 'retorna array com as disciplinas' do - @d1 = FactoryBot.create(:disciplina, cod_disciplina: 1, nome: 'Disciplina I') - @d2 = FactoryBot.create(:disciplina, cod_disciplina: 2, nome: 'Disciplina II') - @d3 = FactoryBot.create(:disciplina, cod_disciplina: 3, nome: 'Disciplina III') - expect(Monitoria.all_disciplinas).to eq([['Disciplina I', 1], ['Disciplina II', 2], ['Disciplina III', 3]]) - end - end -end From 7adaac924144ee77eac9179a4434c62710d2d753 Mon Sep 17 00:00:00 2001 From: AlvaroLuz <54986553+AlvaroLuz@users.noreply.github.com> Date: Thu, 6 May 2021 11:00:02 -0300 Subject: [PATCH 22/38] Add files via upload MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit substituindo o monitoria_spec para implementar os testes da função de scraping implementada em monitoria --- spec/models/monitoria_spec.rb | 86 +++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 spec/models/monitoria_spec.rb diff --git a/spec/models/monitoria_spec.rb b/spec/models/monitoria_spec.rb new file mode 100644 index 00000000..538c0e27 --- /dev/null +++ b/spec/models/monitoria_spec.rb @@ -0,0 +1,86 @@ +require "rails_helper" + + +describe Monitoria do + before :each do + @monitoria = Monitoria.new(:remuneracao => "Remunerado", :fk_matricula => "150132131", :fk_cod_disciplina => 1, :fk_turmas_id => 1, :fk_status_monitoria_id => 1) + end + + context "todos os atributos estao presentes" do + + #Sad Path + it "invalido sem remuneracao" do + @monitoria.remuneracao = "" + expect(@monitoria.save).to be false + end + it "invalido sem matricula" do + @monitoria.fk_matricula = "" + expect(@monitoria.save).to be false + end + it "invalido sem disciplina" do + @monitoria.fk_cod_disciplina = "" + expect(@monitoria.save).to be false + end + it "invalido sem turma" do + @monitoria.fk_turmas_id = "" + expect(@monitoria.save).to be false + end + it "invalido sem situacao" do + @monitoria.fk_status_monitoria_id = "" + expect(@monitoria.save).to be false + end + #Happy Path + it "monitoria com todos os atributos e valida" do + expect(@monitoria.save).to be true + end + end + + context "chave primaria :id e unica" do + before :each do + @clone = Monitoria.new(:id=>1, :remuneracao => "Remunerado", :fk_matricula => "150132131", :fk_cod_disciplina => 2, :fk_turmas_id => 2, :fk_status_monitoria_id => 1) + end + + #Sad Path + it "chave primaria duplicada" do + @monitoria.id = 1 + @clone.save + + expect{@monitoria.save}.to raise_error(ActiveRecord::RecordNotUnique) + end + + #Happy Path + it "chave primaria nao e duplicada" do + @clone.save + + expect{@monitoria.save}.to_not raise_error + end + end + + describe '#all_status' do + it 'retorna array com as situaçoes' do + @status = [['Pendente', 1], ['Recusado', 2], ['Aceito', 3], ['Encerrado', 4]] + expect(Monitoria.all_status).to eq @status + end + end + + describe '#all_disciplinas' do + it 'retorna array com as disciplinas' do + @d1 = FactoryBot.create(:disciplina, cod_disciplina: 1, nome: 'Disciplina I') + @d2 = FactoryBot.create(:disciplina, cod_disciplina: 2, nome: 'Disciplina II') + @d3 = FactoryBot.create(:disciplina, cod_disciplina: 3, nome: 'Disciplina III') + expect(Monitoria.all_disciplinas).to eq([['Disciplina I', 1], ['Disciplina II', 2], ['Disciplina III', 3]]) + end + end + + #testando a funcao scraping, utilizando o historico que adicionamos nos arquivos + describe '#scraping' do + + it 'should make the scraping of the pdf and validate the data' do + expect(Monitoria.scraping('historico_180112601.pdf', 'CIC0002')).to eq('Recusado pela mencao') + end + + it 'should make the scraping of the pdf and validate the data' do + expect(Monitoria.scraping('historico_180112601.pdf', 'CIC0004')).to eq('Aceito') + end + end +end From 2549df04e8fd23fd263adf6f7632651717e026d2 Mon Sep 17 00:00:00 2001 From: AlvaroLuz <54986553+AlvaroLuz@users.noreply.github.com> Date: Thu, 6 May 2021 11:02:28 -0300 Subject: [PATCH 23/38] Update monitoria_spec.rb MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit edit de identação em monitoria_spec --- spec/models/monitoria_spec.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/spec/models/monitoria_spec.rb b/spec/models/monitoria_spec.rb index 538c0e27..6a2051ba 100644 --- a/spec/models/monitoria_spec.rb +++ b/spec/models/monitoria_spec.rb @@ -76,11 +76,11 @@ describe '#scraping' do it 'should make the scraping of the pdf and validate the data' do - expect(Monitoria.scraping('historico_180112601.pdf', 'CIC0002')).to eq('Recusado pela mencao') - end + expect(Monitoria.scraping('historico_180112601.pdf', 'CIC0002')).to eq('Recusado pela mencao') + end - it 'should make the scraping of the pdf and validate the data' do - expect(Monitoria.scraping('historico_180112601.pdf', 'CIC0004')).to eq('Aceito') - end + it 'should make the scraping of the pdf and validate the data' do + expect(Monitoria.scraping('historico_180112601.pdf', 'CIC0004')).to eq('Aceito') + end end end From 7814a98e715ac0d11801c67ab39fbc84c673d824 Mon Sep 17 00:00:00 2001 From: Vitor Vasconcelos de Oliveira Date: Wed, 19 May 2021 20:35:39 -0300 Subject: [PATCH 24/38] Delete monitoria.rb --- app/models/monitoria.rb | 129 ---------------------------------------- 1 file changed, 129 deletions(-) delete mode 100644 app/models/monitoria.rb diff --git a/app/models/monitoria.rb b/app/models/monitoria.rb deleted file mode 100644 index 36d9d410..00000000 --- a/app/models/monitoria.rb +++ /dev/null @@ -1,129 +0,0 @@ -class Monitoria < ApplicationRecord - - require 'pdf-reader' - - # after_create :validate_historico - - def self.all_disciplinas - @disciplinas = Array.new - Disciplina.find_each do |d| - @disciplinas << [d.nome, d.cod_disciplina] - end - @disciplinas - end - - # def self.all_turmas - # @turmas = Array.new - # Turma.find_each do |t| - # @turmas << [t.turma, t.id] - # end - # @turmas - # end - - def self.all_status - return [['Pendente', 1], ['Recusado', 2], ['Aceito', 3], ['Encerrado', 4]] - end - validates_presence_of :remuneracao - validates_presence_of :fk_matricula - validates_presence_of :fk_cod_disciplina - validates_presence_of :fk_turmas_id - validates_presence_of :fk_status_monitoria_id - - - # def self.validate_historico - # #passar nome do arquivo, ou o arquivo em si - # return self.scraping('historico_180112601.pdf', :fk_cod_disciplina) - # end - - def self.scraping(filename, disciplina) - flagMatricula=0 - flagStatus=0 - flagIRA=2 - flagMencao=0 - matricula_doc=0 - status_doc=0 - ira_doc=0 - mencao_doc=0 - filename = Rails.root.join('app', 'models',filename).to_s - #le o historico - PDF::Reader.open(filename) do |reader| - reader.pages.each do |page| - lines = page.text.scan(/^.+/) - lines.each do |line| - #adiquire a matricula a partir do historico - if line.include?('Matrícula:') - if flagMatricula == 0 - vet = line.split() - matricula_doc = vet[7] - flagMatricula = 1 - end - end - #adiquire o status a partir do historico - if line.include?('Status:') - if flagStatus == 0 - vet = line.split() - status_doc = vet[1] - flagStatus= 1 - end - end - #adiquire o IRA a partir do historico - if line.include?('IRA') - if flagIRA == 1 - vet = line.split() - ira_doc = vet[1] - end - flagIRA = flagIRA - 1 - - end - #adiquire a mencao a partir do historico - if line.include?(disciplina) - if flagMencao == 0 - vet = line.split() - mencao_doc = vet[-2] - flagMencao = 1 - end - end - end - end - end - - - #validacao de matricula - if matricula_doc.length != 9 or matricula_doc != "#{matricula_doc.to_i}" - self.update(fk_status_monitoria_id: 2) - return 'Recusado pela matricula' - end - - #validacao de mencao - if mencao_doc != "SS" and mencao_doc != "MS" - self.update(fk_status_monitoria_id: 2) - return 'Recusado pela mencao' - end - - - #validacao IRA - if(:remuneracao == 'Remunerado') - if ira_doc.to_i < 3.5 or ira_doc.to_i > 5 - self.update(fk_status_monitoria_id: 2) - return 'Recusado pelo IRA' - end - else - if ira_doc.to_i < 0 or ira_doc.to_i > 5 - self.update(fk_status_monitoria_id: 2) - return 'Recusado pelo IRA2' - end - end - - - #validacao status - if status_doc != "ATIVO" - self.update(fk_status_monitoria_id: 2) - return 'Recusado pelo status' - end - - self.update(fk_status_monitoria_id: 3) - return 'Aceito' - - end - -end From 5f3e1a36a11566c5072f3cd71a943c134ab9eef8 Mon Sep 17 00:00:00 2001 From: Giovana Pinho Garcia <37371309+giovana100@users.noreply.github.com> Date: Wed, 19 May 2021 20:36:00 -0300 Subject: [PATCH 25/38] Delete monitoria_spec.rb --- spec/models/monitoria_spec.rb | 86 ----------------------------------- 1 file changed, 86 deletions(-) delete mode 100644 spec/models/monitoria_spec.rb diff --git a/spec/models/monitoria_spec.rb b/spec/models/monitoria_spec.rb deleted file mode 100644 index 6a2051ba..00000000 --- a/spec/models/monitoria_spec.rb +++ /dev/null @@ -1,86 +0,0 @@ -require "rails_helper" - - -describe Monitoria do - before :each do - @monitoria = Monitoria.new(:remuneracao => "Remunerado", :fk_matricula => "150132131", :fk_cod_disciplina => 1, :fk_turmas_id => 1, :fk_status_monitoria_id => 1) - end - - context "todos os atributos estao presentes" do - - #Sad Path - it "invalido sem remuneracao" do - @monitoria.remuneracao = "" - expect(@monitoria.save).to be false - end - it "invalido sem matricula" do - @monitoria.fk_matricula = "" - expect(@monitoria.save).to be false - end - it "invalido sem disciplina" do - @monitoria.fk_cod_disciplina = "" - expect(@monitoria.save).to be false - end - it "invalido sem turma" do - @monitoria.fk_turmas_id = "" - expect(@monitoria.save).to be false - end - it "invalido sem situacao" do - @monitoria.fk_status_monitoria_id = "" - expect(@monitoria.save).to be false - end - #Happy Path - it "monitoria com todos os atributos e valida" do - expect(@monitoria.save).to be true - end - end - - context "chave primaria :id e unica" do - before :each do - @clone = Monitoria.new(:id=>1, :remuneracao => "Remunerado", :fk_matricula => "150132131", :fk_cod_disciplina => 2, :fk_turmas_id => 2, :fk_status_monitoria_id => 1) - end - - #Sad Path - it "chave primaria duplicada" do - @monitoria.id = 1 - @clone.save - - expect{@monitoria.save}.to raise_error(ActiveRecord::RecordNotUnique) - end - - #Happy Path - it "chave primaria nao e duplicada" do - @clone.save - - expect{@monitoria.save}.to_not raise_error - end - end - - describe '#all_status' do - it 'retorna array com as situaçoes' do - @status = [['Pendente', 1], ['Recusado', 2], ['Aceito', 3], ['Encerrado', 4]] - expect(Monitoria.all_status).to eq @status - end - end - - describe '#all_disciplinas' do - it 'retorna array com as disciplinas' do - @d1 = FactoryBot.create(:disciplina, cod_disciplina: 1, nome: 'Disciplina I') - @d2 = FactoryBot.create(:disciplina, cod_disciplina: 2, nome: 'Disciplina II') - @d3 = FactoryBot.create(:disciplina, cod_disciplina: 3, nome: 'Disciplina III') - expect(Monitoria.all_disciplinas).to eq([['Disciplina I', 1], ['Disciplina II', 2], ['Disciplina III', 3]]) - end - end - - #testando a funcao scraping, utilizando o historico que adicionamos nos arquivos - describe '#scraping' do - - it 'should make the scraping of the pdf and validate the data' do - expect(Monitoria.scraping('historico_180112601.pdf', 'CIC0002')).to eq('Recusado pela mencao') - end - - it 'should make the scraping of the pdf and validate the data' do - expect(Monitoria.scraping('historico_180112601.pdf', 'CIC0004')).to eq('Aceito') - end - end -end From f6fc93bff5cfbc18c937dca7374a55d6981a375c Mon Sep 17 00:00:00 2001 From: Vitor Vasconcelos de Oliveira Date: Wed, 19 May 2021 20:38:05 -0300 Subject: [PATCH 26/38] Commit do monitoria.rb da sprint 3 refatorado MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Nesse commit modificamos nossos métodos para alcançar uma melhor complexidade --- app/models/monitoria.rb | 105 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 app/models/monitoria.rb diff --git a/app/models/monitoria.rb b/app/models/monitoria.rb new file mode 100644 index 00000000..6fc920c8 --- /dev/null +++ b/app/models/monitoria.rb @@ -0,0 +1,105 @@ +# Aqui está a monitoria +class Monitoria < ApplicationRecord + + require 'pdf-reader' + + + def self.all_disciplinas + @disciplinas = Array.new + Disciplina.find_each do |disp| + @disciplinas << [disp.nome, disp.cod_disciplina] + end + @disciplinas + end + + # def self.all_turmas + # @turmas = Array.new + # Turma.find_each do |t| + # @turmas << [t.turma, t.id] + # end + # @turmas + # end + + def self.all_status + return [['Pendente', 1], ['Recusado', 2], ['Aceito', 3], ['Encerrado', 4]] + end + validates_presence_of :remuneracao + validates_presence_of :fk_matricula + validates_presence_of :fk_cod_disciplina + validates_presence_of :fk_turmas_id + validates_presence_of :fk_status_monitoria_id + + ## + # O metodo scraping faz a raspagem dos dados do historico (status, ira, mencao e matricula) + # + # Recebe como argumentos o nome do arquivo do historico e o codigo da disciplina a ser avaliada + # + # Retorna o resultado retornado pela funcao validacao + + def scraping(filename, disciplina) + filename = Rails.root.join('app', 'models',filename).to_s + #le o historico + linhas_uteis = [] + PDF::Reader.open(filename) do |reader| + reader.pages.each do |page| + lines = page.text.scan(/^.+/) + lines.each do |line| + if line.include?('Matrícula:') or line.include?('Status:') or line.include?('IRA:') or line.include?(disciplina) + linhas_uteis.append(line.split()) + end + end + end + end + + status_doc = linhas_uteis[1][1] + + #validacao status + if status_doc != "ATIVO" + self.update(fk_status_monitoria_id: 2) + return 'Recusado pelo status' + end + + return validacao(linhas_uteis) + end + + ## + # O metodo validacao e invocado pelo metodo historico e valida as informacoes extraidas do historico + # + # Recebe as linhas do historico que contem os dados a serem validados + # + # Retorna uma string que especifica se o aluno pode ser aceito ou se este foi recusado por + # + # alguma irregularidade dos dados de seu historico + + def validacao(linhas_uteis) + matricula_doc = linhas_uteis[0][-1] + ira_doc = linhas_uteis[3][-3] + mencao_doc = linhas_uteis[4][-2] + + self.update(fk_status_monitoria_id: 2) + + #validacao de matricula + if matricula_doc.length != 9 or matricula_doc != "#{matricula_doc.to_i}" + return 'Recusado pela matricula' + end + + #validacao de mencao + if mencao_doc != "SS" and mencao_doc != "MS" + return 'Recusado pela mencao' + end + + #validacao IRA + num_ira = ira_doc.to_f + if num_ira < 0 or num_ira > 5 + return 'Recusado pelo IRA' + end + if(self.remuneracao == 'Remunerado' and num_ira < 3.5) + return 'Recusado pelo IRA para monitoria remunerada' + end + + self.update(fk_status_monitoria_id: 3) + return "Aceito" + + end +end + \ No newline at end of file From 049a1129fed320858ba36dc9fe7c7d7312fa8c09 Mon Sep 17 00:00:00 2001 From: Raylan Sales Date: Wed, 19 May 2021 20:39:59 -0300 Subject: [PATCH 27/38] Delete monitorias_controller.rb --- app/controllers/monitorias_controller.rb | 66 ------------------------ 1 file changed, 66 deletions(-) delete mode 100644 app/controllers/monitorias_controller.rb diff --git a/app/controllers/monitorias_controller.rb b/app/controllers/monitorias_controller.rb deleted file mode 100644 index 14cda9f2..00000000 --- a/app/controllers/monitorias_controller.rb +++ /dev/null @@ -1,66 +0,0 @@ -class MonitoriasController < ApplicationController - before_action :find_monitor, only: [:show] - before_action :find_monitoria, only: [:destroy, :edit, :update] - before_action :logged_in - - def new - @cod_disciplina = params[:turma] - @user = current_user - end - - def create - @monitoria = Monitoria.new(monitoria_params) - valid = true - Monitoria.find_each do |m| - if m.fk_matricula==@monitoria.fk_matricula and m.fk_turmas_id==@monitoria.fk_turmas_id and m.fk_cod_disciplina==@monitoria.fk_cod_disciplina - valid = false - end - end - - if valid and @monitoria.save - redirect_to dashboard_monitorias_path, notice: "Aplicaçao para monitoria enviada com sucesso!" - else - flash[:danger] = "Ocorreu um erro ao cadastrar a monitoria. Nenhuma monitoria cadastrada." - redirect_to dashboard_monitorias_path - end - end - - def show - @alunos = User.find_each - end - - def edit - end - - def update - if @monitoria.update monitoria_params - redirect_to dashboard_monitorias_path, notice: "Situaçao atualizada!" - else - render 'edit' - end - end - - def destroy - @monitoria.destroy - redirect_to dashboard_monitorias_path, notice: "Monitoria removida!" - end - - private - def monitoria_params - params.require(:monitoria).permit(:remuneracao, :fk_matricula, :fk_cod_disciplina, :fk_turmas_id, :descricao_status, :prioridade, :fk_status_monitoria_id) - end - - def find_monitor - @monitoria = Monitoria.where(fk_turmas_id: params[:id]) - end - - def find_monitoria - @monitoria = Monitoria.find(params[:id]) - end - - def logged_in - if !logged_in? - redirect_to new_session_path, notice: "Você precisa estar logado para acessar a pagina Monitoria" - end - end -end From 4c5e2082f7980c2b17e0cbee0c5a219aa28bf9ac Mon Sep 17 00:00:00 2001 From: Giovana Pinho Garcia <37371309+giovana100@users.noreply.github.com> Date: Wed, 19 May 2021 20:40:02 -0300 Subject: [PATCH 28/38] =?UTF-8?q?Atualiza=C3=A7=C3=A3o=20do=20monitoria=5F?= =?UTF-8?q?spec.rb?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adicionamos alguns testes no monitoria_spec.rb para aumentar a cobertura de testes. --- spec/models/monitoria_spec.rb | 104 ++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 spec/models/monitoria_spec.rb diff --git a/spec/models/monitoria_spec.rb b/spec/models/monitoria_spec.rb new file mode 100644 index 00000000..1a803fd1 --- /dev/null +++ b/spec/models/monitoria_spec.rb @@ -0,0 +1,104 @@ +require 'rails_helper' +require 'simplecov' +SimpleCov.start + + +describe Monitoria do + before :each do + @monitoria = Monitoria.new(:remuneracao => "Remunerado", :fk_matricula => "150132131", :fk_cod_disciplina => 1, :fk_turmas_id => 1, :fk_status_monitoria_id => 1) + end + + context "todos os atributos estao presentes" do + + #Sad Path + it "invalido sem remuneracao" do + @monitoria.remuneracao = "" + expect(@monitoria.save).to be false + end + it "invalido sem matricula" do + @monitoria.fk_matricula = "" + expect(@monitoria.save).to be false + end + it "invalido sem disciplina" do + @monitoria.fk_cod_disciplina = "" + expect(@monitoria.save).to be false + end + it "invalido sem turma" do + @monitoria.fk_turmas_id = "" + expect(@monitoria.save).to be false + end + it "invalido sem situacao" do + @monitoria.fk_status_monitoria_id = "" + expect(@monitoria.save).to be false + end + #Happy Path + it "monitoria com todos os atributos e valida" do + expect(@monitoria.save).to be true + end + end + + context "chave primaria :id e unica" do + before :each do + @clone = Monitoria.new(:id=>1, :remuneracao => "Remunerado", :fk_matricula => "150132131", :fk_cod_disciplina => 2, :fk_turmas_id => 2, :fk_status_monitoria_id => 1) + end + + #Sad Path + it "chave primaria duplicada" do + @monitoria.id = 1 + @clone.save + + expect{@monitoria.save}.to raise_error(ActiveRecord::RecordNotUnique) + end + + #Happy Path + it "chave primaria nao e duplicada" do + @clone.save + + expect{@monitoria.save}.to_not raise_error + end + end + + describe '#all_status' do + it 'retorna array com as situaçoes' do + @status = [['Pendente', 1], ['Recusado', 2], ['Aceito', 3], ['Encerrado', 4]] + expect(Monitoria.all_status).to eq @status + end + end + + describe '#all_disciplinas' do + it 'retorna array com as disciplinas' do + @d1 = FactoryBot.create(:disciplina, cod_disciplina: 1, nome: 'Disciplina I') + @d2 = FactoryBot.create(:disciplina, cod_disciplina: 2, nome: 'Disciplina II') + @d3 = FactoryBot.create(:disciplina, cod_disciplina: 3, nome: 'Disciplina III') + expect(Monitoria.all_disciplinas).to eq([['Disciplina I', 1], ['Disciplina II', 2], ['Disciplina III', 3]]) + end + end + + #testando a funcao scraping, utilizando os historicos que adicionamos nos arquivos + describe '#scraping' do + + it 'should make the scraping of the pdf and validate the data' do + expect(@monitoria.scraping('historico_matricula.pdf', 'CIC0004')).to eq('Recusado pela matricula') + end + + it 'should make the scraping of the pdf and validate the data' do + expect(@monitoria.scraping('historico_ira.pdf', 'CIC0004')).to eq('Recusado pelo IRA para monitoria remunerada') + end + + it 'should make the scraping of the pdf and validate the data' do + expect(@monitoria.scraping('historico_igrande.pdf', 'CIC0004')).to eq('Recusado pelo IRA') + end + + it 'should make the scraping of the pdf and validate the data' do + expect(@monitoria.scraping('historico_status.pdf', 'CIC0004')).to eq('Recusado pelo status') + end + + it 'should make the scraping of the pdf and validate the data' do + expect(@monitoria.scraping('historico_180112601.pdf', 'CIC0002')).to eq('Recusado pela mencao') + end + + it 'should make the scraping of the pdf and validate the data' do + expect(@monitoria.scraping('historico_180112601.pdf', 'CIC0004')).to eq('Aceito') + end + end +end From ef10bc8874d9e3881677080eae834f4a2ffc6817 Mon Sep 17 00:00:00 2001 From: Raylan Sales Date: Wed, 19 May 2021 20:40:44 -0300 Subject: [PATCH 29/38] Controller de monitorias atualizada. --- app/controllers/monitorias_controller.rb | 75 ++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 app/controllers/monitorias_controller.rb diff --git a/app/controllers/monitorias_controller.rb b/app/controllers/monitorias_controller.rb new file mode 100644 index 00000000..8433d4ce --- /dev/null +++ b/app/controllers/monitorias_controller.rb @@ -0,0 +1,75 @@ +class MonitoriasController < ApplicationController + before_action :find_monitor, only: [:show] + before_action :find_monitoria, only: [:destroy, :edit, :update, :validate_scraping] + before_action :logged_in + + def new + @cod_disciplina = params[:turma] + @user = current_user + end + + def create + @monitoria = Monitoria.new(monitoria_params) + valid = true + Monitoria.find_each do |m| + if m.fk_matricula==@monitoria.fk_matricula and m.fk_turmas_id==@monitoria.fk_turmas_id and m.fk_cod_disciplina==@monitoria.fk_cod_disciplina + valid = false + end + end + + if valid and @monitoria.save + redirect_to dashboard_monitorias_path, notice: "Aplicaçao para monitoria enviada com sucesso!" + else + flash[:danger] = "Ocorreu um erro ao cadastrar a monitoria. Nenhuma monitoria cadastrada." + redirect_to dashboard_monitorias_path + end + end + + def show + @alunos = User.find_each + end + + def edit + end + + def update + if @monitoria.update monitoria_params + redirect_to dashboard_monitorias_path, notice: "Situaçao atualizada!" + else + render 'edit' + end + end + + def destroy + @monitoria.destroy + redirect_to dashboard_monitorias_path, notice: "Monitoria removida!" + end + + def validate_scraping + if @monitoria.scraping(params[:filename],params[:disciplina]) + redirect_to dashboard_monitorias_path, notice: "Situaçao atualizada!" + else + redirect_to dashboard_monitorias_path, notice: "Erro de validacao" + end + end + + + private + def monitoria_params + params.require(:monitoria).permit(:remuneracao, :fk_matricula, :fk_cod_disciplina, :fk_turmas_id, :descricao_status, :prioridade, :fk_status_monitoria_id) + end + + def find_monitor + @monitoria = Monitoria.where(fk_turmas_id: params[:id]) + end + + def find_monitoria + @monitoria = Monitoria.find(params[:id]) + end + + def logged_in + if !logged_in? + redirect_to new_session_path, notice: "Você precisa estar logado para acessar a pagina Monitoria" + end + end +end From 2fd7a42df30f9743d932fb369117efa9ba6c773f Mon Sep 17 00:00:00 2001 From: Raylan Sales Date: Wed, 19 May 2021 20:41:19 -0300 Subject: [PATCH 30/38] Delete show.html.haml --- app/views/monitorias/show.html.haml | 105 ---------------------------- 1 file changed, 105 deletions(-) delete mode 100644 app/views/monitorias/show.html.haml diff --git a/app/views/monitorias/show.html.haml b/app/views/monitorias/show.html.haml deleted file mode 100644 index 4e810895..00000000 --- a/app/views/monitorias/show.html.haml +++ /dev/null @@ -1,105 +0,0 @@ -%br -%br -.container-fluid - .row - %nav.col-md-2.d-none.d-md-block.bg-light.sidebar{style: 'margin-top: 40px'} - .sidebar-sticky - %ul.nav.flex-column - %li.nav-item - %a.nav-link{href: dashboard_path} - %span{'data-feather': "home"} - Dashboard - %span.sr-only (current) - -if current_user.kind_of? Admin - %li.nav-item - %a.nav-link{href: dashboard_disciplinas_path} - %span{'data-feather': "file"} - Disciplinas - - if current_user.kind_of?(User) || current_user.kind_of?(Professor) - %li.nav-item - %a.nav-link.active{href: dashboard_monitorias_path} - %span{'data-feather': "github"} - Monitoria - - -if current_user.kind_of?(Professor) - %ul.nav.flex-column.mb-2 - %li.nav-item - %a.nav-link{href: dashboard_turmas_path} - %span{'data-feather': "edit"} - Turmas - - -if current_user.kind_of?(Admin) - %ul.nav.flex-column.mb-2 - %li.nav-item - %a.nav-link{href: dashboard_apagar_alunos_path} - %span{'data-feather': "trash"} - Apagar alunos - - -unless current_user.kind_of?(Admin) - %h6.sidebar-heading.d-flex.justify-content-between.align-items-center.px-3.mt-4.mb-1.text-muted - Menu - %span do usuário - %a.d-flex.align-items-center.text-muted{href: "#"} - %span{'data-feather': "plus-circle"} - - -if current_user.kind_of?(User) || current_user.kind_of?(Professor) - %ul.nav.flex-column.mb-2 - %li.nav-item - %a.nav-link{href: dashboard_edit_user_path} - %span{'data-feather': "settings"} - Editar Perfil - - -if current_user.kind_of?(User) - %ul.nav.flex-column.mb-2 - %li.nav-item - %a.nav-link{href: dashboard_dados_bancarios_path} - %span{'data-feather': "dollar-sign"} - Dados Bancários - - %main.col-md-9.ml-sm-auto.col-lg-10.px-4{role: "main"} - .col-1 - .col - -if flash[:danger] - .alert.alert-danger - - flash[:danger] - -if flash[:notice] - .alert.alert-success - = flash[:notice] - - d = Disciplina.find(Turma.find(params[:id]).fk_cod_disciplina) - %h2 Candidatos a monitor - %h4 Disciplina: #{d.nome} - %h5 - Turma: #{Turma.find(params[:id]).turma} - %br - .row - - @alunos.each do |a| - - @monitoria.each do |monitor| - - if monitor.fk_matricula == a.matricula - .col-3 - .card - .card-body - %h5.card-title - Aluno: #{a.name} - %br - Matrícula: #{a.matricula} - %br - Remuneração: #{monitor.remuneracao} - %br - Descrição: #{monitor.descricao_status} - %br - Status: - %b - - if monitor.fk_status_monitoria_id == 1 - Pendente - - elsif monitor.fk_status_monitoria_id == 2 - Rejeitado - - elsif monitor.fk_status_monitoria_id == 3 - Aceito - - else - Encerrado - - if monitor.fk_status_monitoria_id == 3 - %hr - =link_to "Tarefas", tarefas_path(monitoria_id: monitor.id), class: 'btn btn-outline-primary unb-blue btn-block' - %hr - =link_to "Alterar Situaçao", edit_monitoria_path(monitor.id), class: 'btn btn-outline-primary unb-blue btn-block' - .col-1 From 93aeb74ca6933d4fd25f01f6495b543bd9e8aca4 Mon Sep 17 00:00:00 2001 From: Alice Lima Date: Wed, 19 May 2021 20:43:15 -0300 Subject: [PATCH 31/38] =?UTF-8?q?Adi=C3=A7=C3=A3o=20do=20bot=C3=A3o=20de?= =?UTF-8?q?=20valida=C3=A7=C3=A3o=20do=20hist=C3=B3rico.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/monitorias/show.html.haml | 107 ++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 app/views/monitorias/show.html.haml diff --git a/app/views/monitorias/show.html.haml b/app/views/monitorias/show.html.haml new file mode 100644 index 00000000..acabc7d0 --- /dev/null +++ b/app/views/monitorias/show.html.haml @@ -0,0 +1,107 @@ +%br +%br +.container-fluid + .row + %nav.col-md-2.d-none.d-md-block.bg-light.sidebar{style: 'margin-top: 40px'} + .sidebar-sticky + %ul.nav.flex-column + %li.nav-item + %a.nav-link{href: dashboard_path} + %span{'data-feather': "home"} + Dashboard + %span.sr-only (current) + -if current_user.kind_of? Admin + %li.nav-item + %a.nav-link{href: dashboard_disciplinas_path} + %span{'data-feather': "file"} + Disciplinas + - if current_user.kind_of?(User) || current_user.kind_of?(Professor) + %li.nav-item + %a.nav-link.active{href: dashboard_monitorias_path} + %span{'data-feather': "github"} + Monitoria + + -if current_user.kind_of?(Professor) + %ul.nav.flex-column.mb-2 + %li.nav-item + %a.nav-link{href: dashboard_turmas_path} + %span{'data-feather': "edit"} + Turmas + + -if current_user.kind_of?(Admin) + %ul.nav.flex-column.mb-2 + %li.nav-item + %a.nav-link{href: dashboard_apagar_alunos_path} + %span{'data-feather': "trash"} + Apagar alunos + + -unless current_user.kind_of?(Admin) + %h6.sidebar-heading.d-flex.justify-content-between.align-items-center.px-3.mt-4.mb-1.text-muted + Menu + %span do usuário + %a.d-flex.align-items-center.text-muted{href: "#"} + %span{'data-feather': "plus-circle"} + + -if current_user.kind_of?(User) || current_user.kind_of?(Professor) + %ul.nav.flex-column.mb-2 + %li.nav-item + %a.nav-link{href: dashboard_edit_user_path} + %span{'data-feather': "settings"} + Editar Perfil + + -if current_user.kind_of?(User) + %ul.nav.flex-column.mb-2 + %li.nav-item + %a.nav-link{href: dashboard_dados_bancarios_path} + %span{'data-feather': "dollar-sign"} + Dados Bancários + + %main.col-md-9.ml-sm-auto.col-lg-10.px-4{role: "main"} + .col-1 + .col + -if flash[:danger] + .alert.alert-danger + - flash[:danger] + -if flash[:notice] + .alert.alert-success + = flash[:notice] + - d = Disciplina.find(Turma.find(params[:id]).fk_cod_disciplina) + %h2 Candidatos a monitor + %h4 Disciplina: #{d.nome} + %h5 + Turma: #{Turma.find(params[:id]).turma} + %br + .row + - @alunos.each do |a| + - @monitoria.each do |monitor| + - if monitor.fk_matricula == a.matricula + .col-3 + .card + .card-body + %h5.card-title + Aluno: #{a.name} + %br + Matrícula: #{a.matricula} + %br + Remuneração: #{monitor.remuneracao} + %br + Descrição: #{monitor.descricao_status} + %br + Status: + %b + - if monitor.fk_status_monitoria_id == 1 + Pendente + - elsif monitor.fk_status_monitoria_id == 2 + Rejeitado + - elsif monitor.fk_status_monitoria_id == 3 + Aceito + - else + Encerrado + - if monitor.fk_status_monitoria_id == 3 + %hr + =link_to "Tarefas", tarefas_path(monitoria_id: monitor.id), class: 'btn btn-outline-primary unb-blue btn-block' + %hr + =link_to "Alterar Situaçao", edit_monitoria_path(monitor.id), class: 'btn btn-outline-primary unb-blue btn-block' + %hr + =link_to "Validar Monitoria", scraping_historico_path(filename:'historico_180112601.pdf', disciplina: monitor.fk_cod_disciplina, id: monitor.id), class: 'btn btn-outline-primary unb-blue btn-block', method: :put + .col-1 From 3daf2faebe0a96db512b1373e04685dc477e897a Mon Sep 17 00:00:00 2001 From: Alice Lima Date: Wed, 19 May 2021 20:44:01 -0300 Subject: [PATCH 32/38] Delete Gemfile --- Gemfile | 99 --------------------------------------------------------- 1 file changed, 99 deletions(-) delete mode 100644 Gemfile diff --git a/Gemfile b/Gemfile deleted file mode 100644 index b1692fb0..00000000 --- a/Gemfile +++ /dev/null @@ -1,99 +0,0 @@ -source 'https://rubygems.org' -git_source(:github) { |repo| "https://github.com/#{repo}.git" } - -ruby '2.7.2' - -# gem to read pdf files -gem 'pdf-reader', '~> 2.4.2' -# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' -gem 'rails', '~> 5.2.0' -# Use postgresql as the database for Active Record -gem 'pg' -# Use Puma as the app server -gem 'puma', '~> 3.11' -# Use SCSS for stylesheets -gem 'sass-rails', '~> 5.0' -# Use Uglifier as compressor for JavaScript assets -gem 'uglifier', '>= 1.3.0' -# See https://github.com/rails/execjs#readme for more supported runtimes -# gem 'mini_racer', platforms: :ruby - -# Use CoffeeScript for .coffee assets and views -gem 'coffee-rails', '~> 4.2' -# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks -gem 'turbolinks', '~> 5' -# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder -gem 'jbuilder', '~> 2.5' -# Use Redis adapter to run Action Cable in production -# gem 'redis', '~> 4.0' -# Use ActiveModel has_secure_password -gem 'bcrypt', '~> 3.1.7' - - -# Uses HAML templates -gem 'haml' -gem 'haml-rails' -# Use ActiveStorage variant -# gem 'mini_magick', '~> 4.8' - -# Use Capistrano for deployment -# gem 'capistrano-rails', group: :development - -# Reduces boot times through caching; required in config/boot.rb -gem 'bootsnap', '>= 1.1.0', require: false - -# Uses Bootstrap Framework -gem 'bootstrap', '~> 4.3.1' - -# Bootstrap JavaScript depends on jQuery -gem 'jquery-rails' - -# # Uses the Devise Gem for Login/Logout -# gem 'devise' - -# Uses nokogiri gem -gem 'nokogiri' - -group :development, :test do - # Call 'byebug' anywhere in the code to stop execution and get a debugger console - gem 'byebug', platforms: [:mri, :mingw, :x64_mingw] -end -# Uses railroady gem -group :development, :test do - gem 'railroady' -end - - -group :development do - # Access an interactive console on exception pages or by calling 'console' anywhere in the code. - gem 'web-console', '>= 3.3.0' - gem 'listen', '>= 3.0.5', '< 3.2' - # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring - gem 'spring' - gem 'spring-watcher-listen', '~> 2.0.0' -end - -group :test do - # Adds support for Capybara system testing and selenium driver - gem 'cucumber-rails', :require => false - gem 'cucumber-rails-training-wheels' - gem 'database_cleaner' - gem 'capybara', '>= 2.15', '< 4.0' - gem 'launchy' - gem 'selenium-webdriver' - # Easy installation and use of chromedriver to run system tests with Chrome - gem 'webdrivers' - - # Adds the RSpec stuff - gem 'rspec-rails' # RSpec - gem 'guard-rspec' - gem 'rails-controller-testing' - gem 'factory_bot_rails' - gem 'simplecov' - - # Used for metrics - gem 'metric_fu', git: 'https://github.com/metricfu/metric_fu.git' -end - -# Windows does not include zoneinfo files, so bundle the tzinfo-data gem -gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] From ffc43582eb0889922af78c411ca7b39357eed94b Mon Sep 17 00:00:00 2001 From: Alice Lima Date: Wed, 19 May 2021 20:44:22 -0300 Subject: [PATCH 33/38] Add files via upload --- Gemfile | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 Gemfile diff --git a/Gemfile b/Gemfile new file mode 100644 index 00000000..f490b246 --- /dev/null +++ b/Gemfile @@ -0,0 +1,101 @@ +source 'https://rubygems.org' +git_source(:github) { |repo| "https://github.com/#{repo}.git" } + +ruby '2.7.2' + +gem 'cycromatic' + +# gem to read pdf files +gem 'pdf-reader', '~> 2.4.2' +# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' +gem 'rails', '~> 5.2.0' +# Use postgresql as the database for Active Record +gem 'pg' +# Use Puma as the app server +gem 'puma', '~> 3.11' +# Use SCSS for stylesheets +gem 'sass-rails', '~> 5.0' +# Use Uglifier as compressor for JavaScript assets +gem 'uglifier', '>= 1.3.0' +# See https://github.com/rails/execjs#readme for more supported runtimes +# gem 'mini_racer', platforms: :ruby + +# Use CoffeeScript for .coffee assets and views +gem 'coffee-rails', '~> 4.2' +# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks +gem 'turbolinks', '~> 5' +# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder +gem 'jbuilder', '~> 2.5' +# Use Redis adapter to run Action Cable in production +# gem 'redis', '~> 4.0' +# Use ActiveModel has_secure_password +gem 'bcrypt', '~> 3.1.7' + + +# Uses HAML templates +gem 'haml' +gem 'haml-rails' +# Use ActiveStorage variant +# gem 'mini_magick', '~> 4.8' + +# Use Capistrano for deployment +# gem 'capistrano-rails', group: :development + +# Reduces boot times through caching; required in config/boot.rb +gem 'bootsnap', '>= 1.1.0', require: false + +# Uses Bootstrap Framework +gem 'bootstrap', '~> 4.3.1' + +# Bootstrap JavaScript depends on jQuery +gem 'jquery-rails' + +# # Uses the Devise Gem for Login/Logout +# gem 'devise' + +# Uses nokogiri gem +gem 'nokogiri' + +group :development, :test do + # Call 'byebug' anywhere in the code to stop execution and get a debugger console + gem 'byebug', platforms: [:mri, :mingw, :x64_mingw] +end +# Uses railroady gem +group :development, :test do + gem 'railroady' +end + + +group :development do + # Access an interactive console on exception pages or by calling 'console' anywhere in the code. + gem 'web-console', '>= 3.3.0' + gem 'listen', '>= 3.0.5', '< 3.2' + # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring + gem 'spring' + gem 'spring-watcher-listen', '~> 2.0.0' +end + +group :test do + # Adds support for Capybara system testing and selenium driver + gem 'cucumber-rails', :require => false + gem 'cucumber-rails-training-wheels' + gem 'database_cleaner' + gem 'capybara', '>= 2.15', '< 4.0' + gem 'launchy' + gem 'selenium-webdriver' + # Easy installation and use of chromedriver to run system tests with Chrome + gem 'webdrivers' + + # Adds the RSpec stuff + gem 'rspec-rails' # RSpec + gem 'guard-rspec' + gem 'rails-controller-testing' + gem 'factory_bot_rails' + gem 'simplecov' + + # Used for metrics + gem 'metric_fu', git: 'https://github.com/metricfu/metric_fu.git' +end + +# Windows does not include zoneinfo files, so bundle the tzinfo-data gem +gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] From f2f4a44688893c4f4b07641fd3d9e894ed2d8b26 Mon Sep 17 00:00:00 2001 From: AlvaroLuz <54986553+AlvaroLuz@users.noreply.github.com> Date: Wed, 19 May 2021 20:55:35 -0300 Subject: [PATCH 34/38] Add files via upload MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit históricos com informações adulteradas para verificação de validez --- app/models/historico_igrande.pdf | Bin 0 -> 81884 bytes app/models/historico_ira.pdf | Bin 0 -> 81710 bytes app/models/historico_matricula.pdf | Bin 0 -> 81757 bytes app/models/historico_status.pdf | Bin 0 -> 81691 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 app/models/historico_igrande.pdf create mode 100644 app/models/historico_ira.pdf create mode 100644 app/models/historico_matricula.pdf create mode 100644 app/models/historico_status.pdf diff --git a/app/models/historico_igrande.pdf b/app/models/historico_igrande.pdf new file mode 100644 index 0000000000000000000000000000000000000000..72262d9a4a690dfccaff90868f2a733a7b1f4bb1 GIT binary patch literal 81884 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Ⓢ)ge9v1SjkVoEXF0BU^^01JHg*+VO;UEtOc{s>J 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%0Abg$Y@zKj+Q$ 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 KA`6*c?EeA|u}F#l literal 0 HcmV?d00001 From 85f75d93f8d6985a7b55eab4b3372de8c3392f01 Mon Sep 17 00:00:00 2001 From: Alice Lima Date: Thu, 20 May 2021 20:53:46 -0300 Subject: [PATCH 35/38] Delete Monitoria.html --- doc/Monitoria.html | 205 --------------------------------------------- 1 file changed, 205 deletions(-) delete mode 100644 doc/Monitoria.html diff --git a/doc/Monitoria.html b/doc/Monitoria.html deleted file mode 100644 index d3458d1a..00000000 --- a/doc/Monitoria.html +++ /dev/null @@ -1,205 +0,0 @@ - - - - - - -class Monitoria - RDoc Documentation - - - - - - - - - - - - - - - - -

- -
-

- class Monitoria -

- -
- -
- - -
- - - - - - - - - -
-
-

Public Class Methods

-
- - -
- -
- all_disciplinas() - - click to toggle source - -
- - -
- - - - - - -
-
# File app/models/monitoria.rb, line 3
-def self.all_disciplinas
-        @disciplinas = Array.new
-        Disciplina.find_each do |d|
-                @disciplinas << [d.nome, d.cod_disciplina]
-        end
-        @disciplinas
-end
-
- -
- - - - -
- - -
- -
- all_status() - - click to toggle source - -
- - -
- -

def self.all_turmas

- -
@turmas = Array.new
-Turma.find_each do |t|
-                @turmas << [t.turma, t.id]
-end
-@turmas
-
- -

end

- - - - -
-
# File app/models/monitoria.rb, line 19
-def self.all_status
-return [['Pendente', 1], ['Recusado', 2], ['Aceito', 3], ['Encerrado', 4]]
-end
-
- -
- - - - -
- - -
- -
- -
- - - - From d79f5a71de41329b0f4d179cc49782185f62eb1a Mon Sep 17 00:00:00 2001 From: Alice Lima Date: Thu, 20 May 2021 20:55:42 -0300 Subject: [PATCH 36/38] =?UTF-8?q?Documenta=C3=A7=C3=A3o=20rdoc=20do=20scra?= =?UTF-8?q?ping=20adicionada.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/Monitoria.html | 275 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 275 insertions(+) create mode 100644 doc/Monitoria.html diff --git a/doc/Monitoria.html b/doc/Monitoria.html new file mode 100644 index 00000000..2ff6b435 --- /dev/null +++ b/doc/Monitoria.html @@ -0,0 +1,275 @@ + + + + + + +class Monitoria - RDoc Documentation + + + + + + + + + + + + + + + + +
+

+ class Monitoria +

+ +
+ +

Aqui está a monitoria

+ +
+ +
+ + + + + +
+
+

Public Class Methods

+
+ +
+
+ all_disciplinas() + click to toggle source +
+ +
+ + +
+
# File app/models/monitoria.rb, line 7
+def self.all_disciplinas
+        @disciplinas = Array.new
+        Disciplina.find_each do |disp|
+                @disciplinas << [disp.nome, disp.cod_disciplina]
+        end
+        @disciplinas
+end
+
+
+ + +
+ +
+
+ all_status() + click to toggle source +
+ +
+

def self.all_turmas

+ +
@turmas = Array.new
+Turma.find_each do |t|
+                @turmas << [t.turma, t.id]
+end
+@turmas
+
+ +

end

+ +
+
# File app/models/monitoria.rb, line 23
+def self.all_status
+return [['Pendente', 1], ['Recusado', 2], ['Aceito', 3], ['Encerrado', 4]]
+end
+
+
+ + +
+ +
+ +
+
+

Public Instance Methods

+
+ +
+
+ scraping(filename, disciplina) + click to toggle source +
+ +
+

O metodo scraping faz a raspagem dos dados do historico (status, ira, mencao e matricula)

+ +

Recebe como argumentos o nome do arquivo do historico e o codigo da disciplina a ser avaliada Retorna o resultado retornado pela funcao validacao

+ +
+
# File app/models/monitoria.rb, line 38
+      def scraping(filename, disciplina)
+  filename = Rails.root.join('app', 'models',filename).to_s 
+  #le o historico
+  linhas_uteis = []
+  PDF::Reader.open(filename) do |reader|
+    reader.pages.each do |page|
+      lines = page.text.scan(/^.+/)
+      lines.each do |line|
+        if line.include?('Matrícula:') or line.include?('Status:') or line.include?('IRA:') or line.include?(disciplina)
+          linhas_uteis.append(line.split())
+        end
+      end
+    end
+  end
+
+  status_doc = linhas_uteis[1][1]
+
+  #validacao status
+  if status_doc != "ATIVO"
+    self.update(fk_status_monitoria_id: 2)
+    return 'Recusado pelo status'
+  end 
+
+  return validacao(linhas_uteis)
+end
+
+
+ + +
+ +
+
+ validacao(linhas_uteis) + click to toggle source +
+ +
+

O metodo validacao e invocado pelo metodo historico e valida as informacoes extraidas do historico

+ +

Recebe as linhas do historico que contem os dados a serem validados Retorna uma string que especifica se o aluno pode ser aceito ou se este foi recusado por alguma irregularidade dos dados de seu historico

+ +
+
# File app/models/monitoria.rb, line 71
+def validacao(linhas_uteis)
+  matricula_doc = linhas_uteis[0][-1]
+  ira_doc = linhas_uteis[3][-3]
+  mencao_doc = linhas_uteis[4][-2]
+
+  self.update(fk_status_monitoria_id: 2)
+
+  #validacao de matricula
+  if matricula_doc.length != 9 or matricula_doc != "#{matricula_doc.to_i}"
+    return 'Recusado pela matricula'
+  end
+
+  #validacao de mencao
+  if mencao_doc  != "SS" and mencao_doc != "MS" 
+    return 'Recusado pela mencao'
+  end
+
+  #validacao IRA
+  num_ira = ira_doc.to_f
+  if num_ira < 0 or num_ira > 5
+    return 'Recusado pelo IRA'
+  end
+  if(self.remuneracao == 'Remunerado' and num_ira < 3.5)
+    return 'Recusado pelo IRA para monitoria remunerada'
+  end
+
+  self.update(fk_status_monitoria_id: 3)
+  return "Aceito"
+  
+end
+
+
+ + +
+ +
+ +
+
+ + + + From efc50d69161ef35d60c96e8c5e2973c116061c9b Mon Sep 17 00:00:00 2001 From: Alice Lima Date: Thu, 20 May 2021 20:56:34 -0300 Subject: [PATCH 37/38] Delete Monitoria.html --- doc/Monitoria.html | 275 --------------------------------------------- 1 file changed, 275 deletions(-) delete mode 100644 doc/Monitoria.html diff --git a/doc/Monitoria.html b/doc/Monitoria.html deleted file mode 100644 index 2ff6b435..00000000 --- a/doc/Monitoria.html +++ /dev/null @@ -1,275 +0,0 @@ - - - - - - -class Monitoria - RDoc Documentation - - - - - - - - - - - - - - - - -
-

- class Monitoria -

- -
- -

Aqui está a monitoria

- -
- -
- - - - - -
-
-

Public Class Methods

-
- -
-
- all_disciplinas() - click to toggle source -
- -
- - -
-
# File app/models/monitoria.rb, line 7
-def self.all_disciplinas
-        @disciplinas = Array.new
-        Disciplina.find_each do |disp|
-                @disciplinas << [disp.nome, disp.cod_disciplina]
-        end
-        @disciplinas
-end
-
-
- - -
- -
-
- all_status() - click to toggle source -
- -
-

def self.all_turmas

- -
@turmas = Array.new
-Turma.find_each do |t|
-                @turmas << [t.turma, t.id]
-end
-@turmas
-
- -

end

- -
-
# File app/models/monitoria.rb, line 23
-def self.all_status
-return [['Pendente', 1], ['Recusado', 2], ['Aceito', 3], ['Encerrado', 4]]
-end
-
-
- - -
- -
- -
-
-

Public Instance Methods

-
- -
-
- scraping(filename, disciplina) - click to toggle source -
- -
-

O metodo scraping faz a raspagem dos dados do historico (status, ira, mencao e matricula)

- -

Recebe como argumentos o nome do arquivo do historico e o codigo da disciplina a ser avaliada Retorna o resultado retornado pela funcao validacao

- -
-
# File app/models/monitoria.rb, line 38
-      def scraping(filename, disciplina)
-  filename = Rails.root.join('app', 'models',filename).to_s 
-  #le o historico
-  linhas_uteis = []
-  PDF::Reader.open(filename) do |reader|
-    reader.pages.each do |page|
-      lines = page.text.scan(/^.+/)
-      lines.each do |line|
-        if line.include?('Matrícula:') or line.include?('Status:') or line.include?('IRA:') or line.include?(disciplina)
-          linhas_uteis.append(line.split())
-        end
-      end
-    end
-  end
-
-  status_doc = linhas_uteis[1][1]
-
-  #validacao status
-  if status_doc != "ATIVO"
-    self.update(fk_status_monitoria_id: 2)
-    return 'Recusado pelo status'
-  end 
-
-  return validacao(linhas_uteis)
-end
-
-
- - -
- -
-
- validacao(linhas_uteis) - click to toggle source -
- -
-

O metodo validacao e invocado pelo metodo historico e valida as informacoes extraidas do historico

- -

Recebe as linhas do historico que contem os dados a serem validados Retorna uma string que especifica se o aluno pode ser aceito ou se este foi recusado por alguma irregularidade dos dados de seu historico

- -
-
# File app/models/monitoria.rb, line 71
-def validacao(linhas_uteis)
-  matricula_doc = linhas_uteis[0][-1]
-  ira_doc = linhas_uteis[3][-3]
-  mencao_doc = linhas_uteis[4][-2]
-
-  self.update(fk_status_monitoria_id: 2)
-
-  #validacao de matricula
-  if matricula_doc.length != 9 or matricula_doc != "#{matricula_doc.to_i}"
-    return 'Recusado pela matricula'
-  end
-
-  #validacao de mencao
-  if mencao_doc  != "SS" and mencao_doc != "MS" 
-    return 'Recusado pela mencao'
-  end
-
-  #validacao IRA
-  num_ira = ira_doc.to_f
-  if num_ira < 0 or num_ira > 5
-    return 'Recusado pelo IRA'
-  end
-  if(self.remuneracao == 'Remunerado' and num_ira < 3.5)
-    return 'Recusado pelo IRA para monitoria remunerada'
-  end
-
-  self.update(fk_status_monitoria_id: 3)
-  return "Aceito"
-  
-end
-
-
- - -
- -
- -
-
- - - - From 567ac67109d2895e3933312972c4bd0433d072b3 Mon Sep 17 00:00:00 2001 From: Alice Lima Date: Thu, 20 May 2021 20:57:57 -0300 Subject: [PATCH 38/38] =?UTF-8?q?Adi=C3=A7=C3=A3o=20da=20documenta=C3=A7?= =?UTF-8?q?=C3=A3o=20rdoc=20dos=20novos=20m=C3=A9todos.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/Monitoria.html | 281 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 281 insertions(+) create mode 100644 doc/Monitoria.html diff --git a/doc/Monitoria.html b/doc/Monitoria.html new file mode 100644 index 00000000..4e63144d --- /dev/null +++ b/doc/Monitoria.html @@ -0,0 +1,281 @@ + + + + + + +class Monitoria - RDoc Documentation + + + + + + + + + + + + + + + + +
+

+ class Monitoria +

+ +
+ +

Aqui está a monitoria

+ +
+ +
+ + + + + +
+
+

Public Class Methods

+
+ +
+
+ all_disciplinas() + click to toggle source +
+ +
+ + +
+
# File monitoria.rb, line 7
+def self.all_disciplinas
+        @disciplinas = Array.new
+        Disciplina.find_each do |disp|
+                @disciplinas << [disp.nome, disp.cod_disciplina]
+        end
+        @disciplinas
+end
+
+
+ + +
+ +
+
+ all_status() + click to toggle source +
+ +
+

def self.all_turmas

+ +
@turmas = Array.new
+Turma.find_each do |t|
+                @turmas << [t.turma, t.id]
+end
+@turmas
+
+ +

end

+ +
+
# File monitoria.rb, line 23
+def self.all_status
+return [['Pendente', 1], ['Recusado', 2], ['Aceito', 3], ['Encerrado', 4]]
+end
+
+
+ + +
+ +
+ +
+
+

Public Instance Methods

+
+ +
+
+ scraping(filename, disciplina) + click to toggle source +
+ +
+

O metodo scraping faz a raspagem dos dados do historico (status, ira, mencao e matricula)

+ +

Recebe como argumentos o nome do arquivo do historico e o codigo da disciplina a ser avaliada

+ +

Retorna o resultado retornado pela funcao validacao

+ +
+
# File monitoria.rb, line 39
+      def scraping(filename, disciplina)
+  filename = Rails.root.join('app', 'models',filename).to_s 
+  #le o historico
+  linhas_uteis = []
+  PDF::Reader.open(filename) do |reader|
+    reader.pages.each do |page|
+      lines = page.text.scan(/^.+/)
+      lines.each do |line|
+        if line.include?('Matrícula:') or line.include?('Status:') or line.include?('IRA:') or line.include?(disciplina)
+          linhas_uteis.append(line.split())
+        end
+      end
+    end
+  end
+
+  status_doc = linhas_uteis[1][1]
+
+  #validacao status
+  if status_doc != "ATIVO"
+    self.update(fk_status_monitoria_id: 2)
+    return 'Recusado pelo status'
+  end 
+
+  return validacao(linhas_uteis)
+end
+
+
+ + +
+ +
+
+ validacao(linhas_uteis) + click to toggle source +
+ +
+

O metodo validacao e invocado pelo metodo historico e valida as informacoes extraidas do historico

+ +

Recebe as linhas do historico que contem os dados a serem validados

+ +

Retorna uma string que especifica se o aluno pode ser aceito ou se este foi recusado por

+ +

alguma irregularidade dos dados de seu historico

+ +
+
# File monitoria.rb, line 74
+def validacao(linhas_uteis)
+  matricula_doc = linhas_uteis[0][-1]
+  ira_doc = linhas_uteis[3][-3]
+  mencao_doc = linhas_uteis[4][-2]
+
+  self.update(fk_status_monitoria_id: 2)
+
+  #validacao de matricula
+  if matricula_doc.length != 9 or matricula_doc != "#{matricula_doc.to_i}"
+    return 'Recusado pela matricula'
+  end
+
+  #validacao de mencao
+  if mencao_doc  != "SS" and mencao_doc != "MS" 
+    return 'Recusado pela mencao'
+  end
+
+  #validacao IRA
+  num_ira = ira_doc.to_f
+  if num_ira < 0 or num_ira > 5
+    return 'Recusado pelo IRA'
+  end
+  if(self.remuneracao == 'Remunerado' and num_ira < 3.5)
+    return 'Recusado pelo IRA para monitoria remunerada'
+  end
+
+  self.update(fk_status_monitoria_id: 3)
+  return "Aceito"
+  
+end
+
+
+ + +
+ +
+ +
+
+ + + +