Você está na página 1de 69

REDE GONZAGA DE ENSINO SUPERIOR

FACULDADE REGES RIBEIRÃO PRETO


ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

ESTEVÃO RODRIGUES DA SILVA SOUZA


GABRIEL ALISSON ALVES ESPADONI
LUCAS ELIAS DE CAMARGO

GERENCIADOR DE ARQUIVOS INSTITUCIONAIS

RIBEIRÃO PRETO – SP
2021
ESTEVÃO RODRIGUES DA SILVA SOUZA
GABRIEL ALISSON ALVES ESPADONI
LUCAS ELIAS DE CAMARGO

GERENCIADOR DE ARQUIVOS INSTITUCIONAIS

Trabalho de conclusão de curso de


Tecnologia em Análise e Desenvolvimento
de Sistemas apresentado à Faculdade
Reges de Ribeirão Preto, como requisito
parcial para obtenção do título de
Tecnólogo em Análise e Desenvolvimento
de Sistemas.

Orientador: Professor Mestre.Daniel Rosa da Silveira


Co–Orientador: Professor Especialista Hencrer Gonçalves

RIBEIRÃO PRETO – SP
2021
DEDICATÓRIA

Dedico este trabalho aos meus familiares e professores.


AGRADECIMENTOS

Agradeço primeiramente a Deus por me ter concedido a oportunidade de estar


cursando o curso de Análise e Desenvolvimento de Sistemas, por estar me ajudando
e capacitando sobre todo trajeto.
A minha família, por estar apoiando e dando todo suporte necessário para
realizar o curso.
Aos meus amigos, em especial o Jordhan Queluz, nosso amigo, que nos
incentivou a estar finalizando o curso e este projeto.
A todos os professores que se dedicaram a transmitir seus conhecimentos, nos
dando todo apoio e atenção, para que nos tornassem profissionais capacitados para
o mercado de trabalho.
As pessoas que sempre estão do nosso lado, dando uma força para que
continuemos a trajetória.
A Instituição de Ensino Superior Reges, essencial no meu processo de
formação profissional, pela dedicação, e por tudo o que aprendi ao longo dos anos do
curso.
Aos meus colegas de curso, cоm quem convivi intensamente durante os últimos
anos, pelo companheirismo e pela troca de experiências que me permitiram crescer
não só como pessoa, mas também como formando.
“A arte de programar consiste em
organizar e dominar a complexidade.”
(Edsger W. Dijkstra)
RESUMO

Este trabalho de conclusão de curso tem como objetivo desenvolver uma plataforma,
para gerenciar arquivos acadêmicos.
Nesta plataforma, o intuito é ter uma bilbioteca de conhecimento para os alunos, sendo
assim criar uma base de como estruturar e alimentar o seu tcc, com isso iremos
desenvolver uma plataforma onde terá uploads dos arquivos acadêmicos, onde os
alunos poderão fazer a pesquisa de um determinado assunto de seu interesse, ou
mesmo pelo titulo, autor e categoria. O intuito é desenvolver uma interface, simples
para que os alunos entendam como utilizar esta plataforma, feita em C# uma
linguagem de programação, utilizando o framework do identity para fazer a
autenticação. Tendo na plataforma um sistema de login onde poderão ser feitas
configurações de perfis para admin e um usuário comum, os admins terão a
visibilidade de todo o sistema, enquanto os alunos só poderão usar algumas funções,
se o aluno quiser fazer o upload de um arquivo, será solicitado para o admin e o admin
determinará se irá aprovar ou não irá aprovar.
O sistema foi desenvolvido na plataforma .NET utilizando asp.net core com estrutura
mvc, todas as funcionalidades do sistema citadas logo acima estão disponíveis nesta
versão do sistema e poderão ser utilizadas na instituição que será implementada,
funcionalidades poderão ser adicionadas a o logo do tempo dependendo da
necessidade do usuário, a interface também pode ser personalizada de acordo com
a instituição que a plataforma for implantada.

Palavras–chave: Desenvolvimento de sistemas, desenvolvimento web, linguagem


c# .net.
ABSTRACT

This course completion work aims to develop a platform to manage academic files.
In this platform, the intention is to have a knowledge library for the students, thus
creating a base of how to structure and feed their thesis, with this we will develop a
platform where there will be uploads of academic files, where students can search a
particular subject of their interest, or even by title, author and category. The intention
is to develop a simple interface so that the students understand how to use this
platform, made in C#, a programming language, using the identity framework to do
the authentication. Having in the platform a login system where profile configurations
can be made for admin and a common user, the admins will have the visibility of the
whole system, while the students will only be able to use some functions, if the
student wants to upload a file, it will be requested to the admin and the admin will
determine if they will approve or not approve.
The system was developed in the .NET platform using ASP.NET core with MVC
structure, all the system functionalities mentioned above are available in this version
of the system and can be used in the institution that will be implemented,
functionalities can be added over time depending on the user's needs, the interface
can also be customized according to the institution that the platform will be
implemented.

Keywords: Systems development, web development, C# .net language.


Lista de figuras
Figura 1 Instanciando um objeto ............................................................................... 17
Figura 2 criando uma classe ..................................................................................... 18
Figura 3 Criando um novo objeto .............................................................................. 18
Figura 4 referencia do objeto..................................................................................... 18
Figura 5 atribuindo um objeto em outro ..................................................................... 19
Figura 6 Exemplo de sealed ...................................................................................... 20
Figura 7 Herença de classe....................................................................................... 20
Figura 8 implementação com abstract ...................................................................... 20
Figura 9 Herança com abstract ................................................................................. 21
Figura 10 Iniciando um atributo da classe. ................................................................ 21
Figura 11 Validação de nome.................................................................................... 22
Figura 12 Exemplo Utilização das Properties ............................................................ 22
Figura 13 Tipos genéricos. ........................................................................................ 23
Figura 14 Commom Language Runtime ................................................................... 24
Figura 15 Compilador. ............................................................................................... 25
Figura 16 Estrutura MVC ........................................................................................... 27
Figura 17 Relacionamento entre tabelas. .................................................................. 28
Figura 18 Demostração da autenticação do login .................................................... 29
Figura 19 Camadas de classes do Identity ............................................................... 29
Figura 20 Registrando usuário. ................................................................................. 31
Figura 21 Fazendo login ............................................................................................ 32
Figura 22 Tela de login .............................................................................................. 37
Figura 23 Tela de registro ......................................................................................... 38
Figura 24 Imagem de acesso negado ....................................................................... 39
Figura 25 Após o administrador permitir o usuário irá abrir essa tela ....................... 40
Figura 27 Envio de arquivo........................................................................................ 42
Figura 28 Lista biblioteca .......................................................................................... 43
Figura 29 Pesquisa por titulos ................................................................................... 43
Figura 30 - Interface de cadastro de Categoria ......................................................... 44
Figura 31- Interface Editar Categoria ........................................................................ 44
Figura 32 - Interface Detalhes Categoria .................................................................. 45
Figura 33- Interface Listar Categoria. ........................................................................ 46
Figura 34 - Interface Deletar Categoria ..................................................................... 47
Figura 35 - Interface Listar Curso. ............................................................................. 48
Figura 36- Interface de cadastro de Curso ................................................................ 49
Figura 37 - Interface Deletar Curso. .......................................................................... 50
Figura 38 - Interface Detalhes Curso. ....................................................................... 51
Figura 39 - Interface Editar Categoria ....................................................................... 52
Figura 40 Listar tipos de trabalhos ............................................................................ 53
Figura 41 Editar Tipo do Trabalho ............................................................................. 54
Figura 42 Detalhes do Tipo de Trabalho ................................................................... 55
Figura 43 Deletar Tipo de Trabalho........................................................................... 56
Figura 44 Adicionar Tipo de Trabalho ....................................................................... 57
Figura 45 Listar orientadores..................................................................................... 58
Figura 46 Deletar Orientador ..................................................................................... 58
Figura 47 Detalhe do Orientador ............................................................................... 59
Figura 48 Editar Orientador ....................................................................................... 60
Figura 49 Adicionar Orientador ................................................................................. 61
Figura 50 Criar Permissão......................................................................................... 61
Figura 51 Listar Permissão........................................................................................ 62
Figura 52 Adicionar Permissão ao Usuário ............................................................... 63
Figura 53 Listar usuários com permissão .................................................................. 63
Sumário
Lista de figuras ............................................................................................................ 8
Sumário ..................................................................................................................... 10
INTRODUÇÃO ............................................................................................................ 9
1 Fundamentação teórica .......................................................................................... 10
1.1 Formulação da proposta...................................................................................... 10
1.2 Apresentação e fundamentação do problema ..................................................... 11
1.3 Metodologia ......................................................................................................... 11
1.4 Marco teórico ....................................................................................................... 12
1.5 Justificativa ......................................................................................................... 12
1.6 Objetivos geral .................................................................................................... 13
1.7 Objetivos Específicos .......................................................................................... 13
3.0 DESENVOLVIMENTO TÉCNICO ....................................................................... 14
3.1 Difinições de requisitos ....................................................................................... 14
3.2 Desenvolvimento de um WebSite ....................................................................... 15
3.3 Linguagem de programação C# .......................................................................... 16
3.3.1 Framework Asp.net Core para desenvolvimento Web ..................................... 26
3.3.2 Framework Identity ........................................................................................... 28
3.4 Banco de dados .................................................................................................. 32
3.4.2Modelagem do banco do GDA .......................................................................... 34
3.4.3 Microsoft SQL Server ....................................................................................... 36
4 Gerenciador de arquivos Intitucionais .................................................................... 36
4.1Usuário ................................................................................................................. 36
4.2 Professor e Administrador ................................................................................... 44
5 Resultado esperado ............................................................................................... 64
6 Conclusão .............................................................................................................. 64
REFERÊNCIAS ......................................................................................................... 65
INTRODUÇÃO

