Skip to content

0xAdafang/Stacked_Deck_Api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🃏 Stacked Deck API

Java Spring Boot Security Payment

Stacked Deck API is the robust and secure backend for the Stacked Deck e-commerce platform, specialized in Pokémon TCG sales.

Built with Spring Boot, this API manages the entire sales lifecycle: from precise inventory management (card condition, rarity) to secure payments via Stripe, including a complete support ticket system for users.


📑 Table of Contents


🚀 Key Features

📦 Catalog & Inventory

  • Advanced Product Management: Support for variants (Condition: Mint, Played, Language, Rarity).
  • Public Navigation: Dedicated controllers for public catalog display (PublicController).
  • Inventory Tracking: Precise tracking of stock entries/exits via InventoryMovement.

🛒 Purchase & Payment

  • Complete Purchase Flow: Cart management (Cart), order validation (Checkout), and shipping (Shipping).
  • Secure Payment: Full integration with Stripe, including Webhook handling for real-time status updates.
  • Promotions Engine: Promo code system and dynamic pricing logic.

🛡️ Security & Users

  • Strong Authentication: System based on JWT (JSON Web Tokens) with Refresh Token management.
  • Account Management: Registration, email verification, password reset, and profile management.
  • Role-Based Access: Strict separation between Client and Administrator access.

🎫 Support & Admin

  • Ticketing System: Integrated support ticket system (Support/Ticket) to handle user inquiries.
  • Admin Dashboard: Sales statistics and activity overview via AdminDashboardController.

🏗 Modular Architecture

The project follows a clear package-by-feature architecture:

com.stackeddeck
├── admin/          # Administration (Dashboard, Orders & Catalog Management)
├── auth/           # Authentication (Login, Register, Refresh Token)
├── catalog/        # Product Logic (Categories, Inventory, Enums: Rarity/Condition)
├── checkout/       # Purchase Flow (Cart, Order, Shipping)
├── common/         # Global Utilities (Global Exception Handler)
├── config/         # Configuration (CORS, Swagger, Jackson)
├── notifications/  # Notification System
├── payment/        # Stripe Integration & Webhooks
├── pricing/        # Pricing Logic & Promotions
├── security/       # Spring Security Config & JWT Filters
├── support/        # Customer Service (Tickets)
└── user/           # User Profile Management

🛠 Tech Stack

  • Core: Java 17+, Spring Boot 3.x
  • Data: Spring Data JPA, Hibernate, MySQL/PostgreSQL
  • Security: Spring Security 6, JJWT (Java JWT)
  • Payment: Stripe API
  • Documentation: Swagger / OpenAPI (via SwaggerConfig)
  • Build: Maven

💻 Installation

  1. Clone the repository:

    git clone [https://github.com/0xAdafang/Stacked_Deck_Api.git](https://github.com/0xAdafang/Stacked_Deck_Api.git)
  2. Configuration: Update src/main/resources/application.properties with your environment variables (Database, Stripe Keys, JWT Secret).

  3. Run the application:

    ./mvnw spring-boot:run

📡 API Documentation

Once the application is running, the interactive Swagger UI documentation is available at:

http://localhost:8080/swagger-ui.html

Main Endpoints Overview

Module Base Endpoint Description
Auth /api/auth Login, Register, Refresh Token
Public /api/public Read-only access to catalog
Cart /api/cart Current cart management
Checkout /api/checkout Order validation
Payment /api/payment Stripe payment initialization
Admin /api/admin Restricted operations (Product CRUD, Stats)
Support /api/support Ticket creation and tracking

⚙️ Required Configuration

Ensure you define the following properties for the application to run correctly (especially for Stripe and JWT):

# Database
spring.datasource.url=...
spring.datasource.username=...

# JWT Configuration
application.security.jwt.secret-key=...
application.security.jwt.expiration=...

# Stripe
stripe.api.key=...
stripe.webhook.secret=...

Developed by 0xAdafang

About

Robust E-commerce API built with Spring Boot, Spring Security (JWT) & Stripe. Manages inventory, orders, and authentication for the Stacked Deck marketplace.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages