Accounting system with possibility to add invoices, calculate taxes, generate PDFs and send emails. There are multiple implementations of databases provided to exercise various concepts: sql, no-sql, custom file database. The Project contains 4 various REST services, over 295 test cases and over 17815 lines of code with 80% test coverage.
Built with
- Maven
- Spring
- Spring boot
- Swagger
- Jacoco
- Mockito
- JUnit
- JUnit Params
- Json
- Jackson
- PostgreSQL
- Hibernate
- MongoDB
- iText
- Simply Java Mail
- Using JDK 1.8 is recomended. Project was test on this JDK version.
1) Open project with your IDE eg. IntellJI, Eclipse
2) Set checkstyle to google-checkstyle
3) Generate binding classes fromsrc\main\resources\invoice.xsd
.
Run Maven-compile or use command 'xjc -d src -p com.example.xjc example.xsd' in terminal
4) You can run Maven-verify to check, if project builds correctly.
In application you can choose between five databases:
- InFile
- Mongo
- SQL (JDBC)
- SQL (Hibernate)
- and InMemmory database (set by default).
You can change the database in 'application.properties` file
pl.coderstrust.database:
inFile
inMemory
inMongo
hibenate
Start the application and open the URL for API Documentation http://localhost:8080/swagger-ui.html