O crescimento tecnológico apresentado ano após ano, tem como intuito


simplificar e atender todas as necessidades do nosso dia a dia, criando soluções que
nos auxiliam e nos gerem produtividade e ganho de performance e tempo. Criando
uma nova forma de se realizar as atividades cotidianas que a alguns anos erão
simplesmente algo fora da realidade para uma boa parte da população, que seria
apenas ideias longe de se torna real.
Uma das tecnologias de ritmo crescente é a aplicação WEB segundo Luis
Nogueira (2019), desde os primórdios da internet ela proporcionou um salto grande
de inovação tecnológica, tudo isso acessível no seu computador ou smartphone hoje
temos bancos e acesso a diversos conteúdos numa tela, sistemas gerenciadores de
empresas, sites de conteúdos e vídeos, redes sociais e de relacionamentos, graças
aos sistema WEB, ficou muito mais prático e ágil, como na praticidade de realizar uma
compra ou até mesmo vender algo sem sair da sua residência, com apenas alguns
clicks e como num passe de mágica está vendendo algo ou comprando.
Crescimento do uso de Internet durante a pandemia e número de usuários no
Brasil chega a 152 milhões é o que aponta pesquisa do Cetic.br, esse volume de
acesso não foi atoa a pandemia fez que muitas pessoas ficasem em casa, e realizar
atividade que antes eram realizadas de forma presencial e que posteriormente
acontecerem remotamente. Aulas, por exemplo, passaram a ocorrer à distancia assim
como vendas e outros tipos de serviços. “Durante a pandemia a Internet foi mais
demandada em razão da migração de atividades essenciais para o ambiente digital.
O conceito é ter uma plataforma de gerenciador de arquivos mais intuitiva para
os alunos. Sendo assim pensamos na ideia de criar uma plataforma que pode ser
aplicada na REDE GONZAGA DE ENSINO SUPERIOR - REGES, onde os alunos
terão a possibilidade de enviar documentos .

9
1 Fundamentação teórica

1.1 Formulação da proposta

Segundo o Parecer CNE/CES 146/2002, trabalho de conclusão de curso, TCC


se tornou facultativo, ou seja, cabe a instituição de Ensino superior se terá que realizar
essa demanda ou não, para o curso de Análise e Desenvolvimento de Sistemas da
Faculdade Reges, o trabalho acadêmico TCC é um requisito obrigatório, com isso o
estudante logo terá que desenvolver um projeto com embasamento em seu
conhecimento teórico.
Segundo Souza (2020) o trabalho acadêmico TCC é de grande importância
para a composição de aprendizado do estudante, ele vai proporcionar um
aprofundamento teórico sobre o tema escolhido gerando mais conhecimento
agregando ainda mais no currículo do estudante, vai ser um período de leituras que o
estudante vai se dedicar meses em busca de conhecimento para escrever os textos e
artigos e tudo que embarga o projeto.
A proposta do gerenciador de arquivos institucionais, é tornar o processo mais
intuitivo para os acadêmicos deixando algo mais prático auxiliando na busca de
conhecimento científico e proporcionando um referencial teórico bem desenvolvido
pelos próprios estudantes da instituição.
Cada estudante no seu processo de desenvolvimento do trabalho acadêmico
TCC poderá utilizar a plataforma de gerenciador de arquivos institucionais, para desde
escolher seu tema até publicar ele de forma finalizada, assim criando um grande
acervo de arquivos de conclusão de curso que irá beneficiar tanto os acadêmicos que
iram adentrar na instituição e um dia iram realizar o trabalho de conclusão de curso, e
a todos que queiram um aprofundamento teórico sobre determinado assunto.
Feito o estudo na faculdade Reges de ensino superior, observamos que a
plataforma que está sendo usada por eles não é tão intuitiva para os alunos,
observando esse quesito e entendendo que o sistema é complicado de usar para o
usuário, sendo assim desenvolveremos uma plataforma com o intuito de deixar mais
fácil para o usuário usar o sistema.

10
1.2 Apresentação e fundamentação do problema

A instituição Reges tem uma plataforma digital de acervo e de conteúdos


digitais, mas feita a pesquisa de campo na faculdade Reges, observamos que a
plataforma em uso é muito confusa para o aluno, sendo assim observamos e
resolvemos desenvolve uma plataforma com uma interface mais intuitiva para o
usuário.
Segundo (Natalia, 2020)Com a chegada do coronavírus muitas dessas
instituições sofreram para se adaptar aos meios digitais, o aumento de acesso as
plataformas digitais nos últimos anos tem crescendo muito mais na pandemia ela subiu
de uma maneira exorbitante, praticamente tudo que se fazia era por meio de uma
plataforma digital, compras, aulas, reuniões, relacionamentos e trabalhos estavam
sendo feito e até hoje por meios digitais, muitas empresas investiram muito no meio
digital e tem colhido bons frutos disso hoje.
Um dos diagnosticos que o grupo conseguil levantar que a nescessidade de
busca por informações e acervos porem situações diversas proibiram os acessos e
podem vir a proibir no futuro, como uma nova pandemia como coronavirus.
Os alunos tiveram uma dificuldade em conseguir obter informações dos tcc de
outros alunos na faculdade Reges, já que a plataforma que esta em funcionamento na
instituição, só funciona em intranet, pois não tinham acesso a biblioteca fisica da
instituição, por conta que as instituições estavam fechadas, devido ao corona vírus.
Em meio a pandemia as pessoas tiveram que se adaptar, encontrar outros meios para
pesquisar materiais que tinham de facil acesso na biblioteca local fisica.

1.3 Metodologia

11
Este trabalho utilizou o método indutivo que teve como finalidade aplicar o
conhecimento teórico acadêmico, para o desenvolvimento de uma aplicação web que
auxilia o aluno de uma forma mais espontânea.

A pesquisa tem uma abordagem qualitativa relacionada aos dados obtidos,


visto que alguns alunos acabam sendo prejudicados pela falta de entendimento do
sistema usado para armazenar os arquivos, sendo assim com base nos
levantamentos o site para terá uma diretiva ao aluno com o TCC.

1.4 Marco teórico

A plataforma desenvolvida terá o nome GDA (Gerenciador de Arquivos


Institucionais) será uma plataforma web para armazenar arquivos acadêmicos e
auxiliar todos da instituição, a plataforma terá alguns níveis de acesso como
administrador, aluno e professor.

Os alunos e professor irão realizar seu cadastro e um administrador irá aprovar


seu cadastro dando o nível de acesso de acordo com seu nível.

Os trabalhos acadêmicos desenvolvidos pelos alunos, estarão disponíveis na


