CartifyX - Full Stack Fashion E-Commerce Platform
Zara is a full-stack fashion e-commerce platform inspired by modern online clothing stores. The backend is built using Spring Boot and MySQL with JWT-based authentication and secure REST APIs.
The project focuses on learning real-world backend architecture including authentication, layered architecture, API development, database integration, and Spring Security.
User Registration
Secure Login
BCrypt Password Encryption
JWT Authentication
Protected APIs
Create Products
View Products
Product APIs
Create Orders
View Orders
Order APIs
Layered Architecture
Controller Layer
Service Layer
Repository Layer
DTO Layer
Global Exception Handling
Client (Postman / Frontend)
│
▼
Spring Boot REST APIs
│
▼
Controller Layer
│
▼
Service Layer
│
▼
Repository Layer
│
▼
JPA / Hibernate
│
▼
MySQL Database
Technology
Purpose
Java 17
Programming Language
Spring Boot
Backend Framework
Spring Security
Authentication & Authorization
Spring Data JPA
Database Access
Hibernate
ORM
MySQL
Database
JWT
Authentication
BCrypt
Password Encryption
Maven
Dependency Management
JWT Token Authentication
BCrypt Password Hashing
Protected APIs
Spring Security Integration
Token Validation
Secure Login System
zara/
│
├── controller/
│ ├── UserController
│ ├── ProductController
│ └── OrderController
│
├── service/
│ ├── UserService
│ ├── ProductService
│ └── OrderService
│
├── repository/
│ ├── UserRepository
│ ├── ProductRepository
│ └── OrderRepository
│
├── model/
│ ├── User
│ ├── Product
│ └── Orders
│
├── dto/
│ ├── LoginRequestDTO
│ └── UserResponseDTO
│
├── security/
│ ├── JwtUtil
│ ├── JwtFilter
│ └── SecurityConfig
│
├── exception/
│ ├── ResourceNotFoundException
│ └── GlobalExceptionHandler
│
└── ZaraApplication
User Login
↓
Password Verification using BCrypt
↓
JWT Token Generation
↓
Token Returned to Client
↓
Client Sends Token in Authorization Header
↓
JWT Filter Validates Token
↓
Protected APIs Accessible
id
name
email
password
address
id
name
price
category
description
stock
id
userId
totalAmount
orderDate
Method
Endpoint
Description
POST
/api/users/register
Register User
POST
/api/users/login
Login User
Method
Endpoint
Description
GET
/api/users
Get Users
Method
Endpoint
Description
GET
/api/products
Get Products
POST
/api/products
Add Product
Method
Endpoint
Description
GET
/api/orders
Get Orders
POST
/api/orders
Create Order
This project helped in learning:
Spring Boot Backend Development
REST API Development
MySQL Integration
Spring Security
JWT Authentication
BCrypt Password Encryption
Layered Architecture
DTO Design Pattern
Global Exception Handling
Repository-Service-Controller Flow
React Frontend
Product Listing UI
Cart System
Checkout Page
Authentication UI
Wishlist
Search & Filters
Payment Integration
Admin Dashboard
Order Tracking
Role-Based Authorization
Validation Annotations
Entity Relationships
Refresh Tokens
Pagination & Sorting
Docker
Kubernetes
Redis Caching
AWS Deployment
CI/CD Pipeline
Microservices Architecture