A modular monolithic digital marketplace platform with integrated payment processing, user management, and product storage capabilities.
This is a modular monolithic application where each component is developed as a separate module within a single codebase:
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
- 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
- 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
stripe.secret-key= your key
stripe.webhook-secret= your keyproperties
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
Clone the repository:
git clone https://github.com/BogdanPryadko4853/online-shop-spring-boot.git
cd online-shop-spring-bootBuild and start containers:
docker-compose up --build -dVerify services:
MinIO Console: http://localhost:9001 (Login: minioadmin/minioadmin)
PostgreSQL: localhost:5432
To test Stripe payments locally:
Install Stripe CLI:
brew install stripe/stripe-cli/stripe # Mac
choco install stripe-cli # WindowsForward webhooks:
stripe listen --forward-to localhost:8080/api/payments/webhookTest payment confirmation::
stripe payment_intents confirm pi_3RrzUm2UEvzpXWoY18tA2LYx --payment-method=pm_card_visa --off-session=trueThe 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
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
Distributed under the MIT License. See LICENSE for more information.
