Skip to content

Issue 19#49

Open
parametrization wants to merge 43 commits intoYugabyteDB-Samples:masterfrom
charlieslalom:issue-19
Open

Issue 19#49
parametrization wants to merge 43 commits intoYugabyteDB-Samples:masterfrom
charlieslalom:issue-19

Conversation

@parametrization
Copy link

No description provided.

NotTheMountainLion and others added 30 commits December 8, 2025 11:47
- Add Mermaid diagram (architecture.mmd) documenting the YugaStore
  Java microservices architecture including API Gateway, Products,
  Cart, Checkout, and Login services
- Add transcripts directory with workshop transcript

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Created bootstrap.sh in the root folder. The script:

1. Builds the application with `mvn -DskipTests package`
2. Initializes YugabyteDB - creates CQL schema and loads sample data
3. Creates YSQL tables for PostgreSQL
4. Starts all microservices in background:
   - Eureka Service Discovery (port 8761)
   - API Gateway (port 8081)
   - Products (port 8082)
   - Checkout (port 8086)
   - Cart (port 8083)
   - React UI (port 8080)

Logging features:
- All output goes to bootstrap.log
- Each command logs: timestamp, command, directory, and status
- On failure: logs exit code with human-readable description
- Error output is captured and logged
- Individual service logs go to *.out files

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Move bootstrap.sh from root to scripts/ directory
- Fix Maven build failure by adding -Dexec.skip=true flag to skip
  Docker image builds when running in native YugabyteDB mode
- Add comprehensive BATS test suite (65 tests) covering:
  - Help/usage flags (-h, --help)
  - Argument parsing and error handling
  - Script structure and required functions
  - Prerequisite checks (java, mvn, python3, cqlsh, psql)
  - Exit code mapping
  - YugabyteDB docker and native installation modes
  - Microservice startup configuration
  - Port configuration for all services
- Add scripts/tests/README.md with BATS installation and usage guide
- Update main README.md with:
  - Quick start section using bootstrap script
  - Table of prerequisites requiring manual intervention
  - Bootstrap script options documentation
  - Instructions to stop services

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add prominent FRONTEND URL section at end of bootstrap output
- Implement OSC 8 escape sequence for clickable hyperlinks in
  supported terminals (iTerm2, VS Code, modern Linux terminals)
- Add 4 new BATS tests for frontend URL display functionality:
  - Verifies FRONTEND URL section exists
  - Verifies printf is used for URL output
  - Verifies OSC 8 escape sequence for hyperlink
  - Verifies "click to open" hint text
- Update test README with new test count (65 -> 69)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add .specify/ directory with Speckit configuration
- Add .cursor/ directory with AI coding assistant rules
- Configure project context and development guidelines for AI assistants
- Fix BASE_DIR calculation to use project root instead of scripts/
  directory, resolving Maven build failures when running from scripts/
- Add check_java_version() function to verify Java 17+ is installed
- Enhance install_java() with platform-specific installation steps:
  - macOS: Homebrew with symlink to JavaVirtualMachines
  - Linux: apt-get, dnf/yum, pacman with JAVA_HOME setup
  - Windows: Chocolatey or winget with fallback instructions
- Fix cqlsh version warning by preferring ycqlsh over cqlsh
- Set CQLSH_NO_BUNDLED=1 to avoid Python 3.12+ incompatibility
  with bundled six 1.12.0 library
- Add CQLSH_CMD variable for dynamic CQL shell selection
- Expand test suite from 69 to 83 tests covering:
  - Java 17 installation on all platforms
  - JAVA_HOME and symlink creation
  - ycqlsh preference and CQLSH_NO_BUNDLED setting
- Update tests README with accurate test counts

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Create comprehensive OpenAPI 3.0.3 specifications documenting all
REST APIs in the Yugastore e-commerce platform:

- cart-microservice.yaml: Shopping cart operations (add, remove,
  get products, clear cart) on port 8083
- products-microservice.yaml: Product catalog with pagination and
  category filtering on port 8082
- checkout-microservice.yaml: Order processing with inventory
  validation on port 8086
- login-microservice.yaml: User authentication and registration
  endpoints on port 8085
- api-gateway.yaml: Aggregated API routing all requests through
  port 8081
- react-ui-bff.yaml: Backend-for-Frontend API consumed by the
  React UI on port 8080

Each specification includes:
- Complete endpoint documentation with parameters and responses
- Schema definitions for domain objects (ProductMetadata,
  CartContents, CheckoutStatus, Order, ProductRanking, etc.)
- Example values for testing
- Tags for grouping related operations

Also includes README.md with:
- Service overview table with ports and descriptions
- ASCII architecture diagram showing service relationships
- Instructions for viewing specs in Swagger UI or Redoc
- Complete API endpoints summary
- Validation commands

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add comprehensive unit test suites for all 6 microservices based on
OpenAPI specifications. Tests use Python unittest with mock to validate
API contracts without requiring running services.

Test suites included:
- api-gateway-tests (24 tests): Product catalog, cart, checkout endpoints
- cart-microservice-tests (16 tests): Add/remove/clear cart operations
- checkout-microservice-tests (11 tests): Order processing and status
- login-microservice-tests (16 tests): Registration and authentication
- products-microservice-tests (19 tests): Product details and categories
- react-ui-bff-tests (27 tests): BFF endpoints for React frontend

Also includes:
- run_all_tests.sh: Test runner script with venv management
- requirements.txt for each service with pytest dependencies

Total: 113 tests covering all API endpoints

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add Speckit configuration and Cursor AI rules
Add Python parity tests for all microservices
Add OpenAPI/Swagger specifications for all microservices
- Establish core architectural principles (cloud-native, microservices, API stability)
- Define functional requirements (catalog, cart, checkout, authentication)
- Set non-functional requirements (performance, scalability, reliability targets)
- Document system architecture principles for all components
- Specify SDLC workflow with AI-enabled, spec-driven development
- Establish quality gates, observability, and security standards
- Define documentation framework and governance requirements

Version 1.0 ratified on 2025-12-08
- Created comprehensive modernization plan document
- Reorganized screenshots: moved images from docs/ to assets/images/
- Updated README.md with modernization plan reference
- Created docs/inputs/business-requirements.md with functional and non-functional requirements
- Removed Purpose/Scope, Functional Requirements, and Non-Functional Requirements sections from constitution
- Renumbered remaining sections for consistency
- Constitution now focuses on engineering principles, architecture, and governance
Add comprehensive constitution for cloud-native e-commerce platform
parametrization and others added 13 commits December 9, 2025 12:20
- Apply X.com-inspired color scheme with dark mode default
- Add Twitter blue (#1D9BF0) as primary accent color
- Update typography with system fonts and extrabold headings
- Modernize navbar with improved hover states
- Enhance product cards with rounded corners and primary color accents
- Create Badge component for category labels
- Set up Jest testing infrastructure with 100% coverage on modified files
- Add comprehensive tests for Button, Card, Badge, Navbar, and ProductCard

Closes #19

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Create agent instructions for starting all local services
- Add slash command to trigger local development environment
- Frontend runs on port 1123, opens Chrome automatically
- Starts PostgreSQL, Eureka, Python microservices, and Next.js

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- test_issue_19.py: Functional tests for UI styling changes
- conftest.py: Pytest configuration
- requirements.txt: Test dependencies

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

Comments