cat > README.md << 'EOF'
A full-stack e-commerce application built with React (TypeScript) and Spring Boot.
- React 18 with TypeScript
- React Router for navigation
- Material-UI (MUI) components
- Framer Motion animations
- React Hook Form + Yup validation
- Axios for API communication
- CSS Modules for styling
- Spring Boot 3.x
- Spring Security with JWT authentication
- Spring Data JPA
- MySQL Database
- RESTful API architecture
- Role-based access control (User/Admin)
- Hibernate ORM
- 🛍️ Product browsing and search functionality
- 🛒 Shopping cart management
- 👤 User authentication & authorization
- 📦 Order management system
- 💳 Secure checkout process
- 🔐 Admin dashboard with analytics
- 📊 Product management (CRUD operations)
- 👥 User management for admins
- 📈 Sales analytics and reporting
- ❤️ Wishlist functionality
- 🔍 Advanced product filtering
shopedge-ecommerce-platform/ ├── shopedge-backend/ # Spring Boot backend │ ├── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ └── resources/ │ │ └── test/ │ ├── pom.xml │ └── README.md │ ├── shopedge-frontend/ # React TypeScript frontend │ ├── public/ │ ├── src/ │ │ ├── components/ │ │ ├── pages/ │ │ ├── hooks/ │ │ ├── services/ │ │ ├── utils/ │ │ └── styles/ │ ├── package.json │ └── README.md │ ├── .gitignore ├── LICENSE └── README.md
- Java 17+ (for backend)
- Node.js 16+ and npm (for frontend)
- MySQL 8.0+ (for database)
- Maven 3.6+ (for backend build)
cd shopedge-backend
Configure database in src/main/resources/application.properties spring.datasource.url=jdbc:mysql://localhost:3306/shopedge spring.datasource.username=your_username spring.datasource.password=your_password Run the application ./mvnw spring-boot:run
Backend will run on http://localhost:8080
cd shopedge-frontend
Install dependencies npm install
Start development server npm start
Frontend will run on http://localhost:3000
POST /api/auth/register- User registrationPOST /api/auth/login- User loginPOST /api/auth/logout- User logout
GET /api/products- Get all productsGET /api/products/{id}- Get product by IDPOST /api/products- Create product (Admin)PUT /api/products/{id}- Update product (Admin)DELETE /api/products/{id}- Delete product (Admin)
GET /api/cart- Get user cartPOST /api/cart/add- Add item to cartPUT /api/cart/update- Update cart itemDELETE /api/cart/remove/{id}- Remove item from cart
GET /api/orders- Get user ordersGET /api/orders/{id}- Get order detailsPOST /api/orders/create- Create new orderPUT /api/orders/{id}/status- Update order status (Admin)
GET /api/admin/dashboard- Get dashboard statisticsGET /api/admin/users- Get all usersPUT /api/admin/users/{id}/role- Update user role
The application uses MySQL with the following main entities:
- Users
- Products
- Categories
- Cart Items
- Orders
- Order Items
- JWT-based authentication
- BCrypt password encryption
- Role-based access control (ROLE_USER, ROLE_ADMIN)
- CORS configuration for frontend-backend communication
- Protected API endpoints
Your Name
- GitHub: @YOUR_USERNAME
- LinkedIn: Your Profile
This project is licensed under the MIT License - see the LICENSE file for details.
- Spring Boot framework
- React community
- Material-UI components
- All open-source contributors EOF