Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Architecture

System Overview

                         +------------------+
                         |   React Frontend |
                         |   (Vite + React) |
                         +--------+---------+
                                  |
                                  | REST API
                                  |
                         +--------v---------+
                         |  Spring Boot API |
                         |    (Java 25)     |
                         +--+----------+----+
                            |          |
                  +---------+          +----------+
                  |                               |
          +-------v-------+             +---------v--------+
          |  PostgreSQL    |             |      Redis       |
          |  (persistence) |             |     (cache)      |
          +----------------+             +------------------+

Components

Backend (Spring Boot)

The backend is a REST API built with Spring Boot and Java 25. It is responsible for:

  • Managing tax return data (CRUD operations)
  • Orchestrating the filing workflow (save, validate, submit)
  • Simulating the handoff to an e-Filing service (mimicking the EFE team)
  • Generating printable/downloadable return documents

Key layers:

  • Controller: REST endpoints
  • Service: Business logic and orchestration
  • Repository: Data access via Spring Data JPA
  • Model/Entity: Domain objects mapped to database tables

Frontend (React)

The frontend provides:

  • A tax return input form
  • A “Finish and File” review and print experience
  • Return status tracking
  • An agent-facing view for filed return information

Database (PostgreSQL)

Stores tax return data, user information, and filing status history.

Cache (Redis)

Used for:

  • Caching frequently accessed return data
  • Session management
  • Rate limiting (optional)

API Design

The API follows REST conventions:

MethodEndpointDescription
POST/api/returnsCreate a new tax return
GET/api/returns/{id}Get a tax return by ID
GET/api/returnsList all returns
PUT/api/returns/{id}Update a tax return
DELETE/api/returns/{id}Delete a tax return
POST/api/returns/{id}/fileSubmit a return for filing
GET/api/returns/{id}/statusGet filing status
GET/api/returns/{id}/printGet printable return