página biblioteca, tanto para alunos quanto para os não alunos, assim gerando uma
plataforma que agrega conteúdo a todos.

Os alunos assim que enviarem seus arquivos terão a opção de publicar este
arquivo, os arquivos que os alunos enviarem irão passar por uma aprovação do
administrador, o administrador irá baixar este arquivo e verificar o conteúdo. Se estiver
de acordo ele irá aprovar e todos irão ver o trabalho na página biblioteca.

1.5 Justificativa

A fim de ter uma plataforma com uma interface melhor e mais prática para o
aluno, criaremos uma plataforma web e ter em vista a melhora dos procedimentos
realizados dentro do sistema.

12
Observa-se que alguns alunos não recebem o tratamento adequado e a
orientação devida, a proposta é desenvolver uma plataforma que auxilia o discente no
seu desenvolvimento acadêmico, agregando mais conhecimento e auxiliando de
forma objetiva no resultado de seu TCC.

Acredito que esta plataforma terá um bom desempenho visto que irá ajudar
alunos e professores terem uma orientação mais adequada, não necessariamente
este site deverá ser somente de TCC, também poderá fazer uploads de seus próprios
trabalhos acadêmicos, para fins de material de estudo, tanto o professor quanto o
aluno e a universidade irão se beneficiar deste site.

1.6 Objetivos geral

O objetivo geral deste projeto é desenvolver uma plataforma para indexação de


arquivos acadêmicos que pode ser aplicado na REDE GONZAGA DE ENSINO
SUPERIOR - REGES.

1.7 Objetivos Específicos

• Forma de armazenamento de tcc REDE GONZAGA DE


ENSINO SUPERIOR - REGES

• Compreender as tecnologias de desenvolvimento de


sistema para desenvolvimento web.C# asp.net core e
Identy
• Desenvolver plataforma de acervo digital.

2.0 Formas de Armazenamento


Feito o estudo na REDE GONZAGA DE ENSINO SUPERIOR – REGES foi feito
o levantamento de que a forma de armazenamento é local e digital, sendo que o
armazenamento digital só funciona intranet.

13
3.0 DESENVOLVIMENTO TÉCNICO

3.1 Difinições de requisitos

O requisito de desenvolvimento de um software é planejamento que ocorre para


a elaboração de documentos pelo qual a equipe de desenvolvimento ira trabalhar, o
analista ira levantar as funções, objetivos, propriedades, restrições que o sistema ira
ter esta etapa pode ser realizada através de reuniões, relatórios, prototipagem, com
estas informações ele irá registrar com uma linguaguem técnica e encaminhara este
documento para a equipe de desenvolvimento para assim da continuidade ao
processo.
Desta forma o levantamento de requisito é o aspecto do sistema proposto, o
analista deve busca sempre trazer o maior detalhamento e contribuir para a resolução
do problema do cliente ou projeto, e não o que o o arquiteto ou até mesmo o
programador quer, o requisitos possuem aspectos de sempre manter a concordancia
com os clientes e outros envolvidos no projeto, definir metas e fronteiras o que deve
ser incluido e o que não deve, fornecer uma base de custo e tempo para o
desenvolvimento do projeto gerir todas as informações dos processos apresentar ao
cliente uma interface que ele espera para o seu projeto.

• Divisões de usuários que lhes oferecem diferentes permissões.

• Acesso a históricos de dados e informações pelo usuário.

• Inclusão de funções que podem agilizar processos da instituição.

• Possibilidade de inclusão ou inclusão de informações.

O clico de vida do projeto é uma estrutura que segue alguns passos para o
inicio, meio e fim. A divisão de etapas para assim ficar mais pratico de gerir e gerenciar
o projeto, e sempre lembrando que cada passo pode sofrer alterações relevantes que
iram ditar o a forma que as atividades serão desenvolvidas.

14
3.2 Desenvolvimento de um WebSite

Desenvolvimento de uma aplicação web tem varias etapas a serem seguidas


desde as reuniões com o cliente e colaboradores para assim realizar o levantamento
de requisistos necessarios para começar o processo de desenvolvimendo, sempre
atendendo as necessidades do cliente em busca solucionar seus problemas,
independente do ramo ou area da empresa, sendo um varejo ou loja, buscando um
design que atenda as necessidades do cliente, com boas praticas de desenvolvimento
utilizando técnicas de estruturas modernas para uma boa manuntenção no projeto e
para desenvolvimento de novas funções com mais praticidade.
Design/Ux:
Participar ativamente de reuniões com os clientes e colaboradores, pesquisar
definir as ideias com o grupo elaborar projetos e arquiteturas praticas e uteis ao projeto
sempre visando a o acesso do usuario ao projeto desenvolvido aplicar a um prototico
e sempre com melhoras continuas, com boas praticas e metodologias que iram auxiliar
no processo de criação do design do website, aplicando cores, semanticas na
estrutura do código criando algo que ao ser acessado dar sensação de segurança e
praticidade ao usuario, que proporcionem boas experiências, facilidade de uso e que
ajudem a solucionar seus problemas e atingir seus objetivos.
Back End/Arquitetura:
Todo programa segue um conceito uma arquitetura no projeto que adota-se
seguindo a arquitetura MVC que separa por cada classe responsavel por uma coisa
no projeto, deixando assim o código mas fácil para realizar a manuntenção.
Por trás das cortinas seria o backend, aonde ocorre toda a lógica a regra de negocio,
é aplicada para assim dar vida ao projeto, fazendo as funções de cada botão do
website dar vida, como servidores, bancos de dados e Apis são utilizadas no BackEnd,
são como o motor de um automóvel que sem ele o carro para, essa lógica de
pensamento se aplica ao backend se caso a Api dar algum erro de conexão ou algum
método falhar acarreta-se na perda do acesso ao website online pelos usuarios, ou a
perda parcial de apenas um dos módulos.

15
3.3 Linguagem de programação C#

A linguaguem de programação C# é uma linguaguem de alto nivel orientada a


objetos, desenvolvida por Anders Hejsberg e sua equipe de programação em 1999 na
microsoft como parte da plataforma .NET, uma linguaguem fortemente tipada e uma
das mais populares do mundo, utilizada em diversas organizações do mundo, sendo
utilizada praticamente em todos os serviços da microsoft.
O avanço das ferramentas de programação (por exemplo, C++ e Java) e dos
dispositivos eletrônicos inteligentes (por exemplo, telefones celular) criou
problemas e novas exigências. A integração dos componentes de software de
várias linguagens se mostrou dificíl, e problemas de instalação eram comuns,
pois as novas versões de componentes compartilhados eram incompatíveis
com o software antigo. Os desenvolvedores também descobriram que
precisavam de aplicativos baseados na Web que pudessem ser acessados e
usados via Internet. Como resultado da popularidade dos dispositivos
eletrônicos móveis, os desenvolvedores de software perceberam que seus
clientes não estavam mais restritos aos computadores de mesa. Os
desenvolvedores reconheceram a necessidade de software que fosse
acessível para qualquer um e disponível por meio de praticamente qualquer
tipo de dispositivo. Para tratar dessas necessidades, a Microsoft anunciou sua
iniciativa .NET (pronunci-a-se “dot-net”, ou “ponto net” ) e a linguaguem de
programação C# (pronuncia-se “ci-sharp”, ou “cê-sharp”). (DEITEL, H. M. 2003,
p8).

A “.NET como uma linguagem que permite aos programadores migrarem


facilmente para .NET. Essa migração é facilitada graças ao fato de que C# tem raízes
em C, C++ e Java.” (DEITEL, H. M. 2003 p. 8-9)
C# versão 1.0 lançado em 2002 junto ao Visual Studio, foi desenvolvida em
busca de entregar uma linguaguem simples, mordena, que fosse orientanda a objeto.
( MICROSOFT, 2021)
Mas Parecia ter poucos recurso, em comparação as dias de hoje, sem alguns
recursos como metodo assincrono Async utilizar o método assincrono hoje é essencial
para as atividades, se no processamento de alguma informação seja por meio de
aplicação web ou desktop e estiver utilizando um procedimento sincrono, e algum
processo no processamento desta informação for bloqueada todo o aplicativo deve
esperar até realizar aquela tarefa. Utilizando o processo assincrono, o aplicativo não

16
ficara bloqueado naquele processo, podendo prosseguir com outro trabalho que não
dependa daquele recurso até a tarefa causadora terminar.(MICROSOFT, 2021)
O tipo que é definido como class é do tipo referencia, em tempo de execução
quando você declara uma variavel de um tipo de referencia ela se torna Null até que
se crie a intancia dessa classe utilizando o new podendo atribuir a um outro objeto que
seja compativel com a tipo da classe.(MICROSOFT, 2021)

Figura 1 Instanciando um objeto

Imagem Criado pelos Autores

Quando um objeto é criado, um espaço na memoria e alocado para receber


este objeto, a variavel que esta recebendo este objeto é apenas uma referencia para
apontar o local do objeto.(MICROSOFT, 2021)
Para declarar uma classe usamos a palavra-chave class seguida pelo seu
identificador, como mostra o exemplo a seguir.(MICROSOFT, 2021)

17
Figura 2 criando uma classe

Imagem Criado pelos Autores

Uma classe e um objeto são coisas distintas, uma classe define um tipo de
objeto, mais não é um objeto, um objeto é uma entidade concreta que se refere a uma
classe, conhecida como uma instância de uma classe.(MICROSOFT, 2021)
Os objetos podem ser criados utiliando a palavra New passando o nome da
classe a frente, assim:

Figura 3 Criando um novo objeto

Imagem Criado pelos Autores


Quando uma instância de uma classe é criada, uma referência ao
objeto é passada de volta para o programador. No exemplo anterior,
object1 é uma referência a um objeto que é baseado em Customizado.
Esta referência refere-se ao novo objeto, mas não contém os dados
de objeto. Na verdade, você pode criar uma referência de objeto sem
criar um objeto. (MICROSOFT, 2021).

Figura 4 referencia do objeto

18
Imagem Criado pelos Autores
Não recomendamos a criação de referências de objeto, como a
anterior, que não se refere a um objeto, pois a tentativa de acessar um
objeto por meio de uma referência desse tipo falhará em tempo de
execução. No entanto, essa referência pode ser feita para fazer
referência a um objeto, seja criando um novo objeto ou atribuindo-o a
um objeto existente, como este. (MICROSOFT, 2021).

Figura 5 atribuindo um objeto em outro

Imagem Criado pelos Autores

Esse código cria duas referências de objeto que fazem referência ao


mesmo objeto. Portanto, qualquer alteração no objeto feita por meio
de object3 será refletida no usos posteriores de object4. Como os
objetos que são baseados em classes são referenciados por
referência, as classes são conhecidas como tipos de referência.
(MICROSOFT, 2021)
Herança de classe é um fundamento da programação orientada a objetos,
quando criamos uma classe podemos herdar todos os métodos e atributos de uma
outra classe pai, a menos que esta classe seja definida com sealed. (MICROSOFT,
2021)
Quando aplicamos o identificador sealed na classe, impedimos que outras
classes herdem desta classe. Como se a classe X com identifiacdor sealed pode
herdar da classe Y mas a classe Y e outras classes não podem herdar da classe X.
(MICROSOFT, 2021)

19
Figura 6 Exemplo de sealed

Imagem Criado pelos Autores


Para herdar de uma classe, utilizamos a classe base e após dois-pontos e a
classe base especificada que seja a nossa classe derivada como a seguir.

Figura 7 Herença de classe

Imagem Criado pelos Autores


Uma classe em C# só pode herdar diretamente de uma classe base. No entanto,
como uma classe base pode herdar de outra classe, uma classe pode herdar
indiretamente várias classes base. (MICROSOFT, 2021).
Uma classe pode ser declarada abstract, que contem métodos abstratos que
contem a definição de assinatura, mas não tem implementação. A classe abstrata
permite criar classes e membros de class que estão incompletos e devem ser
implementados em classe derivada. (MICROSOFT, 2021).
Para implementar a sua classe como abstract devemos colocar palavra-chave
abstract antes da definicão class como exemplo a seguir. (MICROSOFT, 2021)

Figura 8 implementação com abstract

20
Imagem Criado pelos Autores
Classe abstrata não pode ser instanciada, a finalidade da classe abstrata é
fornecer uma definição base para ser compartilhada por outras classes derivadas.
(MICROSOFT, 2021).
Por exemplo, uma biblioteca de classes pode definir uma classe
abstrata que serve como um parâmetro para muitas de suas funções
e exige que os programadores que usam essa biblioteca forneçam sua
própria implementação da classe, criando uma classe derivada.
(MICROSOFT, 2021).
Como na imagem a seguir, a classe E abstract esta herdando da classe D
utilizando metodo abstrato, as classes derivadas da classe abstrata deve implementar
em seus metodos o tipo abstract.

Figura 9 Herança com abstract

Imagem Criado pelos Autores

As properties são sintaxe que permite os desenvolvedores expressar sua


intenção ao utilizar um metodo, a definição properties é acessada por get e set que
recupera ou atribui um valor a propriedade. (MICROSOFT, 2021).
C# permite atribuir um inicializador diferente na properties, você pode iniciar
com um valor definido após a chave de fechamento, como no exemplo a seguir a
SuaCor seja de cadeia de caracteristicas variz em vez de null .(MICROSOFT, 2021).

Figura 10 Iniciando um atributo da classe.

21
Imagem Criado pelos Autores
Você pode escrever código no acessador set para garantir que os
valores representados por uma propriedade sejam sempre válidos. Por
exemplo, suponha que uma regra para a classe Person é que o nome
não pode ser um espaço em branco. Você escreveria isso da seguinte
maneira. (MICROSOFT, 2021).

Figura 11 Validação de nome.

Imagem Criado pelos Autores


A atribuição do ArgumentException server para tratar o acessador set da
propriedade, retornando um tipo void para tratar erros de exceção, você pode utilizar
essa mesma sintaxe para validação em seu código, em diferentes cenarios para tratar
e validar um acessador de propriedade. (MICROSOFT, 2021).
Utilização das Properties não são apenas em leitura e gravação como vimos
até o momento, podemos utilizar apenas a propriedade de get leitura e privar a
propriedade set de realizar alguma alteração na nossa variavel, com o utilização do
modificador de acesso private, e deixando nossa propiets public como exemplo a
seguir:

Figura 12 Exemplo Utilização das Properties

Imagem Criado pelos Autores

22
As propriedades são uma forma de campos inteligentes em uma
classe ou objeto. De fora do objeto, elas parecem como campos no
objeto. No entanto, as propriedades podem ser implementadas usando
a paleta completa de funcionalidades do C#. Você pode fornecer
validação, acessibilidade diferente, avaliação lenta ou quaisquer
requisitos necessários aos seus cenários. (MICROSOFT, 2021).

Tipos genérico:
Com genéricos, tipos e métodos podem operar em um tipo arbitrário
enquanto ainda mantêm a segurança de tipos. Por exemplo, ter um
List<T> permite que você tenha List<string> ou List<int> e execute
operações fortemente tipadas nessas cadeias de caracteres ou
inteiros enquanto itera neles. O uso de genéricos é melhor do que criar
um ListInt tipo derivado de ArrayList ou de conversão de Object para
cada operação. (MICROSOFT, 2021).

Os tipos genéricos possibilita a criar classes e metodos com um ou mais tipos,


usando o parametro T, assim podemos utilizar no nosso código com sem a chance de
dar algum erro por conversão de tipo. ( MICROSOFT, 2021).

Figura 13 Tipos genéricos.

Imagem Criado pelos Autores

E ainda assim, o C# continuava na tentativa de alcançar o mesmo nível do Java.


O Java já tinha liberado versões que incluíam genéricos e iteradores. Mas isso seria

23
alterado logo, pois as linguagens continuaram a evoluir separadamente.
(MICROSOFT, 2021).

GC Garbage Collection

Garbage Collection é o mecanisco de limpeza e alocação de memoria para


novos objetos criados no sistema, quando executa uma coleta libera memoria dos
aplicativos que não estão mais sendo utilizado, verificando a raiz de um aplicativo
variaveis local na pilha de um thread, registro de cpu. (MICROSOFT, 2021).
O coletor de lixo considera o lixo dos objetos inacessíveis e libera a
memória alocada para eles. Durante uma coleta, o coletor de lixo
examina o heap gerenciado, procurando os blocos de espaço de
endereço ocupados por objetos inacessíveis. Na medida em que
descobre cada objeto inacessível, ele usa uma função de cópia de
memória para compactar os objetos acessíveis na memória, liberando
os blocos de espaços de endereço alocados para objetos inacessíveis.
Uma vez que a memória dos objetos acessíveis tenha sido
compactada, o coletor de lixo faz as correções necessárias no ponteiro
de forma que as raízes do aplicativo apontem para os objetos em seus
novos locais. Ele também posiciona o ponteiro do heap gerenciado
após o último objeto acessível. (MICROFOST, 2021).

Heap gerenciado após o GC(Garbage Collection) é iniciado pelo CLR


(Commom Language RunTime), ele aloca alguns segmentos na memoria para
gerenciar e armazenar o objeto criado, esse processo chama de heap gerenciado, a
um heap gerenciado para cada processo gerenciado e utiliza todos threads no
processo para alocar memoria para o objeto. (MICROSOFT, 2021).

Figura 14 Commom Language Runtime

Fonte (MICROSOFT, 2021).

24
Para a maioria dos objetos que o aplicativo cria, você pode confiar na coleta de
lixo para executar automaticamente as tarefas de gerenciamento de memória
necessárias. Entretanto, recursos não gerenciados requerem limpeza explícita, como
um identificador de arquivo, um identificador de janela ou uma conexão de rede.
(MICROSOFT, 2021).
Quando você cria um objeto que encapsula um recurso não
gerenciado, é recomendável que você forneça o código necessário
para limpar o recurso não gerenciado em um Dispose método público.
Ao fornecer um método Dispose, você permite que usuários do seu
objeto liberem, explicitamente, sua memória quando terminarem o
objeto. Ao usar um objeto que encapsula um recurso não gerenciado,
certifique-se de chamar Dispose conforme necessário. (MICROSOFT,
2021).

O c# é gerenciado por um RunTime que no caso do C# o gerenciamento é feito


pelo CLR(Common Language RunTime), o assembly é carregado na CLR, que
executa a campilação JIT(just-in-time) que converte o código em instruções de nivel
de linguaguem de maquina.

Figura 15 Compilador.

Imagem criada por Celso Kitamura

25
3.3.1 Framework Asp.net Core para desenvolvimento Web

Asp.net core é um framework muito utilizado no mercado, foi desenvolvido para


ser de alta performace, com sua biblioteca open-source podendo qualquer pessoa
criar novas funcionalidades para que a comunidade usufrua, com o desenvolvimento
para cross-plataformas e criação de aplicações modernas, conectando tudo a nuvem.
Desenvolvido em 2016, mesmo sendo um sucessor do ASP.NET, o ASP.NET
Core foi criado totalmente do zero, para que não precisasse se preocupar com código
legado permitindo assim seguir o padrão de desenvolvimento de websites com
recursos modernos. Com o Asp.net CORE é modular, com recusos que podem ser
baixados via pacote Nuget, oque permite que a plataforma fosse mais performatica
que as antecessoras. Não necessitando de uma IDE para que seja desenvolvida,
podendo ser desenvolvido a partir de linha de comando. com flexibilidade de migração
para outras plataformas sem a perda de nenhum recurso e funcionalidade.
Utilizando Asp.net Core você pode desenvolver services web apps IoT e mobile,
com sua utilização no windows, mac ou linux. as suas caracteristicas são:
Multi-Plataformas: tem varias funcionalidades para e recursos que podem ser
utilizados em outras plataformas sem a necessidade de alteração, podendo
desenvolver sistemas e bibliotecas para outros sistemas sem a necessidade de
modificação.
Open-Source: é um dos muitos projetos que tem no mercado que está na
supervisão da .NET, está disponivel para download e supervisão da comunidade seu
código no GITHUB, deixando o processo mais claro e transparente a todos com uma
comunidade bem ativa.
Asp.net core oferece muitos recursos que ajudam no desenvolvimento de APIS
Web e websites"aplicativos web", com padão MVC ajuda deixar o projeto mais clean
e com uma facil manuntenção, com recusos Razer pages que é o modelo de
programção baseado em paginas que torna a criação da Web UI mais facil e produtiva,
com uso das tags helpers habilitado no código do lado do servidor backend para
criação e redenrização de elementos HTML em arquivo Razor, com model binding
mapeando automaticamente os dados das solicitações HTTP para os parâmetros do
método de ação, utilizando model validation exeuta automaticamente a validação do
lado do cliente do servidor.

26
Asp.net core é uma iniciativa da Microsoft de dar liberdade para comunidade a
utilizar o .NET framewortk para levar a todos os criadores de conteúdo um framkework
open source e bem poderoso.
O Asp.net core MVC é uma estrutura avançada para criação de aplicativos Web
APIs usando o padrão de design Model-View-Controller.(Microsoft, 2021).

Figura 16 Estrutura MVC

Fonte (Microsoft, 2021)

A model vai representar o estado do aplicativo, e é nela que o desenvolvedor


irá aplicar a lógica de negócios ou a operação que deve ser executada. A lógica de
negócios deve ser encapsulada no modelo, juntamente com qualquer lógica de
implementação, para persistir o estado tanto no aplicativo quanto no banco de dados.
Um grande modelo utilizado na política de negócios é a cardinalidade, teremos como
parâmetro Departamento e empregados vide a imagem abaixo, em que
Departamentos possui no mínimo 1 e no máximo N, que é no mínimo 1 empregado
a muitos empregados, já o empregados possui 1:1, ou seja empregado possui apenas
1 departamento.

27
Figura 17 Relacionamento entre tabelas.

Imagem criada por IMD Metrópole Digital


A View é o front-end do projeto onde vai ser exibido ao usuário, neles são
utilizado o Razor mecanismo de exibição para inserir o código .NET na marcação
HTML.
A Controller são os componente que cuidam da interação do usuário,
trabalhando junto com a Model, e seleciona a View a ser renderizada, nelas também
será estipulado o que o usuário pode ou não acessar, e controla a entrada e a saida
de dados no banco,daí seu nome controller, ele controla como o aplicativo responde
a determinada solicitação.

3.3.2 Framework Identity

Asp.net Core Identity é uma api que possibilita adicionar sistema de


autenticação na aplicação da plataforma. Os usuários podem criar uma conta, realizar
o login, podendo ter várias possibilidades de autenticação, sendo capaz de utilizar
desde Google, Facebook, conta da Microsoft. como autenticação via AD, etc..
Utilizando o Identy é possível realizar algumas alterações, tal como o tipo do
campo, nome do mesmo, . Portanto, é um excelente framework para gerar a
segurança do sistema, havendo suporte a diversos bancos relacionais e não-
relacionais. Desse modo, usando as roles pode-se criar niveis de acesso como “User”
e “Admin”. Sendo assim, o administrador do programa poderá escolher quais serão as
funções que cada usuário obtém no sistema. Outrossim, perrmite-se atribuir
aplicações, por exemplo, adicionar um arquivo e há possibilidade de delegar
permissões de uso da plataforma. (ANDERS R, 2021)
Identity normalmente, é configurado usando um banco de dados SQL Server
para armazenar nomes de usuário, senhas e de perfil. como alternativa, outro

28
armazenamento persistente pode ser usado, por exemplo, a tabela do Azure
Armazenamento. (ANDERS R, 2021).

Figura 18 Demostração da autenticação do login.

Principais Classes:

Figura 19 Camadas de classes do Identity

29
Imagem Criado pelos Autores

Application: Podemos utilizar o Identity em diversos templates, ou seja, ele não é


limitado ao MVC, pois não é apenas uma tecnologia e sim um conjunto de tecnologias,
como, por exemplo: EF e o Owin.
Managers: Classes fornecidas pelo Identity para manipular o usuário e suas
permissões no ambiente. Para este fim, ela deverá chamar antes a camada Store.
Stores: Classes fornecidas pelo Identity e pertencem a um nível mais baixo que o
Manager. Nela pode-se configurar o modo com que os dados serão armazenados.
Data sources: É o lugar onde os dados serão armazenados, como por exemplo:
MySQL, SQL Server, entre outros.

