Skip to content

BogdanPryadko4853/online-shop-spring-boot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

128 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

DigitalKeyHub Platform

DigitalKeyHub Logo

A modular monolithic digital marketplace platform with integrated payment processing, user management, and product storage capabilities.

οΏ½ Project Structure

This is a modular monolithic application where each component is developed as a separate module within a single codebase:

πŸ—οΈ Module structure

digitalkeyhub/
β”œβ”€β”€ πŸ“ digitalkeyhub-api/           # πŸ› οΈ  Core API 
β”‚
β”œβ”€β”€ πŸ“ digitalkeyhub-app/           # πŸš€ Main application
β”‚
β”œβ”€β”€ πŸ“ digitalkeyhub-comment/       # πŸ’¬ Comment system
β”‚
β”œβ”€β”€ πŸ“ digitalkeyhub-common-config/ # βš™οΈ Shared configs
β”‚
β”œβ”€β”€ πŸ“ digitalkeyhub-notification/  # βœ‰οΈ Notifications
β”‚
β”œβ”€β”€ πŸ“ digitalkeyhub-order/         # πŸ“¦ Order management
β”‚
β”œβ”€β”€ πŸ“ digitalkeyhub-payment/       # πŸ’³ Payments
β”‚
β”œβ”€β”€ πŸ“ digitalkeyhub-product/       # πŸ›οΈ Products
β”‚
β”œβ”€β”€ πŸ“ digitalkeyhub-security/      # πŸ” Security
β”‚
β”œβ”€β”€ πŸ“ digitalkeyhub-storage/       # πŸ“‚ File storage
β”‚ 
└── πŸ“ digitalkeyhub-user/          # πŸ‘₯ Users
    β”œβ”€β”€ πŸ“„ UserService.java         # User management
    └── πŸ“„ ProfileService.java      # Profile logic

πŸš€ Key Features

  • Modular Architecture: Single codebase with clearly separated modules
  • Payment Processing: Full Stripe integration with webhook support
  • User Management: Complete authentication and profile system
  • Product Management: Digital product storage with MinIO
  • Order Processing: End-to-end order lifecycle management
  • Email Notifications: Transactional email system with Thymeleaf templates

πŸ›  Technology Stack

  • Core: Java 21, Spring Boot 3, Spring Security
  • Database: PostgreSQL
  • Storage: MinIO for object storage
  • Payment: Stripe API integration
  • Email: SMTP with Gmail (test configuration included)
  • Templates: Thymeleaf for email templates
  • Containerization: Docker with Docker Compose

βš™οΈ Configuration Requirements

Stripe Configuration

stripe.secret-key= your key
stripe.webhook-secret= your key

Email Configuration

properties

spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=bogdanpryadko1@gmail.com
spring.mail.password=vrjf xgth yjsz jxbr
spring.mail.protocol=smtp
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.ssl.trust=smtp.gmail.com

🐳 Running with Docker

Clone the repository:

git clone https://github.com/BogdanPryadko4853/online-shop-spring-boot.git
cd online-shop-spring-boot

Build and start containers:

docker-compose up --build -d

Verify services:

App: http://localhost:8080

MinIO Console: http://localhost:9001 (Login: minioadmin/minioadmin)

PostgreSQL: localhost:5432

πŸ’³ Payment Integration

To test Stripe payments locally:

Install Stripe CLI:

brew install stripe/stripe-cli/stripe  # Mac
choco install stripe-cli              # Windows

Forward webhooks:

stripe listen --forward-to localhost:8080/api/payments/webhook

Test payment confirmation::

stripe payment_intents confirm pi_3RrzUm2UEvzpXWoY18tA2LYx --payment-method=pm_card_visa --off-session=true

πŸ“§ Email Configuration

The system uses Thymeleaf templates for emails located in:

Configuration properties:

properties
spring.thymeleaf.email.prefix=classpath:/templates/email/
spring.thymeleaf.cache=false
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.mode=HTML
spring.thymeleaf.suffix=.html

🀝 Contributing

Fork the repository

Create your feature branch (git checkout -b feature/AmazingFeature)

Commit your changes (git commit -m 'Add some AmazingFeature')

Push to the branch (git push origin feature/AmazingFeature)

Open a Pull Request

πŸ“œ License

Distributed under the MIT License. See LICENSE for more information.

About

An online store for digital products and license keys. What it does: πŸ›’ Sells software licenses, game keys, and digital products πŸ” Securely delivers purchased keys instantly πŸ’³ Handles payments via Stripe (credit cards & more) πŸ“¦ Manages product inventory and orders πŸ”” Sends purchase confirmations to customers

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors