·

Análise de Sistemas ·

Linguagens de Programação

Send your question to AI and receive an answer instantly

Ask Question

Preview text

Projeto de Desenvolvimento de uma Aplicação Simulando um Sistema Real de Interface entre Uma Linguagem de Programação e o Banco de Dados MongoDB Disciplina Banco de Dados Professor Howard Roatti Última Atualização 03112022 Incluídos Nenhum Itens Atualizados ESQUEMA DO PROJETO NO GITHUB Sumário Edital 2 ESQUEMA DO PROJETO NO GITHUB 8 FAQ 9 ROTEIRO PARA AUXÍLIO NA EXECUÇÃO DO TRABALHO 10 Orientações para Desenvolvimento do Projeto 11 Edital 0 Sobre a formação dos grupos conforme explicado em sala de aula a formação dos grupos será a mesma da C2 exceto se houve algum comunicado referente à Observação do item 8 Distribuição da Pontuação do edital da C2 No caso de algum componente referenciado na C2 como não contribuiu para o desenvolvimento do trabalho esse será remanejado para um novo grupo escolhido aleatoriamente 1 Sobre o tema para a esse trabalho dê preferência para reutilizar o mesmo projeto da C2 assim você terá apenas que modificar os trechos do seu código que envolve a linguagem SQL alterando para a sintaxe do banco de dados não relacional MongoDB Caso opte em criar um projeto novo você ainda não poderá selecionar como tema o mesmo do projeto de exemplo 2 A aplicação deve possuir no mínimo 2 duas coleções com relacionamentos 3 Desenvolvam o diagrama relacional especificando os atributos chaves obrigatoriedade e relacionamentos perceba que o diagrama é para um banco de dados relacional independente de estarmos tratando de um banco de dados não relacional nesse trabalho 4 Caso decida por manter o trabalho da C2 você deverá desenvolver um script que seja capaz de Vide Exemplo I Conectar ao banco de dados relacional Oracle II Consultar cada uma das tabelas existentes referente ao projeto da C2 III Conectar ao banco de dados não relacional NoSQL MongoDB IV Criar uma coleção com o mesmo nome de cada tabela existente no projeto da C2 V Caso seu projeto da C2 possua registros précadastrados realize a criação dos documentos nas referidas coleções 5 Caso optem pelo desenvolvimento de um novo projeto você deverá desenvolver um script que seja capaz de I Conectar ao banco de dados não relacional NoSQL MongoDB II Criar coleções referentes às tabelas contidas no diagrama relacional 6 Crie um programa na linguagem de sua preferência que a Possua um menu com as seguintes opções i relatórios ii inserir documentos iii remover documentos iv atualizar documentos v sair b Ao iniciar seu programa deverá exibir o nome da aplicação e os nomes dos componentes do grupo Splash Screen c Ao iniciar seu programa deverá informar se as coleções possuem documentos para isso execute uma consulta que seja capaz de contar o número de documentos d Exemplo de tela de inicialização e O menu principal deverá ser exibido constantemente de acordo com o fluxo de execução projeto f Ao criar submenus durante a utilização deles deverão ser exibidos constantemente de acordo com o fluxo de execução 7 Descrição das funcionalidades dos itens de menu a relatórios 1 deve haver ao menos duas opções de relatórios i consulta realizando a sumarização agrupamento de algumas coleção por exemplo o valor total dos pedidos agrupados por fornecedores ii uma consulta com junção de coleções por exemplo relatório de itens de pedido b inserir documentos 1 deverá exibir um menu com as opções das entidades existentes 2 o usuário deverá selecionar uma das entidades 3 exiba cada atributo da entidade selecionada e permita que o usuário informe os dados delas 4 realize a inserção do documento 5 pergunte ao usuário se deseja continuar inserindo caso a resposta seja Não volte ao menu principal Caso a resposta seja Sim volte ao menu de opções de entidades existentes ou permita que continue realizando a ação na entidade previamente selecionada c remover documentos 1 deverá exibir um menu com as opções das entidades existentes 2 o usuário deverá selecionar uma das entidades 3 deverá listar as tuplas documentos da entidade coleção selecionada ao menos o campo principal e um campo descritivo 4 o usuário deverá selecionar o documento que deseja remover através de uma opção campo principal ou listagem numérica fixa por exemplo 5 confirme com o usuário se deseja realmente remover o registro caso a resposta seja Não volte ao menu principal Caso a resposta seja Sim i verifique se o documento que o usuário deseja alterar possui algum documento referenciado em outra coleção caso possua informe que aquele documento não poderá ser excluído ou pergunte se é desejo dele remover o documento da coleção filha excluindoas caso a resposta seja Sim 6 pergunte ao usuário se deseja excluir mais algum documento caso a resposta seja Não volte ao menu principal Caso a resposta seja Sim volte ao menu de opções de entidades existentes ou permita que continue realizando a ação na entidade previamente selecionada d atualizar documentos 1 deverá exibir um menu com as opções das entidades existentes 2 o usuário deverá selecionar uma das entidades 3 deverá listar as tuplas documentos da entidade coleção selecionada ao menos o campo principal e um campo descritivo 4 o usuário irá selecionar a tupla que deseja atualizar através de uma opção campo principal ou listagem numérica fixa por exemplo 5 solicite que ele informe todos os atributos atômicos exceto o campo principal ou permita que ele escolha qual campo deseja alterar 6 realize a atualização da tupla com os dados informados pelo usuário 7 exiba o registro atualizado 8 pergunte ao usuário se deseja atualizar mais algum documento caso a resposta seja Não volte ao menu principal Caso a resposta seja Sim volte ao menu de opções de entidades existentes ou permita que continue realizando a ação na entidade previamente selecionada 8 Entregáveis a Todos os scripts deverão estar disponíveis no Github do grupo em um novo projeto i script de criação das coleções ii código fonte do programa desenvolvido devidamente organizado iii diagrama relacional pdf png ou jpeg iv vídeo demonstrativo das funcionalidades implementadas explicando o passo a passo da aplicação v READMEMD explicando como executar o projeto no ambiente proposto Linux b Deverá ser postado no AVA apenas o link para o Github caso o AVA solicite o envio de um arquivo envie um documento de texto txt com o link do Github no corpo do documento 9 Distribuição da Pontuação Nota Item Item Específico 15 Relatórios 10 6a1i e 05 6a1ii 15 Inserir Registros 10 6a1i e 05 6a1ii 15 Remover Registros 10 6c14 e 6 e 05 6c5i 15 Atualizar Registros 10 6d16 e 056d78 05 Diagrama Relacional corretamente desenvolvido 05 Interface Amigável Obs não é obrigatória a criação de telas ou páginas mesmo no console é possível ter uma interface amigável 05 Vídeo Demonstrativo explicando o objetivo do trabalho e a utilização do sistema passo a passo em todos os menus 05 Documentação explicativa de utilização do sistema no Linux 80 Total Observações Importantes 1 todos os componentes do grupo deverão participar de sua criação caso seja informado pelos membros ativos que houve algum componente que não participou de sua criação esse terá sua avaliação zerada automaticamente 2 lembrese que trabalho não possui avaliação substitutiva 3 atrasos serão tolerados porém perderão 05 pontos a cada dia de atraso 4 o banco de dados deverá ser o MongoDB 10 Projeto de Exemplo httpsgithubcomhowardroattiexamplecrudmongo a façam um fork cópia do projeto e analise o projeto antes de iniciar o de vocês b não deixem para fazer em cima da hora o projeto é extenso e vocês podem não ter tempo hábil de realizálo principalmente se for realizar um novo projeto e não optar por dar continuidade ao anterior C2 c não serão aceitos projetos idênticos ou cópias parciais exceto do projeto de exemplo ESQUEMA DO PROJETO NO GITHUB model Classes referente às entidades do modelo relacional conexion Módulo de conexão com o banco de dados controller Módulo composto de classes responsáveis por controlar a criação dos objetos e transferiralterar os dados para o banco de dados utils Módulo composto de uma classe para auxiliar na criação dos menus bem como de uma classe para controle e geração da tela de splash screen reports Módulo responsável por gerar os relatórios a partir das consultas no MongoDB principal Script principal responsável por unir e dar acesso ao restante do sistema FAQ Podemos criar interface gráfica Sim Podemos manter o programa apenas no console sem interface gráfica Sim desde que tenha uma interface amigável e seja de fácil utilização Podemos utilizar uma linguagem diferente Sim a linguagem que vocês se sentirem mais confortáveis porém seu projeto deve ser capaz de ser executado em um ambiente Linux Podemos usar algum componente biblioteca ou funcionalidade que facilite a criação de consultas e alterações das coleções do banco de dados Não você deverá criar as consultas e atualizações utilizando a linguagem nativa apenas com uma biblioteca que permita a execução de comandos MongoDB Podemos realizar o trabalho sem grupos Prioritariamente o trabalho deverá ser desenvolvido em grupo É importante que aprendam a trabalhar em equipe e designar tarefas Entretanto é possível a realização do trabalho individualmente desde que o aluno se responsabilize por desenvolver o projeto e entregar em tempo hábil para sua correção não deixando para informar na semana de entrega a necessidade de realizar a atividade solo É possível trocar de grupo A troca de grupo será permitida até duas semanas antes da data de entrega para que o aluno seja capaz de contribuir com o desenvolvimento da atividade proposta Caso seja interesse do aluno esse deverá procurar um grupo disponível que aceite sua entrada e informar ao professor para realizar a alteração no sistema ROTEIRO PARA AUXÍLIO NA EXECUÇÃO DO TRABALHO 1 Crie o modelo pelo Sql Power Architect 2 Gere um PDF com o modelo proposto 3 Gere o script de criação das coleções 4 Criem os objetos relacionados às entidades do modelo proposto 5 Criem as classes controladoras para cada objeto do modelo proposto 6 Criem os relatórios solicitados no edital 7 Altere o splashscreen 8 Altere a classe principal Orientações para Desenvolvimento do Projeto Etapa 1 Modelagem e Criação de Coleções Defina quais serão as entidades e seus atributos Lembrese de definir corretamente os nomes dos campos nome único por tabela Lembrese de definir corretamente o tipo de cada campo inteiro real texto data etc Lembrese de definir os campos determinantes PK e FK Crie o diagrama relacional com as tabelas campos tipos chave primária chave estrangeira e relacionamentos com as devidas cardinalidades Gere o script para criação das coleções Etapa 2 Criação das Classes Principais Desenvolva as classes que representam as tabelas do tema que estão trabalhando utilize os exemplos em srcmodel Lembrese que sempre que um objeto possui uma associação com outro a classe deverá ter como atributo uma instância do outro objeto não apenas seu atributo Olhe os exemplos srcmodelitenspedidopy e srcmodelpedidospy Lembrese de criar os getters e setters para cada atributo Lembrese de criar um método tostring para cada classe Etapa 3 Criação das Classes Controladoras Desenvolva as classes que irão realizar a interface entre os objetos da Etapa 2 e as tabelas da Etapa 1 Lembrese de criar um método de verificação de existência ou não do registro que está trabalhando Sendo um novo Inserção ele não deve existir para que possa ser criado e então mantemos a integridade de entidade Sendo um registro existente Atualização ou Exclusão ele deve existir para que possa realizar o procedimento Lembrese de em cada interface realizar a conexão antes de efetuar a execução dos comandos MongoDB Lembrese de realizar a concatenação dos atributos quando necessário Veja os exemplos existentes para criar o seu Eles se encontram em srccontroller Realize os testes de cada detalhe que irá criar para saber se está funcionando corretamente Etapa 4 Criação dos Relatórios Junto do seu grupo definam os relatórios que irão criar para atender ao edital Lembrese que obrigatoriamente deverão ter dois relatórios um com funções agregadas e cláusula group by sumarização e outro com joins junção de coleções Caso seja necessário exibir informações das coleções no formato de listagem como no exemplo da controladora de Itens de Pedidos e da controladora de Pedidos crie as consultas no formato de relatório Altere a classe srcreportsrelatoriospy para que ela seja capaz de exibir os relatórios que criou e executar as consultas de cada relatório Etapa 5 Splash Screen e Menus Altere eou inclua no arquivo srcutilsconfigpy os menus de relatórios entidades e algum outro que queira inserir Altere os atributos da classe srcutilssplashscreenpy para que apareça o nome do sistema proposto a quantidade de registros em cada coleção os nomes dos componentes do grupo e preserve o nome do professor disciplina e semestre Etapa 6 Principal Altere as interfaces existentes métodos inserir atualizar excluir e reports para atender ao sistema proposto Lembrese de que no sistema proposto não há a necessidade de ter mais do que duas entidadestabelas Lembrese de verificar se todos os imports estão adequados ao que criou Lembrese de alterar os fluxos de menus para atender ao edital no exemplo existem partes que não foram implementadas que podem afetar o resultado do trabalho Etapa Final Estude o projeto de exemplo é importante que tirem todas as dúvidas durante o desenvolvimento do trabalho Respeite a Orientação a Objetos e a utilize corretamente Respeite a criação e utilização dos comandos MongoDB Use adequadamente Realize diversos testes peça cada componente do grupo que teste peça pessoas de fora do grupo para testar Estabeleçam metas semanais para execução do trabalho Lembrese que o tempo é curto Lembrese de gravar o vídeo demonstrando a utilização do sistema proposto Lembrese de manter o GitHub atualizado até o dia da entrega