├── assets ├── images │ ├── icon.png │ ├── favicon.png │ ├── splash.png │ ├── react-logo.png │ ├── sale-banner.jpg │ ├── adaptive-icon.png │ ├── react-logo@2x.png │ ├── react-logo@3x.png │ ├── ecommerce-splash.jpg │ ├── partial-react-logo.png │ └── google-logo.svg └── fonts │ └── SpaceMono-Regular.ttf ├── babel.config.js ├── declarations.d.ts ├── constants └── Colors.ts ├── tsconfig.json ├── .gitignore ├── app ├── (tabs) │ ├── cart.tsx │ ├── index.tsx │ ├── explore.tsx │ ├── profile.tsx │ ├── notifications.tsx │ └── _layout.tsx ├── signup.tsx ├── signin.tsx ├── index.tsx └── _layout.tsx ├── metro.config.js ├── types └── type.ts ├── app.json ├── README.md ├── package.json └── data └── db.json /assets/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzpradip/expo-ecoomerce-app-starter/HEAD/assets/images/icon.png -------------------------------------------------------------------------------- /assets/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzpradip/expo-ecoomerce-app-starter/HEAD/assets/images/favicon.png -------------------------------------------------------------------------------- /assets/images/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzpradip/expo-ecoomerce-app-starter/HEAD/assets/images/splash.png -------------------------------------------------------------------------------- /assets/images/react-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzpradip/expo-ecoomerce-app-starter/HEAD/assets/images/react-logo.png -------------------------------------------------------------------------------- /assets/images/sale-banner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzpradip/expo-ecoomerce-app-starter/HEAD/assets/images/sale-banner.jpg -------------------------------------------------------------------------------- /assets/images/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzpradip/expo-ecoomerce-app-starter/HEAD/assets/images/adaptive-icon.png -------------------------------------------------------------------------------- /assets/images/react-logo@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzpradip/expo-ecoomerce-app-starter/HEAD/assets/images/react-logo@2x.png -------------------------------------------------------------------------------- /assets/images/react-logo@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzpradip/expo-ecoomerce-app-starter/HEAD/assets/images/react-logo@3x.png -------------------------------------------------------------------------------- /assets/fonts/SpaceMono-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzpradip/expo-ecoomerce-app-starter/HEAD/assets/fonts/SpaceMono-Regular.ttf -------------------------------------------------------------------------------- /assets/images/ecommerce-splash.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzpradip/expo-ecoomerce-app-starter/HEAD/assets/images/ecommerce-splash.jpg -------------------------------------------------------------------------------- /assets/images/partial-react-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/itzpradip/expo-ecoomerce-app-starter/HEAD/assets/images/partial-react-logo.png -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function (api) { 2 | api.cache(true); 3 | return { 4 | presets: ['babel-preset-expo'], 5 | }; 6 | }; 7 | -------------------------------------------------------------------------------- /declarations.d.ts: -------------------------------------------------------------------------------- 1 | declare module "*.svg" { 2 | import React from "react"; 3 | import { SvgProps } from "react-native-svg"; 4 | const content: React.FC; 5 | export default content; 6 | } -------------------------------------------------------------------------------- /constants/Colors.ts: -------------------------------------------------------------------------------- 1 | export const Colors = { 2 | primary: '#572fff', 3 | black: '#333', 4 | gray: '#666', 5 | lightGray: '#999', 6 | white: '#fff', 7 | background: '#F4F4F4', 8 | highlight: '#F4CE14', 9 | } -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "expo/tsconfig.base", 3 | "compilerOptions": { 4 | "strict": true, 5 | "paths": { 6 | "@/*": [ 7 | "./*" 8 | ] 9 | } 10 | }, 11 | "include": [ 12 | "**/*.ts", 13 | "**/*.tsx", 14 | ".expo/types/**/*.ts", 15 | "expo-env.d.ts" 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | .expo/ 3 | dist/ 4 | npm-debug.* 5 | *.jks 6 | *.p8 7 | *.p12 8 | *.key 9 | *.mobileprovision 10 | *.orig.* 11 | web-build/ 12 | 13 | # macOS 14 | .DS_Store 15 | 16 | # @generated expo-cli sync-2b81b286409207a5da26e14c78851eb30d8ccbdb 17 | # The following patterns were generated by expo-cli 18 | 19 | expo-env.d.ts 20 | # @end expo-cli -------------------------------------------------------------------------------- /app/(tabs)/cart.tsx: -------------------------------------------------------------------------------- 1 | import { StyleSheet, Text, View } from 'react-native' 2 | import React from 'react' 3 | 4 | type Props = {} 5 | 6 | const CartScreen = (props: Props) => { 7 | return ( 8 | 9 | Cart Screen 10 | 11 | ) 12 | } 13 | 14 | export default CartScreen 15 | 16 | const styles = StyleSheet.create({ 17 | container: { 18 | flex: 1, 19 | justifyContent: 'center', 20 | alignItems: 'center' 21 | } 22 | }) -------------------------------------------------------------------------------- /app/(tabs)/index.tsx: -------------------------------------------------------------------------------- 1 | import { StyleSheet, Text, View } from 'react-native' 2 | import React from 'react' 3 | 4 | type Props = {} 5 | 6 | const HomeScreen = (props: Props) => { 7 | return ( 8 | 9 | Home Screen 10 | 11 | ) 12 | } 13 | 14 | export default HomeScreen 15 | 16 | const styles = StyleSheet.create({ 17 | container: { 18 | flex: 1, 19 | justifyContent: 'center', 20 | alignItems: 'center' 21 | } 22 | }) -------------------------------------------------------------------------------- /app/signup.tsx: -------------------------------------------------------------------------------- 1 | import { StyleSheet, Text, View } from 'react-native' 2 | import React from 'react' 3 | 4 | type Props = {} 5 | 6 | const SignUpScreen = (props: Props) => { 7 | return ( 8 | 9 | SignUp Screen 10 | 11 | ) 12 | } 13 | 14 | export default SignUpScreen 15 | 16 | const styles = StyleSheet.create({ 17 | container: { 18 | flex: 1, 19 | justifyContent: 'center', 20 | alignItems: 'center' 21 | } 22 | }) -------------------------------------------------------------------------------- /app/(tabs)/explore.tsx: -------------------------------------------------------------------------------- 1 | import { StyleSheet, Text, View } from 'react-native' 2 | import React from 'react' 3 | 4 | type Props = {} 5 | 6 | const ExploreScreen = (props: Props) => { 7 | return ( 8 | 9 | Explore Screen 10 | 11 | ) 12 | } 13 | 14 | export default ExploreScreen 15 | 16 | const styles = StyleSheet.create({ 17 | container: { 18 | flex: 1, 19 | justifyContent: 'center', 20 | alignItems: 'center' 21 | } 22 | }) -------------------------------------------------------------------------------- /app/(tabs)/profile.tsx: -------------------------------------------------------------------------------- 1 | import { StyleSheet, Text, View } from 'react-native' 2 | import React from 'react' 3 | 4 | type Props = {} 5 | 6 | const ProfileScreen = (props: Props) => { 7 | return ( 8 | 9 | Profile Screen 10 | 11 | ) 12 | } 13 | 14 | export default ProfileScreen 15 | 16 | const styles = StyleSheet.create({ 17 | container: { 18 | flex: 1, 19 | justifyContent: 'center', 20 | alignItems: 'center' 21 | } 22 | }) -------------------------------------------------------------------------------- /app/(tabs)/notifications.tsx: -------------------------------------------------------------------------------- 1 | import { StyleSheet, Text, View } from 'react-native' 2 | import React from 'react' 3 | 4 | type Props = {} 5 | 6 | const NotificationsScreen = (props: Props) => { 7 | return ( 8 | 9 | Notifications Screen 10 | 11 | ) 12 | } 13 | 14 | export default NotificationsScreen 15 | 16 | const styles = StyleSheet.create({ 17 | container: { 18 | flex: 1, 19 | justifyContent: 'center', 20 | alignItems: 'center' 21 | } 22 | }) -------------------------------------------------------------------------------- /metro.config.js: -------------------------------------------------------------------------------- 1 | const { getDefaultConfig } = require("expo/metro-config"); 2 | 3 | module.exports = (() => { 4 | const config = getDefaultConfig(__dirname); 5 | 6 | const { transformer, resolver } = config; 7 | 8 | config.transformer = { 9 | ...transformer, 10 | babelTransformerPath: require.resolve("react-native-svg-transformer/expo") 11 | }; 12 | config.resolver = { 13 | ...resolver, 14 | assetExts: resolver.assetExts.filter((ext) => ext !== "svg"), 15 | sourceExts: [...resolver.sourceExts, "svg"] 16 | }; 17 | 18 | return config; 19 | })(); -------------------------------------------------------------------------------- /types/type.ts: -------------------------------------------------------------------------------- 1 | export interface ProductType { 2 | id: number; 3 | title: string; 4 | price: number; 5 | description: string; 6 | images: string[]; 7 | category: Category; 8 | } 9 | 10 | interface Category { 11 | id: number; 12 | name: string; 13 | image: string; 14 | } 15 | 16 | export interface CategoryType { 17 | id: number; 18 | name: string; 19 | image: string; 20 | } 21 | 22 | export interface CartItemType { 23 | id: number; 24 | title: string; 25 | price: number; 26 | quantity: number; 27 | image: string; 28 | } 29 | 30 | export interface NotificationType { 31 | id: number; 32 | title: string; 33 | message: string; 34 | timestamp: string; 35 | } -------------------------------------------------------------------------------- /app/signin.tsx: -------------------------------------------------------------------------------- 1 | import { StyleSheet, Text, TouchableOpacity, View } from 'react-native' 2 | import React from 'react' 3 | import { Link, router } from 'expo-router' 4 | 5 | type Props = {} 6 | 7 | const SignInScreen = (props: Props) => { 8 | return ( 9 | 10 | SignIn Screen 11 | {/* */} 12 | { 13 | router.dismissAll(); 14 | router.push('/(tabs)'); 15 | }}> 16 | Go to App Home Screen 17 | 18 | {/* */} 19 | 20 | ) 21 | } 22 | 23 | export default SignInScreen 24 | 25 | const styles = StyleSheet.create({ 26 | container: { 27 | flex: 1, 28 | justifyContent: 'center', 29 | alignItems: 'center' 30 | } 31 | }) -------------------------------------------------------------------------------- /app/index.tsx: -------------------------------------------------------------------------------- 1 | import { StyleSheet, Text, TouchableOpacity, View } from "react-native"; 2 | import React from "react"; 3 | import { Link } from "expo-router"; 4 | 5 | type Props = {}; 6 | 7 | const WelcomeScreen = (props: Props) => { 8 | return ( 9 | 10 | Welcome Screen 11 | 12 | 13 | Go to SignIn Screen 14 | 15 | 16 | 17 | 18 | Go to SignUp Screen 19 | 20 | 21 | 22 | ); 23 | }; 24 | 25 | export default WelcomeScreen; 26 | 27 | const styles = StyleSheet.create({ 28 | container: { 29 | flex: 1, 30 | justifyContent: "center", 31 | alignItems: "center", 32 | }, 33 | }); 34 | -------------------------------------------------------------------------------- /app.json: -------------------------------------------------------------------------------- 1 | { 2 | "expo": { 3 | "name": "expo-ecommerece-app-starter", 4 | "slug": "expo-ecommerece-app-starter", 5 | "version": "1.0.0", 6 | "orientation": "portrait", 7 | "icon": "./assets/images/icon.png", 8 | "scheme": "myapp", 9 | "userInterfaceStyle": "automatic", 10 | "splash": { 11 | "image": "./assets/images/splash.png", 12 | "resizeMode": "contain", 13 | "backgroundColor": "#ffffff" 14 | }, 15 | "ios": { 16 | "supportsTablet": true 17 | }, 18 | "android": { 19 | "adaptiveIcon": { 20 | "foregroundImage": "./assets/images/adaptive-icon.png", 21 | "backgroundColor": "#ffffff" 22 | } 23 | }, 24 | "web": { 25 | "bundler": "metro", 26 | "output": "static", 27 | "favicon": "./assets/images/favicon.png" 28 | }, 29 | "plugins": [ 30 | "expo-router" 31 | ], 32 | "experiments": { 33 | "typedRoutes": true 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /assets/images/google-logo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/_layout.tsx: -------------------------------------------------------------------------------- 1 | import { useFonts } from 'expo-font'; 2 | import { Stack } from 'expo-router'; 3 | import * as SplashScreen from 'expo-splash-screen'; 4 | import { useEffect } from 'react'; 5 | import 'react-native-reanimated'; 6 | 7 | // Prevent the splash screen from auto-hiding before asset loading is complete. 8 | SplashScreen.preventAutoHideAsync(); 9 | 10 | export default function RootLayout() { 11 | const [loaded] = useFonts({ 12 | SpaceMono: require('../assets/fonts/SpaceMono-Regular.ttf'), 13 | }); 14 | 15 | useEffect(() => { 16 | if (loaded) { 17 | SplashScreen.hideAsync(); 18 | } 19 | }, [loaded]); 20 | 21 | if (!loaded) { 22 | return null; 23 | } 24 | 25 | return ( 26 | 27 | 28 | 29 | 30 | 31 | ); 32 | } 33 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Expo eCommerce App Starter Template 👋 2 | 3 | This is a starter template for the expo eCommerce app tutorial on my YouTube channel. 4 | 5 | ## Get started 6 | 7 | 1. Install dependencies 8 | 9 | ```bash 10 | npm install 11 | ``` 12 | 13 | 2. Start the app 14 | 15 | ```bash 16 | npx expo start 17 | ``` 18 | 19 | Extra dependencies added here 20 | 21 | - [Axios](https://www.npmjs.com/package/axios) 22 | - [Expo Linear Gradient](https://docs.expo.dev/versions/latest/sdk/linear-gradient/) 23 | - [React Native SVG](https://github.com/software-mansion/react-native-svg#installation) 24 | - [React Native SVG Transformer](https://github.com/kristerkari/react-native-svg-transformer#readme) 25 | 26 | Additionally, I've used [JSON Server](https://github.com/typicode/json-server#readme) to create REST API endpoints based on the json data provided in `data/db.json` file. I haven't installed it in this project, but I installed it globally on my machine using `npm install -g json-server` command. To start up the JSON Server type this command into your terminal: `json-server --watch data/db.json --port 8000`. If you don't use `--port` flag then it'll run on "https://localhost:3000" by default. -------------------------------------------------------------------------------- /app/(tabs)/_layout.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Tabs } from "expo-router"; 3 | import { Ionicons } from '@expo/vector-icons'; 4 | 5 | export default function TabLayout() { 6 | return ( 7 | 8 | ( 11 | 12 | ) 13 | }} /> 14 | ( 17 | 18 | ) 19 | }} /> 20 | ( 23 | 24 | ) 25 | }} /> 26 | ( 30 | 31 | ) 32 | }} /> 33 | ( 36 | 37 | ) 38 | }} /> 39 | 40 | ); 41 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "expo-ecommerece-app-starter", 3 | "main": "expo-router/entry", 4 | "version": "1.0.0", 5 | "scripts": { 6 | "start": "expo start", 7 | "reset-project": "node ./scripts/reset-project.js", 8 | "android": "expo start --android", 9 | "ios": "expo start --ios", 10 | "web": "expo start --web", 11 | "test": "jest --watchAll", 12 | "lint": "expo lint" 13 | }, 14 | "jest": { 15 | "preset": "jest-expo" 16 | }, 17 | "dependencies": { 18 | "@expo/vector-icons": "^14.0.2", 19 | "@react-navigation/native": "^6.0.2", 20 | "axios": "^1.7.7", 21 | "expo": "~51.0.28", 22 | "expo-constants": "~16.0.2", 23 | "expo-font": "~12.0.9", 24 | "expo-linear-gradient": "~13.0.2", 25 | "expo-linking": "~6.3.1", 26 | "expo-router": "~3.5.23", 27 | "expo-splash-screen": "~0.27.5", 28 | "expo-status-bar": "~1.12.1", 29 | "expo-system-ui": "~3.0.7", 30 | "expo-web-browser": "~13.0.3", 31 | "react": "18.2.0", 32 | "react-dom": "18.2.0", 33 | "react-native": "0.74.5", 34 | "react-native-gesture-handler": "~2.16.1", 35 | "react-native-reanimated": "~3.10.1", 36 | "react-native-safe-area-context": "4.10.5", 37 | "react-native-screens": "3.31.1", 38 | "react-native-svg": "^15.7.1", 39 | "react-native-web": "~0.19.10" 40 | }, 41 | "devDependencies": { 42 | "@babel/core": "^7.20.0", 43 | "@types/jest": "^29.5.12", 44 | "@types/react": "~18.2.45", 45 | "@types/react-test-renderer": "^18.0.7", 46 | "jest": "^29.2.1", 47 | "jest-expo": "~51.0.3", 48 | "react-native-svg-transformer": "^1.5.0", 49 | "react-test-renderer": "18.2.0", 50 | "typescript": "~5.3.3" 51 | }, 52 | "private": true 53 | } 54 | -------------------------------------------------------------------------------- /data/db.json: -------------------------------------------------------------------------------- 1 | { 2 | "saleProducts": [ 3 | { 4 | "id": 29, 5 | "title": "Mid-Century Modern Wooden Dining Table", 6 | "price": 24, 7 | "description": "Elevate your dining room with this sleek Mid-Century Modern dining table, featuring an elegant walnut finish and tapered legs for a timeless aesthetic. Its sturdy wood construction and minimalist design make it a versatile piece that fits with a variety of decor styles. Perfect for intimate dinners or as a stylish spot for your morning coffee.", 8 | "images": [ 9 | "https://i.imgur.com/DMQHGA0.jpeg", 10 | "https://i.imgur.com/qrs9QBg.jpeg", 11 | "https://i.imgur.com/XVp8T1I.jpeg" 12 | ], 13 | "category": { 14 | "id": 3, 15 | "name": "nuevo", 16 | "image": "https://i.imgur.com/Qphac99.jpeg" 17 | } 18 | }, 19 | { 20 | "id": 30, 21 | "title": "Elegant Golden-Base Stone Top Dining Table", 22 | "price": 66, 23 | "description": "Elevate your dining space with this luxurious table, featuring a sturdy golden metal base with an intricate rod design that provides both stability and chic elegance. The smooth stone top in a sleek round shape offers a robust surface for your dining pleasure. Perfect for both everyday meals and special occasions, this table easily complements any modern or glam decor.", 24 | "images": [ 25 | "https://i.imgur.com/NWIJKUj.jpeg", 26 | "https://i.imgur.com/Jn1YSLk.jpeg", 27 | "https://i.imgur.com/VNZRvx5.jpeg" 28 | ], 29 | "category": { 30 | "id": 3, 31 | "name": "nuevo", 32 | "image": "https://i.imgur.com/Qphac99.jpeg" 33 | } 34 | }, 35 | { 36 | "id": 31, 37 | "title": "Modern Elegance Teal Armchair", 38 | "price": 25, 39 | "description": "Elevate your living space with this beautifully crafted armchair, featuring a sleek wooden frame that complements its vibrant teal upholstery. Ideal for adding a pop of color and contemporary style to any room, this chair provides both superb comfort and sophisticated design. Perfect for reading, relaxing, or creating a cozy conversation nook.", 40 | "images": [ 41 | "https://i.imgur.com/6wkyyIN.jpeg", 42 | "https://i.imgur.com/Ald3Rec.jpeg", 43 | "https://i.imgur.com/dIqo03c.jpeg" 44 | ], 45 | "category": { 46 | "id": 3, 47 | "name": "nuevo", 48 | "image": "https://i.imgur.com/Qphac99.jpeg" 49 | } 50 | }, 51 | { 52 | "id": 32, 53 | "title": "Elegant Solid Wood Dining Table", 54 | "price": 67, 55 | "description": "Enhance your dining space with this sleek, contemporary dining table, crafted from high-quality solid wood with a warm finish. Its sturdy construction and minimalist design make it a perfect addition for any home looking for a touch of elegance. Accommodates up to six guests comfortably and includes a striking fruit bowl centerpiece. The overhead lighting is not included.", 56 | "images": [ 57 | "https://i.imgur.com/4lTaHfF.jpeg", 58 | "https://i.imgur.com/JktHE1C.jpeg", 59 | "https://i.imgur.com/cQeXQMi.jpeg" 60 | ], 61 | "category": { 62 | "id": 3, 63 | "name": "nuevo", 64 | "image": "https://i.imgur.com/Qphac99.jpeg" 65 | } 66 | }, 67 | { 68 | "id": 33, 69 | "title": "Modern Minimalist Workstation Setup", 70 | "price": 49, 71 | "description": "Elevate your home office with our Modern Minimalist Workstation Setup, featuring a sleek wooden desk topped with an elegant computer, stylish adjustable wooden desk lamp, and complimentary accessories for a clean, productive workspace. This setup is perfect for professionals seeking a contemporary look that combines functionality with design.", 72 | "images": [ 73 | "https://i.imgur.com/3oXNBst.jpeg", 74 | "https://i.imgur.com/ErYYZnT.jpeg", 75 | "https://i.imgur.com/boBPwYW.jpeg" 76 | ], 77 | "category": { 78 | "id": 3, 79 | "name": "nuevo", 80 | "image": "https://i.imgur.com/Qphac99.jpeg" 81 | } 82 | }, 83 | { 84 | "id": 34, 85 | "title": "Modern Ergonomic Office Chair", 86 | "price": 71, 87 | "description": "Elevate your office space with this sleek and comfortable Modern Ergonomic Office Chair. Designed to provide optimal support throughout the workday, it features an adjustable height mechanism, smooth-rolling casters for easy mobility, and a cushioned seat for extended comfort. The clean lines and minimalist white design make it a versatile addition to any contemporary workspace.", 88 | "images": [ 89 | "https://i.imgur.com/3dU0m72.jpeg", 90 | "https://i.imgur.com/zPU3EVa.jpeg" 91 | ], 92 | "category": { 93 | "id": 3, 94 | "name": "nuevo", 95 | "image": "https://i.imgur.com/Qphac99.jpeg" 96 | } 97 | }, 98 | { 99 | "id": 35, 100 | "title": "Futuristic Holographic Soccer Cleats", 101 | "price": 39, 102 | "description": "Step onto the field and stand out from the crowd with these eye-catching holographic soccer cleats. Designed for the modern player, these cleats feature a sleek silhouette, lightweight construction for maximum agility, and durable studs for optimal traction. The shimmering holographic finish reflects a rainbow of colors as you move, ensuring that you'll be noticed for both your skills and style. Perfect for the fashion-forward athlete who wants to make a statement.", 103 | "images": [ 104 | "https://i.imgur.com/qNOjJje.jpeg", 105 | "https://i.imgur.com/NjfCFnu.jpeg", 106 | "https://i.imgur.com/eYtvXS1.jpeg" 107 | ], 108 | "category": { 109 | "id": 4, 110 | "name": "Shoes", 111 | "image": "https://i.imgur.com/qNOjJje.jpeg" 112 | } 113 | }, 114 | { 115 | "id": 36, 116 | "title": "Rainbow Glitter High Heels", 117 | "price": 39, 118 | "description": "Step into the spotlight with these eye-catching rainbow glitter high heels. Designed to dazzle, each shoe boasts a kaleidoscope of shimmering colors that catch and reflect light with every step. Perfect for special occasions or a night out, these stunners are sure to turn heads and elevate any ensemble.", 119 | "images": [ 120 | "https://i.imgur.com/62gGzeF.jpeg", 121 | "https://i.imgur.com/5MoPuFM.jpeg", 122 | "https://i.imgur.com/sUVj7pK.jpeg" 123 | ], 124 | "category": { 125 | "id": 4, 126 | "name": "Shoes", 127 | "image": "https://i.imgur.com/qNOjJje.jpeg" 128 | } 129 | }, 130 | { 131 | "id": 37, 132 | "title": "Chic Summer Denim Espadrille Sandals", 133 | "price": 33, 134 | "description": "Step into summer with style in our denim espadrille sandals. Featuring a braided jute sole for a classic touch and adjustable denim straps for a snug fit, these sandals offer both comfort and a fashionable edge. The easy slip-on design ensures convenience for beach days or casual outings.", 135 | "images": [ 136 | "https://i.imgur.com/9qrmE1b.jpeg", 137 | "https://i.imgur.com/wqKxBVH.jpeg", 138 | "https://i.imgur.com/sWSV6DK.jpeg" 139 | ], 140 | "category": { 141 | "id": 4, 142 | "name": "Shoes", 143 | "image": "https://i.imgur.com/qNOjJje.jpeg" 144 | } 145 | }, 146 | { 147 | "id": 38, 148 | "title": "Vibrant Runners: Bold Orange & Blue Sneakers", 149 | "price": 27, 150 | "description": "Step into style with these eye-catching sneakers featuring a striking combination of orange and blue hues. Designed for both comfort and fashion, these shoes come with flexible soles and cushioned insoles, perfect for active individuals who don't compromise on style. The reflective silver accents add a touch of modernity, making them a standout accessory for your workout or casual wear.", 151 | "images": [ 152 | "https://i.imgur.com/hKcMNJs.jpeg", 153 | "https://i.imgur.com/NYToymX.jpeg", 154 | "https://i.imgur.com/HiiapCt.jpeg" 155 | ], 156 | "category": { 157 | "id": 4, 158 | "name": "Shoes", 159 | "image": "https://i.imgur.com/qNOjJje.jpeg" 160 | } 161 | } 162 | ], 163 | "products": [ 164 | { 165 | "id": 7, 166 | "title": "Classic Comfort Drawstring Joggers", 167 | "price": 79, 168 | "description": "Experience the perfect blend of comfort and style with our Classic Comfort Drawstring Joggers. Designed for a relaxed fit, these joggers feature a soft, stretchable fabric, convenient side pockets, and an adjustable drawstring waist with elegant gold-tipped detailing. Ideal for lounging or running errands, these pants will quickly become your go-to for effortless, casual wear.", 169 | "images": [ 170 | "https://i.imgur.com/mp3rUty.jpeg", 171 | "https://i.imgur.com/JQRGIc2.jpeg" 172 | ], 173 | "category": { 174 | "id": 1, 175 | "name": "nuevo", 176 | "image": "https://i.imgur.com/QkIa5tT.jpeg" 177 | } 178 | }, 179 | { 180 | "id": 8, 181 | "title": "Classic Red Jogger Sweatpants", 182 | "price": 98, 183 | "description": "Experience ultimate comfort with our red jogger sweatpants, perfect for both workout sessions and lounging around the house. Made with soft, durable fabric, these joggers feature a snug waistband, adjustable drawstring, and practical side pockets for functionality. Their tapered design and elastic cuffs offer a modern fit that keeps you looking stylish on the go.", 184 | "images": [ 185 | "https://i.imgur.com/9LFjwpI.jpeg", 186 | "https://i.imgur.com/vzrTgUR.jpeg", 187 | "https://i.imgur.com/p5NdI6n.jpeg" 188 | ], 189 | "category": { 190 | "id": 1, 191 | "name": "nuevo", 192 | "image": "https://i.imgur.com/QkIa5tT.jpeg" 193 | } 194 | }, 195 | { 196 | "id": 9, 197 | "title": "Classic Navy Blue Baseball Cap", 198 | "price": 61, 199 | "description": "Step out in style with this sleek navy blue baseball cap. Crafted from durable material, it features a smooth, structured design and an adjustable strap for the perfect fit. Protect your eyes from the sun and complement your casual looks with this versatile and timeless accessory.", 200 | "images": [ 201 | "https://i.imgur.com/R3iobJA.jpeg", 202 | "https://i.imgur.com/Wv2KTsf.jpeg", 203 | "https://i.imgur.com/76HAxcA.jpeg" 204 | ], 205 | "category": { 206 | "id": 1, 207 | "name": "nuevo", 208 | "image": "https://i.imgur.com/QkIa5tT.jpeg" 209 | } 210 | }, 211 | { 212 | "id": 11, 213 | "title": "Classic Red Baseball Cap", 214 | "price": 35, 215 | "description": "Elevate your casual wardrobe with this timeless red baseball cap. Crafted from durable fabric, it features a comfortable fit with an adjustable strap at the back, ensuring one size fits all. Perfect for sunny days or adding a sporty touch to your outfit.", 216 | "images": [ 217 | "https://i.imgur.com/cBuLvBi.jpeg", 218 | "https://i.imgur.com/N1GkCIR.jpeg", 219 | "https://i.imgur.com/kKc9A5p.jpeg" 220 | ], 221 | "category": { 222 | "id": 1, 223 | "name": "nuevo", 224 | "image": "https://i.imgur.com/QkIa5tT.jpeg" 225 | } 226 | }, 227 | { 228 | "id": 12, 229 | "title": "Classic Black Baseball Cap", 230 | "price": 58, 231 | "description": "Elevate your casual wear with this timeless black baseball cap. Made with high-quality, breathable fabric, it features an adjustable strap for the perfect fit. Whether you’re out for a jog or just running errands, this cap adds a touch of style to any outfit.", 232 | "images": [ 233 | "https://i.imgur.com/KeqG6r4.jpeg", 234 | "https://i.imgur.com/xGQOw3p.jpeg", 235 | "https://i.imgur.com/oO5OUjb.jpeg" 236 | ], 237 | "category": { 238 | "id": 1, 239 | "name": "nuevo", 240 | "image": "https://i.imgur.com/QkIa5tT.jpeg" 241 | } 242 | }, 243 | { 244 | "id": 13, 245 | "title": "Classic Olive Chino Shorts", 246 | "price": 84, 247 | "description": "Elevate your casual wardrobe with these classic olive chino shorts. Designed for comfort and versatility, they feature a smooth waistband, practical pockets, and a tailored fit that makes them perfect for both relaxed weekends and smart-casual occasions. The durable fabric ensures they hold up throughout your daily activities while maintaining a stylish look.", 248 | "images": [ 249 | "https://i.imgur.com/UsFIvYs.jpeg", 250 | "https://i.imgur.com/YIq57b6.jpeg" 251 | ], 252 | "category": { 253 | "id": 1, 254 | "name": "nuevo", 255 | "image": "https://i.imgur.com/QkIa5tT.jpeg" 256 | } 257 | }, 258 | { 259 | "id": 14, 260 | "title": "Classic High-Waisted Athletic Shorts", 261 | "price": 43, 262 | "description": "Stay comfortable and stylish with our Classic High-Waisted Athletic Shorts. Designed for optimal movement and versatility, these shorts are a must-have for your workout wardrobe. Featuring a figure-flattering high waist, breathable fabric, and a secure fit that ensures they stay in place during any activity, these shorts are perfect for the gym, running, or even just casual wear.", 263 | "images": [ 264 | "https://i.imgur.com/eGOUveI.jpeg", 265 | "https://i.imgur.com/UcsGO7E.jpeg", 266 | "https://i.imgur.com/NLn4e7S.jpeg" 267 | ], 268 | "category": { 269 | "id": 1, 270 | "name": "nuevo", 271 | "image": "https://i.imgur.com/QkIa5tT.jpeg" 272 | } 273 | }, 274 | { 275 | "id": 15, 276 | "title": "Classic White Crew Neck T-Shirt", 277 | "price": 39, 278 | "description": "Elevate your basics with this versatile white crew neck tee. Made from a soft, breathable cotton blend, it offers both comfort and durability. Its sleek, timeless design ensures it pairs well with virtually any outfit. Ideal for layering or wearing on its own, this t-shirt is a must-have staple for every wardrobe.", 279 | "images": [ 280 | "https://i.imgur.com/axsyGpD.jpeg", 281 | "https://i.imgur.com/T8oq9X2.jpeg", 282 | "https://i.imgur.com/J6MinJn.jpeg" 283 | ], 284 | "category": { 285 | "id": 1, 286 | "name": "nuevo", 287 | "image": "https://i.imgur.com/QkIa5tT.jpeg" 288 | } 289 | }, 290 | { 291 | "id": 16, 292 | "title": "Classic White Tee - Timeless Style and Comfort", 293 | "price": 73, 294 | "description": "Elevate your everyday wardrobe with our Classic White Tee. Crafted from premium soft cotton material, this versatile t-shirt combines comfort with durability, perfect for daily wear. Featuring a relaxed, unisex fit that flatters every body type, it's a staple piece for any casual ensemble. Easy to care for and machine washable, this white tee retains its shape and softness wash after wash. Pair it with your favorite jeans or layer it under a jacket for a smart look.", 295 | "images": [ 296 | "https://i.imgur.com/Y54Bt8J.jpeg", 297 | "https://i.imgur.com/SZPDSgy.jpeg", 298 | "https://i.imgur.com/sJv4Xx0.jpeg" 299 | ], 300 | "category": { 301 | "id": 1, 302 | "name": "nuevo", 303 | "image": "https://i.imgur.com/QkIa5tT.jpeg" 304 | } 305 | }, 306 | { 307 | "id": 17, 308 | "title": "Classic Black T-Shirt", 309 | "price": 35, 310 | "description": "Elevate your everyday style with our Classic Black T-Shirt. This staple piece is crafted from soft, breathable cotton for all-day comfort. Its versatile design features a classic crew neck and short sleeves, making it perfect for layering or wearing on its own. Durable and easy to care for, it's sure to become a favorite in your wardrobe.", 311 | "images": [ 312 | "https://i.imgur.com/9DqEOV5.jpeg", 313 | "https://i.imgur.com/ae0AEYn.jpeg", 314 | "https://i.imgur.com/mZ4rUjj.jpeg" 315 | ], 316 | "category": { 317 | "id": 1, 318 | "name": "nuevo", 319 | "image": "https://i.imgur.com/QkIa5tT.jpeg" 320 | } 321 | }, 322 | { 323 | "id": 18, 324 | "title": "Sleek White & Orange Wireless Gaming Controller", 325 | "price": 69, 326 | "description": "Elevate your gaming experience with this state-of-the-art wireless controller, featuring a crisp white base with vibrant orange accents. Designed for precision play, the ergonomic shape and responsive buttons provide maximum comfort and control for endless hours of gameplay. Compatible with multiple gaming platforms, this controller is a must-have for any serious gamer looking to enhance their setup.", 327 | "images": [ 328 | "https://i.imgur.com/ZANVnHE.jpeg", 329 | "https://i.imgur.com/Ro5z6Tn.jpeg", 330 | "https://i.imgur.com/woA93Li.jpeg" 331 | ], 332 | "category": { 333 | "id": 2, 334 | "name": "Electronics", 335 | "image": "https://i.imgur.com/ZANVnHE.jpeg" 336 | } 337 | }, 338 | { 339 | "id": 19, 340 | "title": "Sleek Wireless Headphone & Inked Earbud Set", 341 | "price": 44, 342 | "description": "Experience the fusion of style and sound with this sophisticated audio set featuring a pair of sleek, white wireless headphones offering crystal-clear sound quality and over-ear comfort. The set also includes a set of durable earbuds, perfect for an on-the-go lifestyle. Elevate your music enjoyment with this versatile duo, designed to cater to all your listening needs.", 343 | "images": [ 344 | "https://i.imgur.com/yVeIeDa.jpeg", 345 | "https://i.imgur.com/jByJ4ih.jpeg", 346 | "https://i.imgur.com/KXj6Tpb.jpeg" 347 | ], 348 | "category": { 349 | "id": 2, 350 | "name": "Electronics", 351 | "image": "https://i.imgur.com/ZANVnHE.jpeg" 352 | } 353 | }, 354 | { 355 | "id": 21, 356 | "title": "Efficient 2-Slice Toaster", 357 | "price": 48, 358 | "description": "Enhance your morning routine with our sleek 2-slice toaster, featuring adjustable browning controls and a removable crumb tray for easy cleaning. This compact and stylish appliance is perfect for any kitchen, ensuring your toast is always golden brown and delicious.", 359 | "images": [ 360 | "https://i.imgur.com/keVCVIa.jpeg", 361 | "https://i.imgur.com/afHY7v2.jpeg", 362 | "https://i.imgur.com/yAOihUe.jpeg" 363 | ], 364 | "category": { 365 | "id": 2, 366 | "name": "Electronics", 367 | "image": "https://i.imgur.com/ZANVnHE.jpeg" 368 | } 369 | }, 370 | { 371 | "id": 22, 372 | "title": "Sleek Wireless Computer Mouse", 373 | "price": 10, 374 | "description": "Experience smooth and precise navigation with this modern wireless mouse, featuring a glossy finish and a comfortable ergonomic design. Its responsive tracking and easy-to-use interface make it the perfect accessory for any desktop or laptop setup. The stylish blue hue adds a splash of color to your workspace, while its compact size ensures it fits neatly in your bag for on-the-go productivity.", 375 | "images": [ 376 | "https://i.imgur.com/w3Y8NwQ.jpeg", 377 | "https://i.imgur.com/WJFOGIC.jpeg", 378 | "https://i.imgur.com/dV4Nklf.jpeg" 379 | ], 380 | "category": { 381 | "id": 2, 382 | "name": "Electronics", 383 | "image": "https://i.imgur.com/ZANVnHE.jpeg" 384 | } 385 | }, 386 | { 387 | "id": 23, 388 | "title": "Sleek Modern Laptop with Ambient Lighting", 389 | "price": 43, 390 | "description": "Experience next-level computing with our ultra-slim laptop, featuring a stunning display illuminated by ambient lighting. This high-performance machine is perfect for both work and play, delivering powerful processing in a sleek, portable design. The vibrant colors add a touch of personality to your tech collection, making it as stylish as it is functional.", 391 | "images": [ 392 | "https://i.imgur.com/OKn1KFI.jpeg", 393 | "https://i.imgur.com/G4f21Ai.jpeg", 394 | "https://i.imgur.com/Z9oKRVJ.jpeg" 395 | ], 396 | "category": { 397 | "id": 2, 398 | "name": "Electronics", 399 | "image": "https://i.imgur.com/ZANVnHE.jpeg" 400 | } 401 | }, 402 | { 403 | "id": 24, 404 | "title": "Sleek Modern Laptop for Professionals", 405 | "price": 97, 406 | "description": "Experience cutting-edge technology and elegant design with our latest laptop model. Perfect for professionals on-the-go, this high-performance laptop boasts a powerful processor, ample storage, and a long-lasting battery life, all encased in a lightweight, slim frame for ultimate portability. Shop now to elevate your work and play.", 407 | "images": [ 408 | "https://i.imgur.com/ItHcq7o.jpeg", 409 | "https://i.imgur.com/55GM3XZ.jpeg", 410 | "https://i.imgur.com/tcNJxoW.jpeg" 411 | ], 412 | "category": { 413 | "id": 2, 414 | "name": "Electronics", 415 | "image": "https://i.imgur.com/ZANVnHE.jpeg" 416 | } 417 | }, 418 | { 419 | "id": 25, 420 | "title": "Stylish Red & Silver Over-Ear Headphones", 421 | "price": 39, 422 | "description": "Immerse yourself in superior sound quality with these sleek red and silver over-ear headphones. Designed for comfort and style, the headphones feature cushioned ear cups, an adjustable padded headband, and a detachable red cable for easy storage and portability. Perfect for music lovers and audiophiles who value both appearance and audio fidelity.", 423 | "images": [ 424 | "https://i.imgur.com/YaSqa06.jpeg", 425 | "https://i.imgur.com/isQAliJ.jpeg", 426 | "https://i.imgur.com/5B8UQfh.jpeg" 427 | ], 428 | "category": { 429 | "id": 2, 430 | "name": "Electronics", 431 | "image": "https://i.imgur.com/ZANVnHE.jpeg" 432 | } 433 | }, 434 | { 435 | "id": 26, 436 | "title": "Sleek Mirror Finish Phone Case", 437 | "price": 27, 438 | "description": "Enhance your smartphone's look with this ultra-sleek mirror finish phone case. Designed to offer style with protection, the case features a reflective surface that adds a touch of elegance while keeping your device safe from scratches and impacts. Perfect for those who love a minimalist and modern aesthetic.", 439 | "images": [ 440 | "https://i.imgur.com/yb9UQKL.jpeg", 441 | "https://i.imgur.com/m2owtQG.jpeg", 442 | "https://i.imgur.com/bNiORct.jpeg" 443 | ], 444 | "category": { 445 | "id": 2, 446 | "name": "Electronics", 447 | "image": "https://i.imgur.com/ZANVnHE.jpeg" 448 | } 449 | }, 450 | { 451 | "id": 27, 452 | "title": "Sleek Smartwatch with Vibrant Display", 453 | "price": 16, 454 | "description": "Experience modern timekeeping with our high-tech smartwatch, featuring a vivid touch screen display, customizable watch faces, and a comfortable blue silicone strap. This smartwatch keeps you connected with notifications and fitness tracking while showcasing exceptional style and versatility.", 455 | "images": [ 456 | "https://i.imgur.com/LGk9Jn2.jpeg", 457 | "https://i.imgur.com/1ttYWaI.jpeg", 458 | "https://i.imgur.com/sPRWnJH.jpeg" 459 | ], 460 | "category": { 461 | "id": 2, 462 | "name": "Electronics", 463 | "image": "https://i.imgur.com/ZANVnHE.jpeg" 464 | } 465 | }, 466 | { 467 | "id": 28, 468 | "title": "Sleek Modern Leather Sofa", 469 | "price": 53, 470 | "description": "Enhance the elegance of your living space with our Sleek Modern Leather Sofa. Designed with a minimalist aesthetic, it features clean lines and a luxurious leather finish. The robust metal legs provide stability and support, while the plush cushions ensure comfort. Perfect for contemporary homes or office waiting areas, this sofa is a statement piece that combines style with practicality.", 471 | "images": [ 472 | "https://i.imgur.com/Qphac99.jpeg", 473 | "https://i.imgur.com/dJjpEgG.jpeg", 474 | "https://i.imgur.com/MxJyADq.jpeg" 475 | ], 476 | "category": { 477 | "id": 3, 478 | "name": "nuevo", 479 | "image": "https://i.imgur.com/Qphac99.jpeg" 480 | } 481 | } 482 | ], 483 | "categories": [ 484 | { 485 | "id": 1, 486 | "name": "Clothes", 487 | "image": "https://i.imgur.com/QkIa5tT.jpeg" 488 | }, 489 | { 490 | "id": 2, 491 | "name": "Electronics", 492 | "image": "https://i.imgur.com/ZANVnHE.jpeg" 493 | }, 494 | { 495 | "id": 3, 496 | "name": "Furniture", 497 | "image": "https://i.imgur.com/Qphac99.jpeg" 498 | }, 499 | { 500 | "id": 4, 501 | "name": "Shoes", 502 | "image": "https://i.imgur.com/qNOjJje.jpeg" 503 | }, 504 | { 505 | "id": 5, 506 | "name": "Jewellery", 507 | "image": "https://pngimagesfree.com/wp-content/uploads/Gold-Jewellery-Necklaces-PNG@.png" 508 | }, 509 | { 510 | "id": 6, 511 | "name": "Miscellaneous", 512 | "image": "https://i.imgur.com/BG8J0Fj.jpg" 513 | } 514 | ], 515 | "cart": [ 516 | { 517 | "id": 1, 518 | "title": "Classic White T-Shirt", 519 | "price": 20, 520 | "quantity": 1, 521 | "image": "https://i.imgur.com/axsyGpD.jpeg" 522 | }, 523 | { 524 | "id": 2, 525 | "title": "Sleek Wireless Computer Mouse", 526 | "price": 10, 527 | "quantity": 1, 528 | "image": "https://i.imgur.com/w3Y8NwQ.jpeg" 529 | }, 530 | { 531 | "id": 3, 532 | "title": "Sleek Smartwatch with Vibrant Display", 533 | "price": 16, 534 | "quantity": 1, 535 | "image": "https://i.imgur.com/LGk9Jn2.jpeg" 536 | } 537 | ], 538 | "notifications": [ 539 | { 540 | "id": 1, 541 | "title": "Order Placed", 542 | "message": "Your order has been successfully placed.", 543 | "timestamp": "3 hours ago" 544 | }, 545 | { 546 | "id": 2, 547 | "title": "Payment Received", 548 | "message": "Your payment has been successfully received.", 549 | "timestamp": "4 hours ago" 550 | }, 551 | { 552 | "id": 3, 553 | "title": "Order Delivered", 554 | "message": "Your order has been successfully delivered.", 555 | "timestamp": "2 days ago" 556 | }, 557 | { 558 | "id": 4, 559 | "title": "Order Cancelled", 560 | "message": "Your order has been successfully cancelled.", 561 | "timestamp": "5 days ago" 562 | } 563 | ] 564 | } 565 | --------------------------------------------------------------------------------