3.3.2.1 Registrar usuário

Quando um usuário clica no botão registrar na Register página, a


RegisterModel.OnPostAsync ação é invocada. O usuário é criado por createasync no
_userManager objeto:

30
Figura 20 Registrando usuário.

Imagem criada pelos autores.

3.3.2.2 Fazer logon


O formulário de logon é exibido quando:
O link logon está selecionado.
Um usuário tenta acessar uma página restrita que não tem autorização para
acessar ou quando elas não foram autenticadas pelo sistema.
Quando o formulário na página de logon é enviado, a OnPostAsync ação é
chamada. PasswordSignInAsync é chamado no _signInManager objeto.(Microsoft, 2021)

31
Figura 21 Fazendo login

Imagem Criado pelos Autores

3.4 Banco de dados

Segundo Elmasri e Navathe (2018, p.3), banco de dados e sistemas de banco


de dados são um componente essencial da vida na sociedade moderna; hoje a maioria
de nós encontra diariamente com situações que envolve uma consultas ou até mesmo
uma inserção no banco de dados, como por exemplo, o usuário indo até o banco retirar
um extrato da sua conta bancaria, acessando o seu facebook, um mercadinho com
sistema de compras que automaticamente atualiza o banco de dados dando baixa no
estoque.
Segundo Elmasri e Navathe(2018, p.3), essas interações são exemplos do que
podemos chamar de aplicações de banco de dados tradicionais, onde a maior parte
das informações armazenadas e acessada é textual ou numérica. Nos ultimos anos,
os avanços tecnológicos levaram a novas e interessantes aplicações dos sistemas de
banco de dados. A proliferação de websites de redes sociais, como Facebook e twitter,
dentre muitos outros, exigiram a criação de bancos de dados imensos, que

32
armazenam dados não traddicionas como, postagens, tuítes, imagens e vídeos. Esses
novos tipos de sistemas de banco de dados são chamados de big data e foram criados
para gerenciar dados para aplicações de mídias socias.
Segundo (Elmasri, R ; Navathe, S, 2018,p.5), um sistema de
gerenciamento de banco de dados(SGBD) é um sistema
computadorizado que permite que os usuários criem e mantenham um
banco de dados. O SGBD é um sistema de software de uso geral que
facilita o processo de definição, construção, manipulação e
compartilhamento de banco de dados entre diversos usuários e
aplicações. A definição de um banco de dados envolver especificar os
tipos de dados, as estruturas e restrições dos daddos a serem
armazenados.
Segundo (Elmasri, R ; Navathe, S, 2018,p.6), A manipulação de um banco de
dados, inclui funções como consultas, para recuperar dados especifícos, atualzição,
para fazer alterações nos dados, e geração de relatórios a partir dos dados obtidos,
também podemos fazer o compatilhamento para que vários usuários e programas
acessem o banco de dados enviando consultas simultaneamente.

3.4.1Modelo de dados

Segundo (Silberschatz, A, , A.;KOR,H.F.;SUDARSHAN, S. 2006. p5), Apoiando


a estrutura de um banco de dados está o modelo de dados: uma coleção de
ferramentas conceituais para descrever dados, relações de dados, semântica de
dados e restrições de consistência.
Modelo relacional. O modelo relacional usa uma coleção de tabelas para
representar os dados e as relações entre eles. Cada tabela possui diversas colunas,
e cada coluna possui um nome único. (SILBERSCHATZ, A.;KOR,H.F.;SUDARSHAN,
S. 2006. p5).
Modelo de entidade/relacionamento. O modelo de entidade/relacionamento (E-
R) é baseado em uma percepção de um mundo real que consiste em uma coleção de
objetos básicos, chamados entidade, e as relações entre esses objetos. Uma entidade
é uma “coisa” ou “objeto” no mundo real que é distinguível dos outros objetos
(SILBERSCHATZ, A.;KOR,H.F.;SUDARSHAN, S. 2006. p5).

33
Modelo de dados baseado em objeto. O modelo de dados orientado a objeto é
outro modelo que tem recebido cada vez mais atenção. Ele pode ser visto como uma
extensão ao modelo E-R com noções de encapsulamento, métodos (funções) e
identidadedeobjeto. (SILBERSCHATZ, A.;KOR,H.F.;SUDARSHAN, S. 2006 p5).
Modelo de dados semi-estruturado. O modelo de dados semi-estruturado
permite a especificação dos dados em que itens de dados individuais do mesmo tipo
possam ter diferentes conjuntos de atributos.(SILBERSCHATZ,
A.;KOR,H.F.;SUDARSHAN, S. 2006, p6).

3.4.2Modelagem do banco do GDA

Nesse tópico vamos fazer a modelagem do projeto gerenciador de arquivos.

Segundo e Navathe ( Elmasri, 2018. p 56) as metodologias de modelagem de


objeto, como a “Unified Modleing Language(UML – Linguagem de Modelagem
Unificada)”, estão se tornando cada vez mais populares no projeto de softwares e de
banco de dados.
Visto isso, montamos a modelo entidade relacionamento, que podem ser visto
na figura abaixo.

34
Esclarecendo a figura podemos ver as entidades com seus atributos
declarados. Sendo as id das entidades e objetos, a chave primária. Podemos ver
também as chaves estrangeiras em algumas entidades, como no caso do FileModel
que recebe as chaves estrangeiras: professorid, tipoTrabalhoid, cartegoriaid, e
Usuarioid.
Na parte de cardinalidade podemos ver que a ocorrência é sempre de um
para muitos, apenas no caso do AspNetUserRoles que ocorre a cardinalidade de
muitos para muitos.

35
3.4.3 Microsoft SQL Server

Segundo (Sandra Puga, p 169), Durante o desenvolvimento dos bancos de


dados relacionais, foram criadas linguagens destinadas a sua manipulação. No inicio
dos 1970, o departamento de pesquisas IBM desenvolveu a linguagem SQL, como
forma de interface para o sistema de banco de dados relacional, denominada
SYSTEM R. Inicialmente, as SQL foi chamada de SEQUEL(Structured English Query
Language). Em 1997, essa nomenclatura foi revista e passou a ser chamada
definitivamente de SQL(Structured Query Language).

Em decorrência da padronização, a SQL apresenta algumas características


que merecem destaque:

• As instruções padronizadas seguem a mesma nomenclatura e formato


para o diferentes tipos de SGBD, respeitando a particularidade de cada um.
• A migração de um SGBD para outro não requer grande mudanças.
• Quando ocorre a migração de um SGBD, a adaptação dos profissionais
é facilitada, com redução de tempo e de custos para treinamentos, pois as instruções
possuem nomes e funcionalidades iguais.
• Portabilidade entre plataformas.

4 Gerenciador de arquivos Intitucionais

4.1Usuário

Inicialmente o usuário irá aparecer na tela de login, mas para iniciar no sistema o
terá que fazer o seu cadastro:

36
Figura 22 Tela de login

Aparencendo esta tela clica em cadastra-se para realizar o cadastro:

37
Figura 23 Tela de registro

Imagem Criado pelos Autores

Como o usuário ainda não tem nenhuma permissão aparecerá essa mensagem
para ele, ele só irá conseguir fazer algo no sistema quando o administrador colocar

38
ele dentro de uma permissão.

Figura 24 Imagem de acesso negado:

Imagem Criado pelos Autores

39
Figura 25 Após o administrador permitir o usuário irá abrir essa tela:

Imagem Criado pelos Autores.


Nesta tela terá as funções de adicionar o arquivo, visualizar a bilbioteca, pesquisar
por autor, descrição e por titulo.

40
Clicando em envio de arquivo aparecerá a tela para o preenchimento dos dados:
Figura 26 Envio de Arquivos:

Imagem Criada Pelos Autores.

41
Assim que o usário terminar de preencher e apertar no botão enviar, o arquivo
irá para a administração e aguardara a aprovação:

Figura 27 Envio de arquivo:

Imagem criada pelos autores.

42
O Arquivo que for enviado, tem que estar em formato pdf, após o administrador
aprovar o arquivo, o arquivo estára disponível na biblioteca:
Figura 28 Lista biblioteca:

