Sales-Taxes is a small full stack web app with Nuxt2 frontend + Spring Boot backend with a H2 In Memory Database. The app was tested with junit5 + assertj.
- Navigate into the root directory of the project and issue following command:
docker-compose up --build
- Start the spring boot backend server:
mvn spring-boot:run
- Install the frontend dependencies and start the frontend server: Change into the directory src/nuxt and issue following commands:
npm install
npm run dev
The backend server runs on localhost:8088 and the frontend server runs on localhost:3000. Please navigate to localhost:3000 in your preferred browser to open the app.
mvn clean verify
Optional but not mandatory improvements: Add frontend testing to the project, add more tests for backend.
Basic sales tax is applicable at a rate of 10% on all goods, except books, food, and medical products that are exempt. Import duty is an additional sales tax applicable on all imported goods at a rate of 5%, with no exemptions. The rounding rules for sales tax are that for a tax rate of n%, a shelf price of p contains (np/100 rounded up to the nearest 0.05) amount of sales tax.
- 1 book at 12.49
- 1 music CD at 14.99
- 1 chocolate bar at 0.85
- 1 imported box of chocolates at 10.00
- 1 imported bottle of perfume at 47.50
- 1 imported bottle of perfume at 27.99
- 1 bottle of perfume at 18.99
- 1 packet of headache pills at 9.75
- 1 box of imported chocolates at 11.25
- 1 book: 12.49
- 1 music CD: 16.49
- 1 chocolate bar: 0.85
- Sales Taxes: 1.50
- Total: 29.83
- 1 imported box of chocolates: 10.50
- 1 imported bottle of perfume: 54.65
- Sales Taxes: 7.65
- Total: 65.15
- 1 imported bottle of perfume: 32.19
- 1 bottle of perfume: 20.89
- 1 packet of headache pills: 9.75
- 1 imported box of chocolates: 11.85
- Sales Taxes: 6.70
- Total: 74.68