=Paper= {{Paper |id=Vol-2185/CtrlE_2018_paper_21 |storemode=property |title=ClassMatch: Agenda Escolar Online(ClassMatch: Online School Agenda) |pdfUrl=https://ceur-ws.org/Vol-2185/CtrlE_2018_paper_21.pdf |volume=Vol-2185 |authors=Vinícius Assis Neves,Carlos Eduardo Paulino Silva,Daniela Costa Terra }} ==ClassMatch: Agenda Escolar Online(ClassMatch: Online School Agenda)== https://ceur-ws.org/Vol-2185/CtrlE_2018_paper_21.pdf
                     ClassMatch: Agenda Escolar Online
     Vinícius Assis Neves, Carlos Eduardo Paulino Silva, Daniela Costa Terra

 Instituto Federal de Educação, Ciência e Tecnologia de Minas Gerais – Campus Ouro
                                        Branco
      viniciusassisneves@yahoo.com.br, carlos.paulino@ifmg.edu.br,
                        daniela.terra@ifmg.edu.br
Abstract. The students of elementary and high school often undergo difficulties
    organizing their school commitments. This ClassMatch aims to facilitate the
    organization of these students. This mobile app was developed, initially, only
    for the Android platform, however expansion plans for iOS and a Web App are
    being considered. This article presents how the application was and is being
    developed, as well the tools used, the social issues, the researches already
    done with beta users and the new features.
Resumo. Os alunos do Ensino Fundamental e Médio encontram, muitas vezes,
    dificuldades para se organizarem com seus compromissos escolares. O
    ClassMatch vem para solucionar esse problema, onde, através da cooperação
    entre os alunos, facilita a organização de todos. O aplicativo mobile foi
    desenvolvido inicialmente apenas para a plataforma Android, mas com planos
    de expansão para iOS e plataforma WEB. Este artigo mostrará como o
    aplicativo foi e está sendo desenvolvido, assim como as ferramentas que
    foram usadas, a questão social envolvida, as pesquisas já feitas com usuários
    betas e os novos requisitos que foram levantados.

1. Introdução
Na carreira acadêmica, os alunos devem sempre procurar manter a melhor organização
possível, já que muitos possuem mais de dez disciplinas e diferentes atividades como
tarefas, provas, trabalhos, entre outros. A falta de organização escolar sempre acarretou
em grave consequência para os alunos como esquecer de fazer os deveres de casa,
estudar para as provas, fazer um trabalho importante ou até mesmo esquecer de levar o
dinheiro para a viagem em turma, por exemplo.
        Outro ponto importante na organização dos estudantes deve ser o horário
escolar. Cada aluno deve ter sempre os horários com fácil acesso, para não esquecerem
de levar o material destinado à cada disciplina. Em algumas instituições de ensino,
como Institutos Federais, existem também atendimentos de professores e monitorias de
alunos. Costuma-se destinar uma hora em um dia fixo por semana para os atendimentos.
Logo, ter uma lista com horários e locais dos atendimentos de cada professor também é
imprescindível.
        Dessa forma, a ideia de se criar uma agenda escolar online como um aplicativo
veio justamente para solucionar estes problemas e outros. Conta com recursos como:
lista de eventos; lista de disciplinas; lista dos alunos; alunos administradores; tabela do
horário escolar; notificações dos próximos eventos; lista de atendimento de professores
e monitores. Um fator importante de se observar é que, ao contrário do caderno, o
                                                                                        562
celular está sempre no bolso dos alunos, com fácil acesso, podendo, portanto, consultar
os eventos, horários e atendimentos onde quer que estejam.
       A integração já feita de todos esses recursos citados possibilitou uma pequena
pesquisa com quatorze usuários beta, o que mostrou uma aprovação de mais de 85%.
Essa pesquisa possibilitou a identificação de alguns problemas e alguns pontos que
podem ser melhorados, como deixar a interface do aplicativo mais intuitiva.
        Existe uma plataforma com funções que se assemelham às do ClassMatch em
alguns pontos: O Google Classroom (Google Classroom, 2018). Portanto, por mais que
alguns recursos são parecidos, a ideia dos aplicativos se diferem muito. O ClassMatch
se destaca em relação à interface, que é mais organizada e simples de se usar, além de
possuir recursos mais selecionados para o objetivo do aplicativo. Enquanto o Google
Classroom foca muito na entrega e avaliação de atividades escolares, o ClassMatch tem
como principal objetivo organizar a rotina escolar dos alunos. Procurando sempre
adequar às suas necessidades, o aplicativo vem cumprindo satisfatoriamente seu papel
onde já foi implementado.

2. Casos de uso




                         Figura 1. Principais casos de uso
A Figura 1 representa de forma simplificada o diagrama com os principais casos de uso
do aplicativo. Observa-se que todos os alunos podem criar uma turma, e, caso esse
aluno crie a turma e entre nela, ele será automaticamente um aluno administrador. Em
uma turma, os alunos sem privilégios de administrador podem apenas visualizar as
informações de disciplinas, horários, eventos, lista de alunos e atendimentos. Já os
alunos administradores podem modificar e gerenciar todas estas informações.
        Como será abordado posteriormente, existem novas funcionalidades que serão
implementadas com o objetivo de possibilitar a própria escola fazer o cadastro de suas
turmas e gerenciá-las, ou até mesmo a integração com o sistema acadêmico. Portanto,
para as turmas de escolas que não aderirem ao projeto, os próprios alunos poderão criar
suas turmas e usufruírem dos recursos fornecidos pelo ClassMatch.


                                                                                   563
3. Interface Gráfica




Figura 2. Da esquerda para a direita: tela do calendário (a); menu do aplicativo (b);
     tela dos alunos (c); tela dos horários (d).
        A Figura 2 ilustra algumas telas do aplicativo. Na Figura 2 (a) encontra-se um
calendário orientador e a lista de eventos das turmas, contendo nome do evento, data,
disciplina e um ícone que representa o tipo do evento (tarefa, prova, trabalho ou outros).
Clicando no evento o usuário visualiza outras informações como horário, local, quem
criou e última modificação. Caso o usuário seja administrador, com um clique longo ele
abre as opções de gerenciamento do evento. Ao clicar em um dos dias do calendário,
exibe para o usuário a opção de filtrar os eventos daquele dia. Caso ele seja
administrador, exibe também a opção de adicionar um evento no dia.
        Na Figura 2 (b), está representada uma parte do menu. Um usuário comum, a
partir do menu, pode alternar entre as telas "Calendário", "Turma", "Disciplinas",
"Horários" e "Atendimentos". Um administrador, como na figura, possui algumas telas
a mais, que são: "Adicionar Disciplina", "Adicionar Horário", "Gerenciar Horário" e
"Adicionar Atendimento", além da tela de adicionar e modificar evento que pode ser
acessada através do calendário.
        A Figura 2 (c) mostra a foto da turma com algumas informações sobre ela e,
abaixo, uma lista dos alunos, tendo ícone cinza os alunos comuns e azul os alunos
administradores. Caso o usuário seja administrador, ele poderá promover a
administrador, rebaixar a aluno ou excluir da turma qualquer outro aluno, incluindo ele
próprio. Na figura em questão, como o usuário é administrador, para cada aluno está
visível os botões de promover/rebaixar a administrador e de excluir o aluno da turma.
Caso o usuário não fosse um administrador da turma, estes botões estariam invisíveis.
        Já a Figura 2 (d) mostra os horários da turma. Essa visão permite apenas
visualização. As funções para gerenciar horários estão disponíveis no menu dos
administradores.
       Além das telas exibidas na Figura 2, o aplicativo conta com as telas: login e
cadastro de alunos; cadastro de turmas; entrar na turma; disciplinas; atendimentos; e as
do administrador para gerenciar as informações da turma.




                                                                                        564
Figura 3. Da esquerda para a direita: tela de cadastro de eventos (a); tela de cadastro de
horários (b); tela de gerenciamento de horários (c); tela de cadastro de disciplinas (d).
        A Figura 3 mostra algumas telas restritas ao administrador. A Figura 3 (a)
apresenta a tela de cadastro e modificação de eventos, onde são preenchidos os dados do
evento: Local, tipo, nome, disciplina, horário inicial, horário final e descrição. A Figura
3 (b) mostra a tela de cadastro de horários, onde se preenche o nome do horário, e seu
intervalo de tempo. Quando o administrador cadastra o horário, ele é levado diretamente
para a tela representada na Figura 3 (c), que é onde o usuário escolhe a disciplina
relacionada àquele horário em cada dia da semana. Para escolher-se a disciplina de cada
horário ou a disciplina referente à um evento, ela deve ser cadastrada anteriormente
através da tela representada pela Figura (d), onde se preenche o nome da disciplina, o
nome do professor, a sigla da disciplina e uma breve descrição.

4. Desenvolvimento de um aplicativo nativo
Um aplicativo nativo é desenvolvido apenas para uma plataforma, possibilitando acesso
irrestrito aos recursos do dispositivo, via API’s nativas, podendo oferecer uma
experiência de usuário mais agradável por serem otimizados para o sistema operacional
(Ilhasoft, 2018). Uma desvantagem é a necessidade de replicar o processo de
desenvolvimento para cada plataforma nativa. Para Android, por exemplo, usando o
framework nativo codificando em Java ou em Kotlin; já para iOS usando a linguagem
Swift ou Objective-C, da Apple.
4.1. Plataformas
Por enquanto, o ClassMatch foi desenvolvido na linguagem Java apenas para Android,
utilizando a IDE Android Studio. Compilado para a versão mais recente do Android
(8.0), o aplicativo tem suporte mínimo à API 15, que representa o Android 4.0.3, o ICE
CREAM SANDWICH MR1. Durante o desenvolvimento do aplicativo, foram
utilizadas para aprendizado a documentação Android Developers (Android Developers,
2018), repositórios no GitHub (GitHub, 2018) e o fórum Stack Overflow (Stack
Overflow, 2018).
        Apesar do consequente maior trabalho por desenvolver dois códigos diferentes,
um para Android e um para iOS (futuramente), a escolha pelo desenvolvimento do
aplicativo nativo em Android ocorreu pelo fato de existirem recursos mais amplos e
pelo conhecimento prévio na linguagem Java e na IDE Android Studio.
4.2. O processo de desenvolvimento
                                                                                       565
Para o desenvolvimento do aplicativo Android, várias API's do Android foram
utilizadas. Dentre elas, podemos destacar os elementos da interface gráfica, os serviços,
que são executados em segundo plano para notificar o usuário dos eventos, as
notificações e o banco de dados interno do celular, manuseado pelo SQLite (API
Android para gerenciamento do banco de dados).
       A base de dados interna do Android é utilizada para armazenar, no smartphone,
dados como os eventos, para que o usuário possa consultar off-line e ser notificado
sobre os eventos próximos mesmo sem conexão com a internet. Como todos os dados
da turma são compartilhados, foi necessária uma base de dados externa. Armazenados
em um banco de dados PostgreSQL, todos os dados de uma turma são acessíveis para
todos os integrantes.
        Inicialmente, o aplicativo fazia a conexão direta com o banco de dados.
Verificou-se que esse método era inseguro, já que, caso um usuário com conhecimentos
específicos realizasse a engenharia reversa do software, ele teria conhecimento dos
dados de acesso ao banco de dados. Para contornar o problema, a metodologia de
consulta, inserção, atualização e remoção no banco de dados foi alterada. Desde então,
toda essa comunicação com o banco de dados foi trocada, utilizando a biblioteca
ksoap2-android, que é uma API para o uso do SOAP (Simple Object Access Protocol).
SOAP é um protocolo de mensagens baseado em XML que, em conjunto com um
protocolo de transporte, como o HTTP, é utilizado para realizar a interação com "Web
Services”, ou serviços da Web (IBM Knowledge Center, 2018).
       No caso do ClassMatch, os Web Services utilizados foram programados na
linguagem PHP e armazenados no mesmo servidor onde se encontra toda a base de
dados. Os serviços são utilizados para obter os dados requeridos, inserir, modificar e
apagar dados, tudo seguindo uma lógica de relacionamentos entre tabelas do banco de
dados pré-estabelecida.
4.3. Segurança
Um dos próximos requisito a ser desenvolvido nos Web Services é relacionado à
segurança da informação. Será adicionado uma autenticação para a utilização de cada
método PHP, buscando impedir usuários que não devem possuir acesso aos dados da
turma de obtê-los.
        Nenhum aluno possui dados pessoais que necessitam de uma segunda camada de
proteção além da senha. Os dados inseridos por cada aluno são apenas nome, login,
senha e sua turma. A senha merece uma atenção especial, já que uma senha é feita para
ser secreta. Para isso, foi utilizada criptografia md5 na senha inserida pelo usuário. Para
deixar ainda mais seguro, essa senha foi criptografada junto ao login, para evitar
métodos que burlam o sistema da criptografia md5.
4.4. Recursos de terceiros
No design, para a montagem dos ícones que compõem a interface gráfica do aplicativo,
foram utilizados ícones com licença gratuita do site FlatIcon (Flat Icon, 2018). O
calendário que se encontra na tela principal do ClassMatch também é um recurso
externo. Ele foi obtido através do GitHub e modificado para melhor adaptação ao
aplicativo. Todos os merecidos créditos estão mencionados na aba "Créditos e
Licenças" do menu do aplicativo.

                                                                                       566
5. Novas funcionalidades e resultados
A pesquisa feita através do Google Forms, onde os usuários responderam algumas
perguntas em uma escala de 1 a 5, foi realizada com 14 alunos de uma turma do curso
Técnico Integrado em Informática do Instituto Federal de Minas Gerais (IFMG), que já
são usuários. A maioria dos alunos avaliou o aplicativo como muito útil, além de
marcarem que recomendariam o software para amigos, entre outros. Um dos alunos
sentiu falta de uma versão para iOS, outro pediu para, assim como os eventos, os
horários da turma também ficarem disponíveis off-line. Um terceiro aluno sugeriu
mostrar a disciplina junto com a notificação do evento. E por último, um quarto aluno
sugeriu que houvesse mais widgets (até agora só existe o widget de eventos, em fase de
testes). A segunda e a terceira sugestão citada já foram desenvolvidas, já as outras duas
serão implementadas futuramente.
        Para adequar-se cada vez mais com as instituições de ensino e procurar ser uma
alternativa não só para os alunos, mas também para os coordenadores e professores,
algumas funcionalidades estão sendo desenvolvidas. Elas permitirão o cadastro de um
administrador geral (um coordenador de ensino, por exemplo) que poderia criar as
turmas de sua escola e administrar todas elas ao mesmo tempos. O professor teria quase
as mesmas funções, mas com menos privilégios. Uma outra possibilidade é integrar o
aplicativo com o sistema escolar para automatizar o processo de inserção de eventos
pelos professores.
         Com o administrador geral tendo uma associação com todas as turmas, ele
poderá enviar avisos urgentes, controlar os alunos administradores de cada turma e
gerenciar também os eventos, horários e atendimentos. Com isso, ele poderá, por
exemplo, mandar um aviso avisando de um dia que não haverá aula por causa de algum
problema interno ou adicionar um evento geral da instituição de ensino no calendário de
todas as turmas. Logo, o ClassMatch seria transformado em um aplicativo passível de
ser utilizado de forma institucionalizada por uma instituição de ensino.
        Apesar de já estar em uso, o aplicativo ainda tem muito a melhorar, como as
versões para iOS e WEB, correção de falhas, implementação de recursos de
acessibilidade, e uma melhor adequação às necessidades das instituições de ensino e
alunos.

6. Vídeo de demonstração




            Figura 4. Vídeo de demonstração do aplicativo no YouTube
O vídeo de demonstração do aplicativo ClassMatch está disponível em:
https://www.youtube.com/watch?v=mRpYm7ACLOc. Nele é apresentado a maioria dos
                                                                                     567
recursos do aplicativo, incluindo o processo de aceitação de um aluno na turma por um
administrador.

Referências
Android Developers. (2018), Documentação Android, https://developer.android.com/.
Flat Icon. (2018), "Free vector icons – SVG, PSD, PNG, EPS & Icon Font. Thousands
   of free icons", https://www.flaticon.com/.
GitHub. (2018), "Repositório de Códigos-fonte", https://github.com/.
Google Classroom. (2018), "Google for Education", https://edu.google.com/intl/pt-
  BR/products/productivity-tools/classroom/.
IBM      Knowledge    Center.    (2018),   "      O  que               é   SOAP?    ",
  https://www.ibm.com/support/knowledgecenter/pt-
  br/SSKM8N_8.0.0/com.ibm.etools.mft.doc/ac55770_.htm.
Ilhasoft. (2018), "O que são os apps nativos e como eles funcionam?",
   http://ilhasoft.com.br/o-que-sao-apps-nativos-e-como-eles-funcionam/.
Stack Overflow. (2018), "Fórum de Programação", https://pt.stackoverflow.com/.




                                                                                   568