This Spring Boot web app reads emails from a POP3/IMAP-Provider, stores them in the Elasticsearch database and analyzes them with the Spring Data Elasticsearch framework. The graph is drawn with Plotly.
There is further documentation at Jörn Dinkla's homepage.
This code is meant as a prototype for learning, not a production ready software product.
The following frameworks and libraries were used:
- Spring Boot is the basis
- Spring Framework
- Spring MVC for the web app
- Spring Data for handling data
- Spring Data Elasticsearch for storing data in Elasticsearch
- Elasticsearch database the database and search engine
- Elasticsearch Java API for user defined queries in Elasticsearch
- JavaMail API for reading emails from a provider
- Jackson JSON for converting data to and from JSON
- Bootstrap for the nice HTML5/CSS3 layout
- Plotly for drawing the chart
- gradle is used as a make tool
- Spock is used as the unit testing framework
- Groovy the Groovy programming language
- Docker Docker as a container
Running the application
Use the following command:
$ docker-compose up
Using the application
Optional: Analysing emails with kibana
kibana is a tool for analysing large data sets.
docker-compose with Control-C.
See the documentation.
(c) 2016, 2018 Jörn Dinkla, www.dinkla.com