Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🚀 BBS E-Commerce Platform - Live on Production

Vercel Render Spring Boot Angular PostgreSQL Kafka Stripe TailwindCSS

BBS E-Commerce is a highly scalable, fully functional, and production-ready full-stack e-commerce platform. Designed for modern web standards, it seamlessly connects individual customers with corporate sellers, providing a secure, real-time, and ultra-fast shopping experience.

🟢 Live Demo: https://bbs-ecommerce-psi.vercel.app


🏗️ Architecture & Engineering Practices (Why This Project Stands Out)

This project goes beyond a simple CRUD application. It was architected to solve real-world e-commerce challenges using enterprise-level design patterns:

1. Domain-Driven Design (DDD)

The backend is strictly modularized into distinct business domains (Auth, User, Product, Order, Cart, Payment). This encapsulation ensures that business logic remains highly cohesive and loosely coupled, making the codebase maintainable and microservice-ready.

2. Event-Driven Architecture (EDA) with Apache Kafka

To ensure high availability and prevent blocking operations during high-traffic events (e.g., flash sales), Apache Kafka is used as a message broker:

  • Low Stock Events: When a product's stock reaches critical levels, the ProductService publishes a StockAlertEvent.
  • Asynchronous Notifications: A dedicated Kafka Consumer listens for these events and dispatches automated warning emails to the corporate seller and notification emails to users who favorited the item, all completely asynchronously.

3. Comprehensive Security & Stateless Authentication

  • JWT (JSON Web Token) with Refresh Token Rotation: Implemented a stateless authentication mechanism. Tokens are securely transmitted.
  • Cross-Domain Secure Cookies: Mitigated XSS and CSRF attacks by employing HttpOnly, Secure=true, and SameSite=None cookie policies across decoupled domains (Vercel Frontend <-> Render Backend).
  • Role-Based Access Control (RBAC): Distinct endpoint protection for ADMIN, CORPORATE, and CUSTOMER roles at both the API and UI routing levels.
  • BCrypt Hashing: Passwords are never stored in plain text.

4. Modern Frontend State Management

Built with Angular 18, leveraging Standalone Components and the new Angular Signals API alongside RxJS. This provides highly reactive, fine-grained DOM updates without the overhead of heavy state management libraries like NgRx.

5. Cloud-Native Deployment & Serverless DB

  • Backend: Deployed via Docker containers on Render.
  • Frontend: Deployed on Vercel's Edge Network for lightning-fast global CDN delivery.
  • Database: Utilizing Neon.tech for serverless PostgreSQL, offering auto-scaling and zero-downtime database management.
  • Messaging: Utilizing Aiven for fully managed Kafka clusters.

🌟 Core Features

  • Multi-Role Dashboards:
    • Admin: Can oversee all transactions, manage users, and view platform-wide analytics.
    • Corporate (Seller): Dedicated inventory management, order fulfillment tracking, and low-stock alerts.
    • Customer: Product discovery, wishlists, cart management, and order history.
  • Secure Payment Gateway: Fully integrated with Stripe API (Stripe Checkout) to handle credit card processing, webhook validation, and payment intents securely.
  • Dynamic Cart & Checkout Workflow: Real-time cart calculation, automated stock reservation during checkout, and post-payment order generation.
  • Advanced Search & Filtering: Product filtering by category, price range, and search terms.
  • Responsive & Modern UI: Designed with Tailwind CSS for a pixel-perfect, mobile-first shopping experience.

🛠️ Technology Stack

Backend (Java / Spring Ecosystem)

  • Core: Java 21, Spring Boot 3.3.1
  • Data Persistence: Spring Data JPA, Hibernate, PostgreSQL (Neon)
  • Message Broker: Apache Kafka (Aiven)
  • Security: Spring Security 6, JWT, BCryptPasswordEncoder
  • Payment Processing: Stripe Java SDK
  • API Documentation: Swagger UI / Springdoc OpenAPI

Frontend (Angular Ecosystem)

  • Framework: Angular 18 (Standalone Components, Signals)
  • Styling: Tailwind CSS, PostCSS
  • State Management & Async: RxJS, Signals, HttpClient
  • UI UX: ngx-toastr (Notifications), custom responsive layouts

📸 Screenshots

Ekran görüntüsü 2026-07-23 110233 Ekran görüntüsü 2026-07-23 110248 Ekran görüntüsü 2026-07-23 110301 Ekran görüntüsü 2026-07-23 110340 Ekran görüntüsü 2026-07-23 110448 Ekran görüntüsü 2026-07-23 110458 Ekran görüntüsü 2026-07-23 110537 Ekran görüntüsü 2026-07-23 110602 Ekran görüntüsü 2026-07-23 110609

🚀 Local Development Setup

To run this project locally, follow these steps:

Prerequisites

  • JDK 21
  • Node.js (v18+) and npm
  • PostgreSQL (Local or Cloud)
  • Apache Kafka (Zookeeper/Kraft)

1. Backend (Spring Boot)

  1. Navigate to the backend directory: cd Back/BBS.
  2. Locate src/main/resources/application.yml.example and rename it to application.yml.
  3. Provide your local PostgreSQL credentials, Kafka bootstrap servers, Stripe Secret Key, and JWT Secret.
  4. Run the application using the Maven wrapper:
    ./mvnw spring-boot:run
  5. The API will start on http://localhost:8080. You can explore the endpoints via Swagger UI at http://localhost:8080/swagger-ui.html.

2. Frontend (Angular)

  1. Navigate to the frontend directory: cd Front.
  2. Install all dependencies:
    npm install
  3. (Optional) Ensure src/environments/environment.ts points to your local backend (http://localhost:8080/api).
  4. Start the development server:
    npm start
  5. Access the web interface at http://localhost:4200.

🔒 Security Notice (For Developers)

⚠️ Never commit secrets to version control! This repository uses .gitignore to prevent sensitive files (like application.yml and .env) from being uploaded. Always use the .example files as templates and keep your Stripe API keys, JWT secrets, and database passwords strictly on your local machine or in secure cloud environment variables.

About

Fullstack e-commerce web application built with modern tech stack (Spring Boot, Angular, PostgreSQL, Docker, Kafka, Stripe, Tailwind and more...)

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages