Este é o Noticeiro, um super agregador de blogs e notícias.
Projeto "Super agregador de blogs e notícias" da matéria MAC0321 da USP.
Este projeto é implementado em Java Spring MVC, utilizando o banco de dados MongoDB
-
Dependências do Java Spring
- Spring Web
- Spring Security
- Thymeleaf
- Spring Data MongoDB
-
Banco de dados
- MongoDB
-
Outras bibliotecas utilizadas
- Bootstrap
Primeiramente, é necessário ter o MongoDB em execução, pois o web app irá interagir com ele para armazenamento dos dados.
- Instale o MongoDB -> Instalação do MongoDB
- Com o MongoDB instalado, abra um terminal e digite o seguinte comando:
mongod - Com isto, o MongoDB deverá estar rodando e conectado ao localhost na porta 27017
- IMPORTANTE: O MongoDB reserva uma pasta para armazenamento dos dados. No Linux, o padrão é a pasta "/data/db", porém, ao executá-lo pela primeira vez, talvez esta pasta não existirá e você precisará criá-la. Após ser criada, é possível que o MongoDB não consiga permissão para acessá-la, devido ser uma pasta criada na root do sistema, neste caso será necessário alterar as permissões de acesso para a pasta.
- No Linux, os dois problemas acima podem ser resolvidos com os seguintes comandos:
sudo mkdir -p /data/db
sudo chown -R $USER /data/db
Com o MongoDB em funcionamento, há duas maneiras de executar o projeto:
- Primeira maneira - Execução por meio do maven
- Instale o maven. No Ubuntu:
sudo apt install maven - Abra o terminal na pasta do projeto
- Execute o comando:
mvn spring-boot:run -D maven.test.skip=true - Com isto, o projeto estará sendo executado e o site poderá ser acessado por meio da url localhost:8080
- Instale o maven. No Ubuntu:
- Segunda maneira - Execução por meio do Eclipse
- Instale o Plugin Spring Tools 4
- Importe o projeto no Eclipse
- Clique com o botão direito na pasta principal do projeto e execute o comando Run as -> Spring Boot Application
- Com isto, o projeto estará sendo executado e o site poderá ser acessado por meio da url localhost:8080
Podem ser inseridas uma tag por vez na lista ou várias de uma vez, no seguinte formato:
Brasil "Testes automatizados" Governo Estudantes "Programar em Java"
As tags compostas devem ser colocadas entre aspas, conforme o exemplo anterior.
Também está disponível o uso de expressões regulares. Para utilizar uma expressão regular, insira uma tag começando com "regex=", sem as aspas, seguida da expressão regular.
Exemplo: Mostrar notícias que contenham título ou descrição começando apenas com letra C:
regex=^C.*
Para utilizar os filtros de data, o usuário tem a opção de escolher uma data mínima e uma data máxima, para que só sejam mostradas publicações pertencentes ao intervalo informado. Também é possível omitir uma das datas, montando intervalos abertos.
Para utilizar os filtros de hora, o usuário tem a opção de escolher uma hora mínima e uma hora máxima, para que só sejam mostradas publicações pertencentes ao intervalo informado. Também é possível omitir uma das horas, montando intervalos abertos. Obs: É importante notar que o intervalo de horas é aplicado a todos os dias pertencentes ao intervalo de datas.
As configurações da conexão do web app com o banco de dados podem ser encontradas no arquivo src/main/resources/application.properties e por padrão são as seguintes:
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=testdb
Isto é, por padrão, a conexão com o MongoDB é feita no localhost, na porta 27017 e o nome do banco de dados é testdb
Na versão atual, o web app conta com uma bateria simples de testes do JUnit, testando os principais métodos do código.
Os testes estão localizados na pasta src/test/java/noticeiro.
IMPORTANTE:
É importante notar que os testes são feitos com uma conexão real ao MongoDB, e, durante os testes, o banco de dados é apagado, portanto,
se os testes forem executados no mesmo banco de dados onde existem usuários cadastrados, eles serão perdidos. Isto pode ser evitado alterando-se
o banco de dados utilizado na hora de rodar os testes, o que pode ser feito mudando a linha de configuração spring.data.mongodb.database=testdb, trocando o testdb para outro nome, assim, o MongoDB utilizará um banco separado na hora dos testes.
OBS: Para remover URLs da lista do feed, posicione o mouse sobre a URL e o ícone de uma lixeira aparecerá. Clique no ícone.



