A full-stack e-commerce platform for buying and selling digital stickers. Built with React (Frontend) and Spring Boot (Backend), featuring secure payment integration via Stripe.
- Overview
- Features
- Tech Stack
- Installation
- Usage
- Environment Variables
- API Endpoints
- Contributing
- License
Fancy Sticker is an e-commerce platform where users can browse, purchase, and manage digital sticker collections. The platform includes user authentication, shopping cart functionality, secure payments through Stripe, and admin capabilities for managing inventory and orders.
- π Browse and search through sticker collections
- π« Add stickers to cart and proceed to checkout
- π Secure user authentication (login/register)
- π³ Payment processing with Stripe integration
- π View order history and track purchases
- π€ User profile management
- π¨ Manage sticker inventory (add/edit/delete stickers)
- π Monitor orders and sales analytics
- π₯ User account management
- π Sales reporting and statistics
- Framework: React 19 with TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS 4
- State Management: React Context API
- Routing: React Router DOM v7
- UI Components: Font Awesome Icons
- Notifications: React Toastify
- HTTP Client: Axios
- State Persistence: JS Cookie
- Framework: Spring Boot 3
- Language: Java 17+
- Build Tool: Maven
- Database: PostgreSQL (production), H2 (development)
- ORM: Spring Data JPA
- Security: Spring Security with JWT authentication
- Payment: Stripe Spring Boot Starter
- API Documentation: Swagger/OpenAPI
- Validation: Hibernate Validator
- Node.js v18+ and npm v9+
- Java 17+ and Maven 3.8+
- PostgreSQL (for production deployment)
# Navigate to client directory
cd client
# Install dependencies
npm install
# Start development server
npm run dev# Navigate to server directory
cd fancysticker-server
# Install dependencies and build
mvn clean install
# Start development server
mvn spring-boot:run# Build frontend
cd client
npm run build
# Build backend
cd ../fancysticker-server
mvn package
# Run production JAR
java -jar target/fancysticker-server-1.0.0.jar- Start the backend server:
mvn spring-boot:run(in fancysticker-server directory) - Start the frontend development server:
npm run dev(in client directory) - Access the application at: http://localhost:5173
- API documentation available at: http://localhost:8080/swagger-ui.html
VITE_API_URL=http://localhost:8080/api
STRIPE_SECRET_KEY=your_real_stripe_secret_key_here
DATABASE_URL=jdbc:postgresql://localhost:5432/sticker_db
DB_USERNAME=your_db_username
DB_PASSWORD=your_db_password
JWT_SECRET=your_jwt_secret_key
JWT_EXPIRATION_MS=86400000
POST /api/auth/register- Register new userPOST /api/auth/login- Login userPOST /api/auth/logout- Logout user
GET /api/products- Get all stickersGET /api/products/{id}- Get sticker by IDPOST /api/products- Create new sticker (Admin)PUT /api/products/{id}- Update sticker (Admin)DELETE /api/products/{id}- Delete sticker (Admin)
GET /api/cart- Get user's cartPOST /api/cart- Add item to cartPUT /api/cart/{itemId}- Update cart item quantityDELETE /api/cart/{itemId}- Remove item from cart
GET /api/orders- Get user's order historyPOST /api/orders- Create new orderGET /api/orders/{id}- Get order by IDGET /api/admin/orders- Get all orders (Admin)PUT /api/admin/orders/{id}/status- Update order status (Admin)
POST /api/payment/create-intent- Create Stripe payment intentPOST /api/payment/webhook- Stripe webhook endpoint
- 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
Please make sure to update tests as appropriate and follow the existing code style.
This project is licensed under the MIT License - see the LICENSE file for details.
- Stripe for payment processing
- Font Awesome for icons
- Tailwind CSS for styling
- Vite for fast development experience
- Spring Boot team for robust backend framework
Last updated: March 2026