📚 Wiki
Este repositório contém o código-fonte e documentação do projeto BookMarket, um sistema de e-commerce para livros usados desenvolvido como parte da disciplina INF329 – Prática de Engenharia de Software, ministrada pelo Prof. Luiz Eduardo Busato na UNICAMP.
- Projeto Orientado a Objetos e Implementação em Java: Construir e evoluir um sistema baseado nos conceitos de orientação a objetos.
- Implementação de um sistema de recomendação com machine learning: Implementar um sistema de recomendação utilizando a biblioteca mahout baseado nas preferencias dos usúarios.
- Prática de Processo Ágil Minimalista: Implementar o projeto seguindo um processo ágil com ferramentas como controle de versão, testes automatizados e kanban.
- Documentação da Arquitetura: Uso de comentários Javadoc para descrever a estrutura do sistema.
- Testes Unitários: Implementação de testes para os métodos públicos das classes principais.
- Algoritmo de Bestsellers: Geração de uma lista com os
n
livros mais vendidos. - Sistema de avaliação: Avaliação de livros com notas de 0 (péssimo) a 5 (ótimo).
- Recomendações Personalizadas:
- Sugestões de livros baseadas no perfil de consumo dos clientes.
- Sugestões de livros para assinantes com base no menor preço disponível.
- Linguagem: Java 11
- Biblioteca para Recomendação: Apache Mahout 0.13.0
- Pearson Correlation Similarity
- User-Based Recommendations
- Testes Unitários: JUnit 4.10
- Cobertura de Código: JaCoCo 0.8.10
- Gerenciador de dependências : Maven
<dependency>
<groupId>org.apache.mahout</groupId>
<artifactId>mahout-mr</artifactId>
<version>0.13.0</version>
</dependency>
<details> <summary>Configuração completa do JaCoCo</summary>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.10</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</details>
- Bestsellers: "Como visitante, quero que o BookMarket liste os
n
livros mais vendidos no mercado." - Recomendações:
- "Eu, como cliente, quero receber cinco sugestões de livros do meu interesse com o seu respectivo valor médio."
- "Como cliente, quero avaliar um livro com notas de 0 a 5."
- "Eu, como assinante, quero receber cinco sugestões de livros do meu interesse pelo menor valor disponível no BookMarket."
- Isinkaye, Folajimi e Ojokoh (2015). "Recommendation systems: Principles, methods and evaluation". Egyptian Informatics Journal, 16(3):261–273.
- @book{36682,title = {Mahout in Action},author = {Robin Anil and Sean Owen and Ted Dunning and Ellen Friedman},year = {2010},URL = {http://manning.com/owen/},booktitle = {Mahout in Action},pages = {350},address = {Manning Publications Co. Sound View Ct. #3B Greenwich, CT 06830}}
🔍 Visualizar Relatório GitInspector
Professor Responsável: Luiz Eduardo Busato
Disciplina: INF329 – Prática de Engenharia de Software