GithubHelp home page GithubHelp logo

get-poc's Introduction

Projeto-Desenvolvimento-POO

Autores:

Miguel Antônio Ribeiro e Silva - 4680

Alan Gabriel Martins Silva - 4663

Mateus Henrique Vieira Figueiredo - 4707

João Victor Graciano Belfort de Andrade - 4694

Objetivos:

O projeto de desenvolvimento desta disciplina visa desenvolver, em linguagem Java, um sistema para gerenciamento de Trabalhos de Conclusão de Curso. Ao longo do período, várias classes e módulos serão criados visando utilizar ao máximo todas as especifidades e peculiaridades da Programação Orientada a Objetos. Bancos de Dados e bibliotecas gráficas nos auxiliarão no desenvolvimento do trabalho e pretendemos com isso, criar um programa simples, prático, minimalista e interativo com o usuário, possibilitando seu uso, nos contextos reais das Universidades.

Detalhamento, primeira entrega:

Foi definido que cada integrante do grupo começaria diferentes partes do trabalho, como design, banco de dados e formas de implementação. Foi realizado a modelagem do Banco de Dados que usaremos, em modelo relacional, por meio do MySQL Workbench, e iniciamos sua junção com o projeto. A interatividade com o usuário foi desenhada (Canva) e começamos a implementá-la pela biblioteca gráfica Java FX. As classes e o modelo MVC estão sendo implementadas em JAVA, mas ainda não foram testadas por completo, visto que preferimos realizar os testes unitários, conforme implementamos o restante do projeto.

Detalhamento, segunda entrega:

O controle está bem encaminhado, com heranças, alguns testes (não unitários) e com tratamento de exceção simples, sua finalização e testes por completo depende apenas da parte da visualização, que ainda está em desenvolvimento, pois se trata de algo que nunca havíamos usado antes, CSS e HTML. A parte de banco de dados, está praticamente completa. O Database, com os testes, está na pasta models/db juntamente com todos os scripts relacionados a ele. As funções referentes ao banco, está na pasta db, na main. Como havia dito, não fizemos testes unitários ainda, por dependência de outras partes do projeto, mas todas as funções criadas, até agora, foram testadas.

Detalhamento, terceira entrega:

Projeto finalizado. O controle foi feito como especificado, alguns testes unitários foram feitos e tratamento de exceções mais elaborados. A parte da visualização está completa, juntamente com a parte de Banco de Dados.

Relatório Final

O projeto, implementado ao longo do período, foi um desafio para o grupo. Tivemos que aprender várias tecnologias que nunca havíamos usados antes, além de projetar um programa complexo, com muitas funcionalidades. Detalho a seguir, alguns detalhes das nossas implementações.

Armazenamento persistente

A parte de armazenamento do projeto foi projetada utilizando o banco de dados MySQL. O modelo Entidade-Relacionamento foi feito usando a ferramento MySQL Workbench, buscamos deixar as relações simples, mas completas, além de criarmos algumas que não foram pedidas na especificação. Após a criação do modelo, uma engenharia reversa foi feita e o esquema foi importado para o projeto GetPOC. A conexão com JAVA foi criada na pasta package com.ufv.project.db, juntamente com todos os querys necessários. Foi criado uma classe para cada tabela, e os querys, implementados dentro das mesmas.

View - Interface gráfica

A interação com o usuário, ou seja, a parte de View do programa, foi feita por meio de uma interface gráfica, usando JavaFX e FXML para os elementos gráficos do programa e CSS para os estilos da GUI. Todos os recursos usados no View (arquivos .fxml, .css, arquivos de imagens e arquivos de fontes) foram organizados na pasta src/main//resources/com/ufv/project, sendo que há uma grande integração entre esses recursos. Os arquivos FXML também estão fortemente interligaods com os seus respectivos controles, que por sua vez estão no pacote src/main/java/com/ufv/project/controller/fx. Foi um grade desafio usar essa tecnologia para a realização da visão do projeto, já que nenhum dos integrantes do grupo tiveram expreriência prévia com essas ferramentas, o que também fez com que fosse uma ótima oportunidade de aprendizado.

Controller-FXML

Controles foram criados a fim de seguir o modelo MVC, de forma a ter controles para páginas específicas na aplicação. Suas funções são lidar com operações que o usuário solicita como recuperar dados do banco de dados, checagem de dados informado, etc. Como optamos por usar JavaFX os controladores funcionam a partir de "Event handlers" associados a elementos gráficos do próprio JavaFX. Vale notar que por usar essa interface gráfica, muitas formas de modularização se tornam impossível por causa da necessidade de ter que atrelar o controlador diretamente com JavaFX, o que foi mostrado através de várias pesquisas.

Controller

Controles que foram criados de acordo com as orientações passadas para que a modularização do trabalho prático ocorra tanto quanto possível sem afetar outras partes do trabalho. Criação de funções principais para completar a interação com a GUI selecionada, módulo de controle para todas as funções potencialmente independentes da biblioteca java fx. Ele verifica principalmente strings e cria estruturas de banco de dados.

get-poc's People

Contributors

mateus-henr avatar miguelribeirokk avatar alangabriews avatar vicjoao avatar

Recommend Projects

  • React photo React

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

  • Vue.js photo Vue.js

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

  • Typescript photo Typescript

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

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

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

Recommend Topics

  • javascript

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

  • web

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

  • server

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

  • Machine learning

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

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

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

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.