Skip to content

Project exam · Java Programming (Core to Spring Boot)

Project exam: a GST invoice engine

Project examexpert· about 1.5 hours· 6 steps· 90 min · pass 70%

The brief

A timed, hands-on exam. You get a Maven project for a GST invoice engine with the tests already written: finish the GstRate, LineItem and Invoice classes until the tests pass, write one test of your own, run the demo invoices and package the JAR. Money is in paise (long). For each task you paste the output of a command; no hints or answers are shown until you hand in.

Why it matters

Many Java hiring processes in India include a timed take-home or live exercise exactly like this: a half-built project, a set of failing tests and a clock. Billing and GST are the domain of countless ERP, retail and accounting products, and getting the paise right under time pressure is the skill being tested.

Skills you practise

  • enums with behaviour
  • records with validation
  • CGST/SGST versus IGST
  • rounding in paise
  • JUnit 5
  • Maven test, exec:java and package

You need

  • JDK 21 (or JDK 17: then change maven.compiler.release in pom.xml to 17)
  • Apache Maven 3.9 or newer on your PATH (mvn -v works), or the Maven Wrapper (mvnw) in the project
  • A text editor or IDE (VS Code with the Extension Pack for Java, or IntelliJ IDEA Community Edition) and a terminal
  • The project set up BEFORE you start the timer: pom.xml at the top, the four main classes in src/main/java/com/billing/gst/, the three test classes in src/test/java/com/billing/gst/, and one mvn test run done so the downloads are finished

What you will have at the end

The gst-invoice project with every given test passing, your EmptyInvoiceTest, the demo output and the packaged JAR, plus your score.

How it is marked (rubric, 100 points)
Tasks completedEvery task's check passes: the given tests, your own test, the exact demo amounts and the JAR.70
Money handled correctlyAll amounts in paise as long; rounding only where the task says; no paisa lost in the CGST/SGST split.15
Code quality under time pressureReadable names, validation in the record, no copy-pasted blocks.15
  • 6tasks
  • 90 mintime limit
  • 70%to pass

Rules: a project exam

  • Do each task on your own machine, then paste the command output into its box here.
  • Work alone, without notes or a search engine, as in the real exam.
  • No hints and no answers. You can run your code, but the checks run only when you hand in.
  • Every task is checked automatically when you hand in, or when the time is up.
  • You see which tasks passed at the end. You can take it again.
Not yet, go back