O usuário também pode pesquisar como dito acima, quando clicado em por
autor irá abrir uma tela de pesquisa que irá pesquisar pelo nome do autor, se clicar no
por descrição irá pesquisar pela descrição e por titulo:

Figura 29 Pesquisa por titulos

Imagem criada pelos autores

43
4.2 Professor e Administrador

Administrador ou Professor pode adicionar, editar, listar e remover a Categoria,


Curso, TipodeTrabalho e Orientador.

Figura 30 - Interface de cadastro de Categoria:

Imagem criada pelos Autores.

A opção Adicionar Categoria que se encontra no menu lateral da esquerda, na


aba Categoria, se clicada ira espandir as opções clica em Adicionar/Categoria
direciona o sistema para uma interface para cadastro de novas categorias, com
entrada de dados, o professor ou administrador pode preencher os seguintes campos:
nome, sendo que o campo "nome" é o da categoria a ser criado. Nessa tela possui um
botão de Cadastrar que ao clicar procede com a gravação dos dados em banco.

Figura 31- Interface Editar Categoria.

44
Imagem criada pelos autores.

A opção editar Categoria, se clicada direciona o sistema para uma interface


para editar as categorias existentes, com entrada de dados, o Professor e
Administrador pode preencher os seguintes campos: nome, sendo que o campo
"nome" é o da categoria a ser editado. Nessa tela possui um botão de Save que ao
clicar procede com a alteração dos dados em banco.

Figura 32 - Interface Detalhes Categoria.

45
Imagem criada pelos autores.

A opção Detalhes Categoria, se clicada direciona o sistema para uma interface


para ver os detalhes da categoria, o Professor e Administrador pode ver os seguintes
campos: nome, sendo que o campo "nome" é o da categoria selecionada. Nessa tela
possui um botão de voltar que ao clicar volta para a lista com todas categorias
existentes.

Figura 33- Interface Listar Categoria.

46
Imagem criada pelos autores.

A opção listar Categoria, se clicada direciona o sistema para uma interface para
listar as categorias existentes, o Professor e Administrador ao clicar em um dos icones
de ação realizara as seguintes ações “Editar, Deletar, Detalhes, sendo que o campo
"nome" é o da categoria.

Figura 34 - Interface Deletar Categoria.

47
Imagem criada pelos autores.
A opção Deletar Categoria, se clicada direciona o sistema para uma interface
para ver os detalhes da categoria a ser deletada, o Professor e Administrador pode
ver os seguintes campos: nome, sendo que o campo "nome" é o da categoria
selecionada. Nessa tela possui um botão de Delete que ao clicar procede com a
remoção da categoria via banco.

Figura 35 - Interface Listar Curso.

48
Imagem criada pelos autores.

A opção listar Curso, se clicada direciona o sistema para uma interface para
listar os Cursos existentes, o Professor e Administrador ao clicar em um dos icones
de ação realizara as seguintes ações “Editar, Deletar, Detalhes, sendo que o campo
"nome" é o nome do curso.

Figura 36- Interface de cadastro de Curso.

49
Imagem criada pelos autores.

A opção Adicionar Curso que se encontra no menu lateral da esquerda, na


aba Cursos, se clicada ira espandir as opções clica em Adicionar/Curso direciona o
sistema para uma interface para cadastro de novos Cursos, com entrada de dados, o
Professor e Administrador pode preencher os seguintes campos: nome, sendo que o
campo "nome" é o do Curso a ser criado. Nessa tela possui um botão de Cadastrar
que ao clicar procede com a gravação dos dados em banco.

Figura 37 - Interface Deletar Curso.

50
Imagem criada pelos autores.

A opção Deletar Curso, se clicada direciona o sistema para uma interface para
ver os detalhes do Curso a ser deletada, o Professor e Administrador pode ver os
seguintes campos: nome, sendo que o campo "nome" é o do Curso selecionadao.
Nessa tela possui um botão de Delete que ao clicar procede com a remoção do Curso
via banco.

Figura 38 - Interface Detalhes Curso.

51
Imagem criada pelos autores.
A opção Detalhes Curso, se clicada direciona o sistema para uma interface
para ver os detalhes do Curso, o Professor e Administrador pode ver os seguintes
campos: nome, sendo que o campo "nome" é o do Curso selecionado. Nessa tela
possui um botão de voltar que ao clicar volta para a lista com todos Cursos existentes.

Figura 39 - Interface Editar Categoria:

Imagem criada pelos autores.

52
A opção editar Curso, se clicada direciona o sistema para uma interface para
editar os Cursos existentes, com entrada de dados, o Professor e Administrador pode
preencher os seguintes campos: nome, sendo que o campo "nome" é o do Curso a
ser editado. Nessa tela possui um botão de Save que ao clicar procede com a
alteração dos dados em banco.
Figura 40 Listar tipos de trabalhos:

Imagem criada pelos autores.

A opção listar Tipo do Trabalho, se clicada direciona o sistema para uma


interface para listar os Tipo do Trabalho existentes, o Professor e Administrador ao
clicar em um dos icones de ação realizara as seguintes ações “Editar, Deletar,
Detalhes, sendo que o campo "nome" é o nome do Tipo do Trabalho
.

53
Figura 41 Editar Tipo do Trabalho:

Imagem criada pelos autores.

A opção editar Curso, se clicada direciona o sistema para uma interface para
editar os Tipo de Trabalho existentes, com entrada de dados, o Professor e
Administrador pode preencher os seguintes campos: nome, sendo que o campo
"nome" é o do Tipo de Trabalho a ser editado. Nessa tela possui um botão de Save
que ao clicar procede com a alteração dos dados em banco.

54
Figura 42 Detalhes do Tipo de Trabalho:

Imagem criada pelos autores.

A opção Detalhes Tipo de Trabalho, se clicada direciona o sistema para uma


interface para ver os detalhes do Tipo de Trabalho, o Professor e Administrador pode
ver os seguintes campos: nome, sendo que o campo "nome" é o da Tipo do Trabalho
selecionada. Nessa tela possui um botão de voltar que ao clicar volta para a lista com
todas Tipo do Trabalho existentes.

55
Figura 43 Deletar Tipo de Trabalho:

Imagem criada pelos autores.

A opção Deletar Tipo de Trabalho, se clicada direciona o sistema para uma


interface para ver os detalhes do Curso a ser deletada, o Professor e Administrador
pode ver os seguintes campos: nome, sendo que o campo "nome" é o do Tipo de
Trabalho selecionado. Nessa tela possui um botão de Delete que ao clicar procede
com a remoção do Tipo do Trabalho em banco.

56
Figura 44 Adicionar Tipo de Trabalho:

Imagem criada pelos autores.

A opção Adicionar Tipo de Trabalho que se encontra no menu lateral da


esquerda, na aba Tipo de Trabalho, se clicada ira expandir as opções clica em
Adicionar/ Tipo de Trabalho direciona o sistema para uma interface para cadastro de
novos Tipo de Trabalho, com entrada de dados, o professor ou administrador pode
preencher os seguintes campos: nome, sendo que o campo "nome" é o da Tipo do
Trabalhoa ser criado. Nessa tela possui um botão de Cadastrar que ao clicar procede
com a gravação dos dados em banco.

57
Figura 45 Listar orientadores:

Imagem criada pelos autores.

A opção listar orientador que se encontra a esquerda no menu, se clicado ira


expandir as opções, clica em listar Orientadores , e o sistema direciona para uma aba
de listagem de Professores cadastrados.

Figura 46 Deletar Orientador:

Imagem criada pelos autores.

58
A opção deletar professores se, clicada direciona o sistema para uma interface
para ver os detalhes dos Professores a ser deletada, clicando no botão Delete é
confirmada exclusão do professor.

Figura 47 Detalhe do Orientador:

Imagem criada pelos autores.

A opção detalhes de professores, se clicada direciona o sistema para uma


interface para ver os detalhes do professores, O administrador pode editar os campos
se clicado no botão Editar.

59
Figura 48 Editar Orientador:

Imagem criada pelos autores.

A opção Editar professores, se clicada direciona o sistema para uma interface


para editar os professores, no botão Salvar os novos dados são enviados para o banco
e salva a alteração

60
Figura 49 Adicionar Orientador:

Imagem criada pelos autores.

