Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(ecommerce): add admin module #158

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions examples/apps/ecommerce/web/react-vite-redux-tailwind/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
## ecommerce frontend application

Check out the application [here](https://ecommerce-client-tsy6.onrender.com/)

This is an ecommerce client app which is made by consuming freeapi: https://github.com/hiteshchoudhary/apihub.

### Steps to run the code locally
Expand Down Expand Up @@ -28,6 +30,27 @@ This is an ecommerce client app which is made by consuming freeapi: https://gith
* API for countries & states: https://countriesnow.space/
* Design Inspiration: https://www.figma.com/community/file/1219312065205187851



### Implemented Features
* Allows user to register by email or Google SSO.
* View Categories, View Products In a Category, View All Products, View Product Details, Search for a product.
* Add Products to Cart, Update Product Quantity In Cart, Delete Product from Cart.
* Add address, Update Address, Delete an address.
* View eligible coupon codes.
* Apply Eligible Coupon Codes.
* Pay via PayPal.
* Update profile, Change Password.
* View Orders.
* As an admin
* View Categories, Add a category, Update a category, Delete a category.
* View Products, Add a product, Update a product, Delete a product.
* View Coupons, Add a coupon, Update a coupon, Delete a coupon.
* View Orders, Update Order Status
* Supports Multilingualism, along with right to left languages.



### Dependencies
* [React](https://github.com/facebook/react) : v18.2.0
* [Vite](https://vitejs.dev/) : v5.0.12
Expand All @@ -48,5 +71,7 @@ This is an ecommerce client app which is made by consuming freeapi: https://gith
* [react-i18next](https://github.com/i18next/react-i18next) : v6.20.1
* Form Handling
* [React Hook Form](https://github.com/react-hook-form/react-hook-form) : v7.49.2
* Admin Module Grid
* [AG Grid React](https://www.ag-grid.com/react-data-grid/getting-started/): v 31.2.1


Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
"dependencies": {
"@paypal/react-paypal-js": "^8.1.3",
"@reduxjs/toolkit": "^2.0.1",
"ag-grid-community": "^31.2.1",
"ag-grid-react": "^31.2.1",
"axios": "^1.6.2",
"date-fns": "^3.6.0",
"i18next": "^23.7.11",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -159,5 +159,69 @@
"cancelled": "ألغيت",
"delivered": "تم التوصيل",
"pleaseSelectAOrderStatus": "يرجى تحديد حالة الطلب",
"ourStory": "قصتنا"
"ourStory": "قصتنا",
"admin": "مسؤل",
"addCategory": "إضافة فئة",
"categoryName": "اسم الفئة",
"editCategory": "تحرير الفئة",
"updateCategory": "تحديث الفئة",
"categoryNameIsRequired": "اسم الفئة مطلوب",
"categoryAddedSuccessfully": "تمت إضافة الفئة بنجاح",
"categoryUpdatedSuccessfully": "تم تحديث الفئة بنجاح",
"categoryDeletedSuccessfully": "تم حذف الفئة بنجاح",
"deleteCategory": "حذف الفئة",
"areYouSureYouWantToDeleteTheCategory": "هل أنت متأكد أنك تريد حذف الفئة؟",
"addProduct": "إضافة منتج",
"mainImage": "الصورة الرئيسية",
"subImages": "الصور الفرعية",
"productName": "اسم المنتج",
"description": "الوصف",
"price": "السعر",
"stock": "المخزون",
"category": "الفئة",
"updateProduct": "تحديث المنتج",
"nameIsRequired": "الاسم مطلوب",
"descriptionIsRequired": "الوصف مطلوب",
"priceIsRequired": "السعر مطلوب",
"stockIsRequired": "المخزون مطلوب",
"categoryIsRequired": "الفئة مطلوبة",
"mainImageIsRequired": "الصورة الرئيسية مطلوبة",
"productAddedSuccessfully": "تمت إضافة المنتج بنجاح",
"productUpdatedSuccessfully": "تم تحديث المنتج بنجاح",
"nothingToUpdate": "لا يوجد شيء للتحديث",
"productDeletedSuccessfully": "تم حذف المنتج بنجاح",
"deleteProduct": "حذف المنتج",
"areYouSureYouWantToDeleteTheProduct": "هل أنت متأكد أنك تريد حذف المنتج؟",
"products": "المنتجات",
"orders": "الطلبات",
"coupons": "الكوبونات",
"name": "الاسم",
"addCoupon": "إضافة كوبون",
"changeCouponStatus": "تغيير حالة القسيمة",
"areYouSureYouWantToChangeCouponStatusTo": "هل أنت متأكد أنك تريد تغيير حالة القسيمة إلى",
"active": "نشط",
"inactive": "غير نشط",
"statusChangedSuccessfully": "تم تغيير الحالة بنجاح",
"updateCoupon": "تحديث القسيمة",
"couponCode": "رمز القسيمة",
"discountValue": "قيمة الخصم",
"minimumCartValue": "الحد الأدنى لقيمة السلة",
"startDate": "تاريخ البدء",
"expiryDate": "تاريخ الانتهاء",
"selectDateTime": "اختر التاريخ والوقت",
"couponCodeIsRequired": "رمز القسيمة مطلوب",
"discountValueIsRequired": "قيمة الخصم مطلوبة",
"minimumCartValueIsRequired": "الحد الأدنى لقيمة السلة مطلوب",
"startDateIsRequired": "تاريخ البدء مطلوب",
"expiryDateIsRequired": "تاريخ الانتهاء مطلوب",
"expiryDateCannotBeBeforeStartDate": "تاريخ الانتهاء لا يمكن أن يكون قبل تاريخ البدء",
"couponUpdatedSuccessfully": "تم تحديث القسيمة بنجاح",
"couponAddedSuccessfully": "تمت إضافة القسيمة بنجاح",
"couponDeletedSuccessfully": "تم حذف القسيمة بنجاح",
"deleteCoupon": "حذف القسيمة",
"areYouSureYouWantToDeleteTheCoupon": "هل أنت متأكد أنك تريد حذف القسيمة: ",
"couponCodeMustBeFourCharactersLong": "يجب أن يتكون رمز القسيمة من أربعة أحرف على الأقل",
"orderStatusUpdatedSuccessfully": "تم تحديث حالة الطلب من المتجر بنجاح",
"updateOrderStatus": "تحديث حالة الطلب",
"pleaseWaitFetchingDetails": "يرجى الانتظار، جاري جلب التفاصيل"
}
Original file line number Diff line number Diff line change
Expand Up @@ -159,5 +159,69 @@
"cancelled": "cancelled",
"delivered": "delivered",
"pleaseSelectAOrderStatus": "please select a order status",
"ourStory": "our story"
"ourStory": "our story",
"admin": "admin",
"addCategory": "add category",
"categoryName": "category name",
"editCategory": "edit category",
"updateCategory": "update category",
"categoryNameIsRequired": "category name is required",
"categoryAddedSuccessfully": "category added successfully",
"categoryUpdatedSuccessfully": "category updated successfully",
"categoryDeletedSuccessfully": "category deleted successfully",
"deleteCategory": "delete category",
"areYouSureYouWantToDeleteTheCategory": "are you sure you want to delete the category",
"addProduct": "add product",
"mainImage": "main image",
"subImages": "sub images",
"productName": "product name",
"description": "description",
"price": "price",
"stock": "stock",
"category": "category",
"updateProduct": "update product",
"nameIsRequired": "name is required",
"descriptionIsRequired": "description is required",
"priceIsRequired": "price is required",
"stockIsRequired": "stock is required",
"categoryIsRequired": "category is required",
"mainImageIsRequired": "main image is required",
"productAddedSuccessfully": "product added successfully",
"productUpdatedSuccessfully": "product updated successfully",
"nothingToUpdate": "nothing to update",
"productDeletedSuccessfully": "product deleted successfully",
"deleteProduct": "delete product",
"areYouSureYouWantToDeleteTheProduct": "are you sure you want to delete the product",
"products": "products",
"orders": "orders",
"coupons": "coupons",
"name": "name",
"addCoupon": "add coupon",
"changeCouponStatus": "change coupon status",
"areYouSureYouWantToChangeCouponStatusTo": "are you sure you want to change the coupon status to",
"active": "active",
"inactive": "inactive",
"statusChangedSuccessfully": "status changed successfully",
"updateCoupon": "update coupon",
"couponCode": "coupon code",
"discountValue": "discount value",
"minimumCartValue": "minimum cart value",
"startDate": "start date",
"expiryDate": "expiry date",
"selectDateTime": "select date and time",
"couponCodeIsRequired": "coupon code is required",
"discountValueIsRequired": "discount value is required",
"minimumCartValueIsRequired": "minimum cart value is required",
"startDateIsRequired": "start date is required",
"expiryDateIsRequired": "expiry date is required",
"expiryDateCannotBeBeforeStartDate": "expiry date cannot be before start date",
"couponUpdatedSuccessfully": "coupon updated successfully",
"couponAddedSuccessfully": "coupon added successfully",
"couponDeletedSuccessfully": "coupon deleted successfully",
"deleteCoupon": "delete coupon",
"areYouSureYouWantToDeleteTheCoupon": "are you sure you want to delete the coupon: ",
"couponCodeMustBeFourCharactersLong": "coupon code must be at least four characters long",
"orderStatusUpdatedSuccessfully": "order status updated successfully",
"updateOrderStatus": "update order status",
"pleaseWaitFetchingDetails": "please wait, fetching details"
}
Original file line number Diff line number Diff line change
Expand Up @@ -159,5 +159,69 @@
"cancelled": "रद्द",
"delivered": "वितरित",
"pleaseSelectAOrderStatus": "कृपया एक आदेश की स्थिति चुनें",
"ourStory": "हमारी कहानी"
"ourStory": "हमारी कहानी",
"admin": "व्यवस्थापक",
"addCategory": "श्रेणी जोड़ें",
"categoryName": "श्रेणी का नाम",
"editCategory": "श्रेणी संपादित करें",
"updateCategory": "श्रेणी अपडेट करें",
"categoryNameIsRequired": "श्रेणी का नाम आवश्यक है",
"categoryAddedSuccessfully": "श्रेणी सफलतापूर्वक जोड़ी गई",
"categoryUpdatedSuccessfully": "श्रेणी सफलतापूर्वक अपडेट की गई",
"categoryDeletedSuccessfully": "श्रेणी सफलतापूर्वक हटाई गई",
"deleteCategory": "श्रेणी हटाएं",
"areYouSureYouWantToDeleteTheCategory": "क्या आप वाकई इस श्रेणी को हटाना चाहते हैं",
"addProduct": "उत्पाद जोड़ें",
"mainImage": "मुख्य छवि",
"subImages": "उप छवियाँ",
"productName": "उत्पाद का नाम",
"description": "विवरण",
"price": "मूल्य",
"stock": "स्टॉक",
"category": "श्रेणी",
"updateProduct": "उत्पाद अपडेट",
"nameIsRequired": "नाम आवश्यक है",
"descriptionIsRequired": "विवरण आवश्यक है",
"priceIsRequired": "मूल्य आवश्यक है",
"stockIsRequired": "स्टॉक आवश्यक है",
"categoryIsRequired": "श्रेणी आवश्यक है",
"mainImageIsRequired": "मुख्य छवि आवश्यक है",
"productAddedSuccessfully": "उत्पाद सफलतापूर्वक जोड़ा गया",
"productUpdatedSuccessfully": "उत्पाद सफलतापूर्वक अपडेट किया गया",
"nothingToUpdate": "कुछ अपडेट करने योग्य नहीं है",
"productDeletedSuccessfully": "उत्पाद सफलतापूर्वक हटा दिया गया",
"deleteProduct": "उत्पाद हटाएं",
"areYouSureYouWantToDeleteTheProduct": "क्या आप वाकई उत्पाद को हटाना चाहते हैं?",
"products": "उत्पाद",
"orders": "आदेश",
"coupons": "कूपन",
"name": "नाम",
"addCoupon": "कूपन जोड़ें",
"changeCouponStatus": "कूपन की स्थिति बदलें",
"areYouSureYouWantToChangeCouponStatusTo": "क्या आप सुनिश्चित हैं कि आप कूपन की स्थिति को बदलना चाहते हैं",
"active": "सक्रिय",
"inactive": "निष्क्रिय",
"statusChangedSuccessfully": "स्थिति सफलतापूर्वक बदल दी गई है",
"updateCoupon": "कूपन अपडेट करें",
"couponCode": "कूपन कोड",
"discountValue": "छूट मूल्य",
"minimumCartValue": "न्यूनतम कार्ट मूल्य",
"startDate": "प्रारंभ तिथि",
"expiryDate": "समाप्ति तिथि",
"selectDateTime": "तारीख और समय का चयन करें",
"couponCodeIsRequired": "कूपन कोड आवश्यक है",
"discountValueIsRequired": "डिस्काउंट मूल्य आवश्यक है",
"minimumCartValueIsRequired": "न्यूनतम कार्ट मूल्य आवश्यक है",
"startDateIsRequired": "प्रारंभ तिथि आवश्यक है",
"expiryDateIsRequired": "समाप्ति तिथि आवश्यक है",
"expiryDateCannotBeBeforeStartDate": "समाप्ति तिथि प्रारंभ तिथि से पहले नहीं हो सकती",
"couponUpdatedSuccessfully": "कूपन सफलतापूर्वक अपडेट किया गया",
"couponAddedSuccessfully": "कूपन सफलतापूर्वक जोड़ा गया",
"couponDeletedSuccessfully": "कूपन सफलतापूर्वक हटा दिया गया",
"deleteCoupon": "कूपन हटाएं",
"areYouSureYouWantToDeleteTheCoupon": "क्या आप सुनिश्चित हैं कि आप कूपन हटाना चाहते हैं: ",
"couponCodeMustBeFourCharactersLong": "कूपन कोड कम से कम चार अक्षरों का होना चाहिए",
"orderStatusUpdatedSuccessfully": "आदेश की स्थिति सफलतापूर्वक अपडेट की गई",
"updateOrderStatus": "आदेश की स्थिति अपडेट करें",
"pleaseWaitFetchingDetails": "कृपया प्रतीक्षा करें, विवरण प्राप्त किए जा रहे हैं"
}
Loading