Monorepo with a Spring AI backend and an Angular frontend.
The project demonstrates practical AI application patterns end-to-end:
- simple chat
- chat with memory
- RAG with document upload and retrieval
- an AI-assisted flight reservation workflow
- Java 25
- Spring Boot 4.x
- Spring AI 2.x
- Maven Wrapper
- PostgreSQL + pgvector
- Angular 21
- Angular Material
- Playwright + Vitest/Karma tooling
api-ai/: Spring Boot API and AI servicesangular-ai/: Angular UI client
- Simple chat endpoint (
POST /api/chat) - Memory chat endpoints (
/api/chat-memory/**) - RAG endpoints (
/api/rag/**)- upload document
- list/get/delete documents
- ask questions using retrieved context
- Flight reservation endpoints (
/api/flight-reservations/**)- list/create/get reservations
- cancel reservation
- update reservation status
- search by passenger email
- Book recommendation prompt endpoints (
/api/books/**)
- Simple Chat page
- Memory Chat page
- Flight Reservations page
- Material UI layout with route-based navigation
From api-ai/, set at least:
OPENAI_API_KEY=your_openai_api_keyStart database and API:
./mvnw spring-boot:runSpring Boot Docker Compose integration will start PostgreSQL/pgvector from compose.yaml.
API base URL: http://localhost:8080
From angular-ai/:
npm install
npm startFrontend URL: http://localhost:4200
The Angular app uses proxy.conf.js to forward API calls to the backend
during development.
./mvnw test
./mvnw clean packagenpm run test
npm run e2e
npm run buildThe file api-ai/api.http contains request examples for local API testing.
- Getting Starting with Intelligent Java Applications using Spring AI
- Intelligent Java Applications using Spring AI and Gemini
- Spring AI + Angular: Introdução
- Spring AI + Angular: Primeiro Projeto [Chat Client]
- Spring AI + Angular: Chat Client com Gemini
- Spring AI + Angular: Chat Client com Azure OpenAI
- Spring AI + Angular: Chat Client com Oracle GenAI
- Spring AI + Angular: Criando Projeto Angular
- Spring AI + Angular: Criando Cliente de Chat
- Spring AI + Angular: Conectando Cliente de Chat com API