A opção adicionar Orientador, se clicada direciona o sistema para uma interface


para Adicionar o Orientador, preencha o campo nome e depois clicando em Cadastrar,
o novo orientador e adicionado no banco de dados.

Figura 50 Criar Permissão:

Imagem criada pelos autores.

61
Ao clicar em Administrador depois em usuários, abre um menu, e ao clicar em
adicionar o sistema direciona para uma interface para adicionar permissões, após
preencher o campo Nível, ao clicar no botão Cadastrar Permissão, a nova permissão
será adicionada no banco.
Figura 51 Listar Permissão:

Imagem criada pelos autores.

Ao clicar em Listar Permissões o sistema direciona para uma interface para


listar as permissões existente, o Administrador pode exercer a função de Editar ou
Excluir Permissão se clicado no botão Editar e Deletar respectivamente.

62
Figura 52 Adicionar Permissão ao Usuário:

Imagem criada pelos autores.


Ao clicar em adicionar permissão usuário, o sistema direciona para uma
interface para atribuir permissão ao usuário, selecionar o usuários que receberá a
permissão, para concluir clicar em Atualizar.
Figura 53 Listar usuários com permissão:

Imagem criada pelos autores.

Ao clicar em listar usuários, o sistema redireciona para interface de listagem


de usuários com permissões.

63
5 Resultado esperado

Iniciamos o projeto com o intuito de aprimorar os nossos conhecimentos e obter


assim mais afinidade com a linguagem C# e aprimorando a nossa lógica de
programação. Além de contribuir com as faculdades usando uma interface mais
intuitiva para o usuário final.
Ademais, pretendemos com este projeto melhorar a experiência do usuário
com o intuito de que a plataforma seja mais usada pelos alunos, aumentando a busca
de conhecimento através dos arquivos contidos no software, sendo assim
desenvolvemos uma plataforma de armazenamento de arquivos com uma interface
mais intuitiva e acreditamos que obtivemos sucesso na nossa plataforma.
O usuário terá uma visibildade melhor na hora de adicionar os seus arquivos e
pesquisar eles dentro da plataforma, assim como o administrador do sistema também
terá mais facilidade em administrar o software.O software pode ser adaptado para
outras ocasiões como por exemplo armazenar relatórios gerados em uma empresa.

6 Conclusão

Neste trabalho abordamos o tema de desenvolver uma plataforma para


armazenar arquivos usando a linguagem C# para a programação da plataforma,
fazendo autenticação com o identity framework, onde armazenamos os dados
passados para a plataforma utilizando o SQLServer. O GDA se encontra em
funcionamento atualmente com todas as funcionalidade formuladas, desde o login até
ao upload de arquivos e também a verificação desse arquivo.
Sendo assim concluímos que o projeto atendeu todos os requisitos propostos,
sendo que foi desenvolvido a plataforma para gerenciar arquivos, aplicando o
conhecimento adquirido no curso, no decorrer dos anos estudando, buscando novas
formas de aprendizado e conhecimento para agregar no desenvolvimento do projeto.
Com esse conhecimento podemos pensa em expansão do projeto como
começar a venda para instituições, adequando o site ao requisitos do cliente.
Este trabalho foi de suma importância para nosso desenvolvimento e
aprofundamento sobre as tecnologias estudadas e aplicadas, permitindo desenvolver
e adquirir competências como organização e trabalho em equipe.

64
REFERÊNCIAS

ANDERS, R. Introdução ao Identity no ASP.NET Core 2021. Disponível em:


<https://docs.microsoft.com/pt-
br/aspnet/core/security/authentication/identity?view=aspnetcore-5.0&tabs=visual-studio>
Acessado em: 22 de Outubro de 2021.

DEITEL, H. M et al. C# Como Programar. São Paulo: Pearson. 2003.

ELMASRI, Ramez,: Navathe Shamkant B; Sistema de Banco de Dados 7 ed. Pearson: São
Paulo, 2018.

ESTADO MINAS. Canais digitais desempenham papel de destaque durante a pandemia


Disponível em:
< https://www.em.com.br/app/noticia/empresas/2021/04/29/interna-
empresas,1261842/canais-digitais-desempenham-papel-de-destaque-durante-a-
pandemia.shtml/a/>. Acesso em: 23 junh. 2021.

MINISTÉRIO DA EDUCAÇÃO. Parecer CNE/CES 146/2002. Disponível em:


http://portal.mec.gov.br/sesu/arquivos/pdf/14602DCEACTHSEMDTD.pdf> Acessado em:
23/10/2021.

MICROSOFT. O histórico da linguagem C#. Disponível em:


https://docs.microsoft.com/pt-br/dotnet/csharp/whats-new/csharp-version-history 22/10/2021
21:45. Acessado em: 24/10/2021 .

MICROSOFT, Modelo de programação assíncrona de tarefa. 09 dez 2021. Disponível em:


https://docs.microsoft.com/pt-br/dotnet/csharp/programming-guide/concepts/async/task-
asynchronous-programming-model > Acessado em: 24/10/2021.

Microsoft<https://docs.microsoft.com/pt-br/dotnet/csharp/programming-guide/classes-and-
structs/abstract-and-sealed-classes-and-class-members 23/10/12:45>
Acessado em: 24/10/2021.

MICROSOFT. Herança: derivar tipos para criar um comportamento mais especializado..


Disponível em: https://docs.microsoft.com/pt-br/dotnet/csharp/fundamentals/object-
oriented/inheritance.
Acessado em: 23/10/2021.

65
MICROSOFT. Classes. Disponível em:
https://docs.microsoft.com/ptbr/dotnet/csharp/fundamentals/types/classes#reference-types>
Acessado em 22/10/2021.

MICROSOFT. Noções básicas da coleta de lixo. Disponível em:


< https://docs.microsoft.com/pt-br/dotnet/standard/garbage-collection/fundamentals >
Acessado em 24/10/2021.

MICROSOFT. Introdução ao ASP.NET Core


Disponível em: https://docs.microsoft.com/pt-br/aspnet/core/introduction-to-aspnet-
core?view=aspnetcore-6.0. Acessado em 25/10/2021.

MICROSOFT. Visão geral sobre o ASP.NET Core MVC. Disponível em:


https://docs.microsoft.com/pt-br/aspnet/core/mvc/overview?view=aspnetcore-6.0.
Acessado em 25/10/2021.

MONITORA EQUIPE. Entenda a especificação de requisitos de software em projeto.


Disponível em:
< https://www.monitoratec.com.br/blog/especificacao-de-requisitos-de-software/////a/>.
Acesso em: 16 Agos. 2021.

NOGUEIRA, Luis. Dados mostram o crescimento impressionante da internet em 10 anos.


2018. Disponível em:
< https://olhardigital.com.br/2019/05/17/noticias/dados-mostram-o-crescimento-
impressionante-da-internet-em-10-anos/>. Acesso em: 16 abr. 2021.

Paula N. Educação pós covid: desafios e transformações após isolamento social<


https://rubeus.com.br/blog/educacao-pos-covid/> Acessado em 08/12/2021.

PUGA, Sandra,: [Outros autores: Edson França; Milton Goya]. Bancos de Dados:
Implementação em SQL, PL/SQL e Oracle 11g, 2013.

SEVERINO, A. J. Metodologia do trabalho cientifico. 22 ed. Rev e ampl. São Paulo:


Cortez, 2002.

SILBERSCHATZ, A.;KOR,H.F.;SUDARSHAN, S.Sistemas de banco de dados. 5 ed.


Elsevier: Rio de Janeiro, 2006.

66
SOARES, Lucas. Com aumento na pandemia, Brasil chega a 152 milhões usuários de
internet.
Disponível em:
< https://olhardigital.com.br/2021/08/18/internet-e-redes-sociais/com-aumento-na-pandemia-
brasil-chega-a-152-milhoes-usuarios-de-internet///a/>. Acesso em: 28 junh. 2021.

SOUZA, Marcos. A Importância do TCC – Trabalho de Conclusão de Curso na Formação


Acadêmica Disponível em:
< https://suaposead.com.br/noticias/a-importancia-do-tcc-trabalho-de-conclusao-de-curso-
na-formacao-academica/>. Acesso em: 16 abr. 2021.

67

Você também pode gostar