✅ Compulsory - all bullets
✅ Optional - all bullets
✅ Bonus - all bullets
✔️ Database, user and tables creation
- src\main\resources\script.sql
✔️ Create the singleton class Database that manages a connection to the database
- src\main\java\db\Database
✔️ DAO classes
- src\main\java\dao\ArtistController
- src\main\java\dao\AlbumController
✔️ Implement a simple test using your classes
- src\test\java\AlbumManagerTest
✔️ Create the necessary table(s) in order to store charts in the database (a chart contains some albums in a specific order)
- src\main\resources\script.sql
✔️ Create an object-oriented model of the data managed by the Java application
- src\main\java\entities
✔️ Generate random data and insert it into the database.
- src\main\java\app\AlbumManager\insertRandomData
✔️ Display the ranking of the artists, considering their positions in the charts
- src\main\java\dao\ChartAlbumController
- src\main\java\dao\ChartController\displayRanking
✔️ 🏆 For additional points, you may consider generating suggestive HTML reports, using FreeMarker or other reporting tool.
- demo
- Configuration: src\main\java\freemarker\FreeMarkerConfiguration
- Template: templates\template.html
- Result: report.html
- Method: src\main\java\dao\ChartController\generateHTMLReport
✔️ Use a connection pool in order to manage database connections (Apache Commons DBCP)
- src\main\java\db\ConnectionPool
- src\main\java\thread_pool_executor
✔️ Use Visual VM in order to monitor the execution of your application.
- resources/visualvm.png