├── .env
├── .eslintrc.cjs
├── .github
├── ISSUE_TEMPLATE
│ ├── bug_report.md
│ ├── docs.md
│ └── feature_request.md
└── workflows
│ ├── auto-comment-on-pr-merge.yml
│ └── greetings.yml
├── .gitignore
├── .vscode
└── settings.json
├── CODE_OF_CONDUCT
├── CONTRIBUITING.md
├── README.md
├── config.env
├── dist
├── assets
│ ├── banner_kids-C6fj0c76.png
│ ├── banner_mens-PgqiXLwq.png
│ ├── banner_women-BQd59sB_.png
│ ├── exclusive_image-bt6CSZNE.png
│ ├── hero2-o9_St3ke.jpg
│ ├── index-ZnNZpM0-.css
│ ├── index-pXWPBzfy.js
│ ├── product_1-GUEEYTIC.png
│ ├── product_10-2Nl_XECs.png
│ ├── product_11-Xy9Rj3SK.png
│ ├── product_12-G08opUrt.png
│ ├── product_13-rGeN1LiX.png
│ ├── product_14-HCSYfJ2r.png
│ ├── product_15-_NeimwDZ.png
│ ├── product_16-UK1F0lFR.png
│ ├── product_17-FaCkGEZ3.png
│ ├── product_18-2kDGJwTn.png
│ ├── product_19-kLK4N9rs.png
│ ├── product_2-dy3F06M0.png
│ ├── product_20-jsIwK71V.png
│ ├── product_21-KcxO7bZL.png
│ ├── product_22-JoLbAceR.png
│ ├── product_23-r2fN05fz.png
│ ├── product_24-ZmAA0lze.png
│ ├── product_25-aChXG8-c.png
│ ├── product_26-zRCKzXXt.png
│ ├── product_27-Yfay04_o.png
│ ├── product_28-RsTEJnLA.png
│ ├── product_29-eZLxGKeh.png
│ ├── product_3-_afa8pZE.png
│ ├── product_30-_pFrpM4Q.png
│ ├── product_31-iAMH-fJB.png
│ ├── product_32-CyRC6Jur.png
│ ├── product_33-IfEocB95.png
│ ├── product_34-h5qGMUDj.png
│ ├── product_35-8pYrG3Bo.png
│ ├── product_36-j1BwQLL9.png
│ ├── product_4-Z2Y1MIkX.png
│ ├── product_5-TY_if21P.png
│ ├── product_6-A5JpRwa6.png
│ ├── product_7-l0IetaTg.png
│ ├── product_8-U60BzIcC.png
│ └── product_9-qerwHpJY.png
├── index.html
└── vite.svg
├── index.html
├── learn.md
├── package-lock.json
├── package.json
├── postcss.config.js
├── public
└── vite.svg
├── server
├── .gitignore
├── config.env.sample
├── config
│ ├── DBconnect.js
│ └── JWTAuthentication.js
├── controllers
│ ├── auth
│ │ └── authController.js
│ ├── kids-controller.js
│ ├── loginController.js
│ ├── mens-controller.js
│ ├── signupController.js
│ └── womens-controller.js
├── index.js
├── middlewares
│ └── auth-helper.js
├── models
│ ├── Kids-model.js
│ ├── Mens-model.js
│ ├── OtpModel.js
│ ├── Womens-model.js
│ └── userModel.js
├── package.json
├── routes
│ ├── Stripe-route.js
│ ├── auth
│ │ └── authRoutes.js
│ ├── kids-route.js
│ ├── loginRoute.js
│ ├── mens-route.js
│ ├── signupRoute.js
│ └── womens-route.js
└── utils
│ ├── decodeJwtToken.js
│ ├── generateJwtToken.js
│ ├── generateOTP.js
│ └── sendEmail.js
├── src
├── App.jsx
├── Components
│ ├── Breadcrumb.jsx
│ ├── CartItems.jsx
│ ├── CheckNow.jsx
│ ├── Comment.jsx
│ ├── DarkModeToggle.jsx
│ ├── DescriptionBox.jsx
│ ├── Footer.jsx
│ ├── Hero.jsx
│ ├── Item.jsx
│ ├── Navbar.jsx
│ ├── NewCollection.jsx
│ ├── Newsletter.jsx
│ ├── Offers.jsx
│ ├── Payment.jsx
│ ├── Popular.jsx
│ ├── ProductDisplay.jsx
│ ├── RelatedProduct.jsx
│ ├── SavedItems.jsx
│ └── StarRating.jsx
├── Context
│ ├── SavedContext.jsx
│ └── ShopContext.jsx
├── Pages
│ ├── About.jsx
│ ├── Cart.jsx
│ ├── Contact.jsx
│ ├── Login.jsx
│ ├── NotFound.jsx
│ ├── PaymentSucces.jsx
│ ├── Product.jsx
│ ├── Search.jsx
│ ├── Shop.jsx
│ ├── ShopCategory.jsx
│ ├── Signup.jsx
│ ├── Success.jsx
│ ├── WishList.jsx
│ └── paymentfail.jsx
├── assets
│ ├── 50504080326686.webp
│ ├── D-1.0-UHP-16052024-MainBannerDailyChanging-Z1-P1-BrandDay-DNMX-Flat60.avif
│ ├── D-1.0-UHP-16052024-MainBannerDailyChanging-Z1-P7-AX-SuperDry-min40-extra750.avif
│ ├── D-1.0-UHP-16052024-mainbanner-z1-p1-iconicsale-4080HP Desktop.avif
│ ├── Empty_Cart_img.png
│ ├── Hero.jpg
│ ├── all_product.js
│ ├── arrow.png
│ ├── austin-distel-7uoMmzPd2JA-unsplash.jpg
│ ├── averie-woodard-4nulm-JUYFo-unsplash.jpg
│ ├── banner_kids.png
│ ├── banner_mens.png
│ ├── banner_women.png
│ ├── breadcrum_arrow.png
│ ├── cart_cross_icon.png
│ ├── cart_icon.png
│ ├── cart_product_icon.png
│ ├── chat_icon.png
│ ├── data.js
│ ├── dennys-lennon-DCslPWw7Bs0-unsplash.jpg
│ ├── dropdown_icon.png
│ ├── email_icon.png
│ ├── exclusive_image.png
│ ├── filled_wishlist.png
│ ├── google.png
│ ├── hand_icon.png
│ ├── hero1.jpg
│ ├── hero2.jpg
│ ├── hero_image.png
│ ├── instagram_icon.png
│ ├── logo.png
│ ├── logo_big.png
│ ├── mubariz-mehdizadeh-t3zrEm88ehc-unsplash.jpg
│ ├── new_collections.js
│ ├── outlined_wishlist.png
│ ├── p1_product.png
│ ├── p1_product_i1.png
│ ├── p1_product_i2.png
│ ├── p1_product_i3.png
│ ├── p1_product_i4.png
│ ├── phone_icon.png
│ ├── pintester_icon.png
│ ├── product_1.png
│ ├── product_10.png
│ ├── product_11.png
│ ├── product_12.png
│ ├── product_13.png
│ ├── product_14.png
│ ├── product_15.png
│ ├── product_16.png
│ ├── product_17.png
│ ├── product_18.png
│ ├── product_19.png
│ ├── product_2.png
│ ├── product_20.png
│ ├── product_21.png
│ ├── product_22.png
│ ├── product_23.png
│ ├── product_24.png
│ ├── product_25.png
│ ├── product_26.png
│ ├── product_27.png
│ ├── product_28.png
│ ├── product_29.png
│ ├── product_3.png
│ ├── product_30.png
│ ├── product_31.png
│ ├── product_32.png
│ ├── product_33.png
│ ├── product_34.png
│ ├── product_35.png
│ ├── product_36.png
│ ├── product_4.png
│ ├── product_5.png
│ ├── product_6.png
│ ├── product_7.png
│ ├── product_8.png
│ ├── product_9.png
│ ├── react.svg
│ ├── star_dull_icon.png
│ ├── star_icon.png
│ ├── store.png
│ ├── whatsapp_icon.png
│ └── wishlist_icon.png
├── index.css
└── main.jsx
├── tailwind.config.js
├── vercel.json
└── vite.config.js
/.env:
--------------------------------------------------------------------------------
1 | VITE_BACKEND_URL=http://localhost:7000/api/v1
2 | VITE_GOOGLE_CLIENT_ID=430349486581-523p7m5mlh1mjjne5h3h3q2t0hd0okeg.apps.googleusercontent.com
--------------------------------------------------------------------------------
/.eslintrc.cjs:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | root: true,
3 | env: { browser: true, es2020: true },
4 | extends: [
5 | 'eslint:recommended',
6 | 'plugin:react/recommended',
7 | 'plugin:react/jsx-runtime',
8 | 'plugin:react-hooks/recommended',
9 | ],
10 | ignorePatterns: ['dist', '.eslintrc.cjs'],
11 | parserOptions: { ecmaVersion: 'latest', sourceType: 'module' },
12 | settings: { react: { version: '18.2' } },
13 | plugins: ['react-refresh'],
14 | rules: {
15 | 'react-refresh/only-export-components': [
16 | 'warn',
17 | { allowConstantExport: true },
18 | ],
19 | },
20 | }
21 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: 🪲 Bug Report
3 | about: Create a bug report to help us resolving the bug
4 | title: '🪲[Bug]: '
5 | labels: 'bug'
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Describe the bug**
11 | A clear and concise description of what the bug is.
12 |
13 | **To Reproduce**
14 | Steps to reproduce the behavior:
15 | 1. Go to '...'
16 | 2. Click on '....'
17 | 3. Scroll down to '....'
18 | 4. See error
19 |
20 | **Expected behavior**
21 | A clear and concise description of what you expected to happen.
22 |
23 | **Screenshots**
24 | If applicable, add screenshots to help explain your problem.
25 |
26 | **Desktop (please complete the following information):**
27 | - OS: [e.g. iOS]
28 | - Browser [e.g. chrome, safari]
29 | - Version [e.g. 22]
30 |
31 | **Smartphone (please complete the following information):**
32 | - Device: [e.g. iPhone6]
33 | - OS: [e.g. iOS8.1]
34 | - Browser [e.g. stock browser, safari]
35 | - Version [e.g. 22]
36 |
37 | **Additional context**
38 | Add any other context about the problem here.
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/docs.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: 📝 Documentation
3 | about: Propose changes and improvements to ScrapQuest Docs.
4 | title: '📝[Docs]: '
5 | labels: 'enhancement'
6 | assignees: ''
7 | ---
8 |
9 | **What Docs changes are you proposing?**
10 | Provide a clear description of the changes you're proposing for the documentation. Are you suggesting corrections, clarifications, additions, or updates?
11 |
12 | **Why do the Docs need this improvement? What is the motivation for this change? How will this change benefit the community?**
13 | Explain the motivation behind the proposed changes and how they will benefit the community or users of the documentation.
14 |
15 | **Describe the solution you'd like**
16 | Provide a clear and concise description of the changes you'd like to see implemented in the documentation.
17 |
18 | **Describe alternatives you've considered**
19 | If you've thought about alternative approaches or solutions, briefly describe them here.
20 |
21 | **Additional context**
22 | Add any additional context, examples, or screenshots related to the proposed documentation changes.
23 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: 💡 Feature Request
3 | about: Suggest an interesting feature idea for this project
4 | title: '💡[FEATURE]: '
5 | labels: 'enhancement'
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Is your feature request related to a problem? Please describe.**
11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12 |
13 | **Describe the solution you'd like**
14 | A clear and concise description of what you want to happen.
15 |
16 | **Describe alternatives you've considered**
17 | A clear and concise description of any alternative solutions or features you've considered.
18 |
19 | **Additional context**
20 | Add any other context or screenshots about the feature request here.
--------------------------------------------------------------------------------
/.github/workflows/auto-comment-on-pr-merge.yml:
--------------------------------------------------------------------------------
1 | name: Auto Comment on PR Merge
2 |
3 | on:
4 | pull_request:
5 | types: [closed]
6 |
7 | jobs:
8 | comment:
9 | if: github.event.pull_request.merged == true
10 | runs-on: ubuntu-latest
11 |
12 | steps:
13 | - name: Add Comment to Merged PR
14 | env:
15 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
16 | run: |
17 | curl -X POST \
18 | -H "Authorization: token $GITHUB_TOKEN" \
19 | -H "Accept: application/vnd.github.v3+json" \
20 | -d '{"body":"🎉 Your pull request has been successfully merged! 🎉 Thank you for your contribution to our project. Your efforts are greatly appreciated. Keep up the fantastic work! 🚀"}' \
21 | "https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.pull_request.number }}/comments"
22 |
--------------------------------------------------------------------------------
/.github/workflows/greetings.yml:
--------------------------------------------------------------------------------
1 | name: 'Greetings'
2 |
3 | on:
4 | fork:
5 | push:
6 | branches: [main]
7 | issues:
8 | types: [opened]
9 | pull_request_target:
10 | types: [opened]
11 |
12 | jobs:
13 | welcome:
14 | runs-on: ubuntu-latest
15 | steps:
16 | - uses: actions/checkout@v1
17 | - uses: EddieHubCommunity/gh-action-community/src/welcome@main
18 | with:
19 | github-token: ${{ secrets.GITHUB_TOKEN }}
20 | issue-message: |
21 | Congratulations, @${{ github.actor }}! 🎉 Thank you for creating your issue. Your contribution is greatly appreciated and we look forward to working with you to resolve the issue. Keep up the great work!
22 | pr-message: |
23 | Great job, @${{ github.actor }}! 🎉 Thank you for submitting your pull request. Your contribution is valuable and we appreciate your efforts to improve our project.
24 | footer: 'We will promptly review your changes and offer feedback. Keep up the excellent work! Kindly remember to check our [contributing guidelines](https://github.com/mohitparmar1/Shopy/blob/main/README.md)'
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "liveServer.settings.port": 5501
3 | }
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT:
--------------------------------------------------------------------------------
1 | # Code of Conduct
2 |
3 | 1. **Respectful Communication**: All interactions within the platform, including comments, reviews, and messages, should be conducted with respect and courtesy towards other users and staff members.
4 |
5 | 2. **Honesty and Integrity**: Users are expected to provide accurate information about products and services, including pricing, availability, and specifications. Deceptive practices such as false advertising or misleading descriptions are strictly prohibited.
6 |
7 | 3. **Fair Competition**: Competition among sellers should be fair and transparent. Any attempts to manipulate search rankings, ratings, or reviews to gain an unfair advantage will not be tolerated.
8 |
9 | 4. **Intellectual Property Rights**: Users must respect the intellectual property rights of others, including trademarks, copyrights, and patents. Unauthorized use of copyrighted material or counterfeit goods is strictly prohibited.
10 |
11 | 5. **Prohibited Content**: Content that is illegal, obscene, defamatory, or discriminatory is not allowed on the platform. This includes but is not limited to hate speech, harassment, and content that promotes violence or illegal activities.
12 |
13 | 6. **Customer Service Standards**: Sellers are expected to provide prompt and courteous customer service to address any inquiries, complaints, or issues raised by users. Clear policies regarding returns, refunds, and exchanges should be communicated to customers.
14 |
15 | 7. **Security**: Users are responsible for maintaining the security of their accounts and should report any suspicious activity or security breaches immediately.
16 |
17 | By using this platform, all users agree to abide by this code of conduct and contribute to creating a positive environment for everyone.
18 |
--------------------------------------------------------------------------------
/CONTRIBUITING.md:
--------------------------------------------------------------------------------
1 |
✨ Contributors Guide ✨
2 |
Welcome to Our project! 😍 We greatly appreciate your willingness to contribute.😊 This guide will help you get started with the project and make your contributions.
3 |
4 | 
5 |
6 |
7 | This document provides instructions on how to set up and build the project locally.
8 | This project is a clothing order website that allows user to add products , list their own products, make dashboard of seller
9 |
10 | ## Prerequisites
11 |
12 | Before you begin, ensure you have the following installed on your local machine:
13 |
14 | - Node.js (v14.x or later)
15 | - npm (Node Package Manager v6.x or later)
16 |
17 | ## Table of Contents
18 | - [Setup](#Setup)
19 | - [Contributing Guidelines](#contributing-guidelines)
20 | - [Getting Started](#getting-started)
21 | - [Issue Management](#issue-management)
22 | - [Communication and Collaboration](#communication-and-collaboration)
23 | - [Deadline and Completion](#deadline-and-completion)
24 | - [Quality and Learning](#quality-and-learning)
25 |
26 | ## Setup
27 |
28 | Follow these steps to set up the project locally:
29 |
30 | 1. Clone the repository to your local machine:
31 |
32 | ```bash
33 | git clone https://github.com/mohitparmar1/Shopy.git
34 | ```
35 |
36 | 2. Navigate to the project directory:
37 |
38 | ```bash
39 | cd SHOPY
40 | ```
41 | 3. Install project dependencies:
42 |
43 | ```bash
44 | npm install
45 | ```
46 |
47 | ```bash
48 | npm install vite
49 | ```
50 |
51 | 4. Start the development server and run the app
52 |
53 | ```bash
54 | npm run dev
55 | ```
56 |
57 | ## Contributing Guidelines
58 |
59 | Before diving into the learning resources, please familiarize yourself with the following contributing guidelines:
60 |
61 | - Participants/contributors must comment on issues they wish to work on.
62 | - Issues will be assigned on a first-come, first-serve basis by mentors or the Project Administrator (PA).
63 | - Participants can open new issues using the provided template, but these need verification and labeling by a mentor or PA.
64 | - Ensure issues are assigned to you before starting work.
65 | - Each participant can work on a maximum of one issue at a time.
66 | - Don't work on issues already assigned to others.
67 | - Discuss issues with the team before starting work.
68 | - Explain your approach to solving any issue in the comments for better understanding.
69 | - Pull requests will be merged after review by a mentor or PA.
70 | - Create PRs from branches other than `main`.
71 | - Include a descriptive summary of your work in the PR description.
72 | - Use the format `Fixes: issue number` in your commit message when creating a pull request.
73 | - Complete assigned issues within the specified deadline. Failure to do so may result in reassignment.
74 | - Follow project guidelines and coding style.
75 | - Aim for structured and optimized code.
76 | - Mistakes are allowed and part of the learning process!
77 |
78 | ## Getting Started
79 |
80 | To contribute to the project, follow these steps:
81 |
82 | 1. **Fork the Repository**: Start by forking the repository to your GitHub account.
83 | 2. **Clone the Repository**: Clone your forked repository to your local machine.
84 | 3. **Choose an Issue**: Comment on an issue you'd like to work on or open a new one following the guidelines.
85 | 4. **Set Up Development Environment**: Refer to the project's development guidelines for setting up your development environment.
86 | 5. **Start Working**: Once the issue is assigned to you, start working on it following your chosen approach.
87 | 6. **Submit a Pull Request**: After completing your work, submit a pull request from your branch for review.
88 |
89 | ## Issue Management
90 |
91 | Issues are managed as follows:
92 |
93 | - Participants must comment on issues they wish to work on.
94 | - Issues will be assigned on a first-come, first-serve basis.
95 | - Participants can open new issues using the provided template, but these need verification and labeling by a mentor or PA.
96 | - Ensure issues are assigned to you before starting work.
97 | - Each participant can work on a maximum of one issue at a time.
98 | - Don't work on issues already assigned to others.
99 | - Discuss issues with the team before starting work.
100 |
101 | ## Communication and Collaboration
102 |
103 | Effective communication and collaboration are crucial for successful contributions:
104 |
105 | - Discuss issues with the team before starting work.
106 | - Explain your approach to solving any issue in the comments for better understanding.
107 |
108 | ## Deadline and Completion
109 |
110 | Ensure timely completion of assigned tasks:
111 |
112 | - Complete assigned issues within the specified deadline.
113 | - Failure to meet the deadline may result in reassignment.
114 |
115 | ## Quality and Learning
116 |
117 | Learnings:
118 |
119 | - Client-Side Development: Understanding how to build a user-friendly interface using React and TailwindCSS.
120 | - Server-Side Development: Utilizing Node.js and Express for server-side logic and API integrations.
121 | - Git Workflow: Understanding the Git workflow for contributing to open-source projects, including forking, branching, committing, and creating pull requests.
122 |
123 | Focus on quality and continuous learning:
124 |
125 | - Follow project guidelines and coding style.
126 | - Aim for structured and optimized code.
127 | - Mistakes are allowed and are a part of the learning process!
128 |
129 | Thank you for your contribution!!
130 |
131 | 
132 |
133 |
Learning and understanding take time, so don't worry at all. We have full confidence in you. You've got this!!! 💪
145 |
Show some ❤️ by 🌟 this repository!
146 |
147 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Learn
2 |
3 | This document provides instructions on how to set up and build the project locally.
4 | This project is a clothing order website that allows user to add products , list their own products, make dashboard of seller
5 |
6 | ## Prerequisites
7 |
8 | Before you begin, ensure you have the following installed on your local machine:
9 |
10 | - Node.js (v14.x or later)
11 | - npm (Node Package Manager v6.x or later)
12 |
13 | ## Table of Contents
14 | - [Setup](#Setup)
15 | - [Contributing Guidelines](#contributing-guidelines)
16 | - [Getting Started](#getting-started)
17 | - [Issue Management](#issue-management)
18 | - [Communication and Collaboration](#communication-and-collaboration)
19 | - [Deadline and Completion](#deadline-and-completion)
20 | - [Quality and Learning](#quality-and-learning)
21 |
22 | ## Setup
23 |
24 | Follow these steps to set up the project locally:
25 |
26 | 1. Clone the repository to your local machine:
27 |
28 | ```bash
29 | git clone https://github.com/mohitparmar1/Shopy.git
30 | ```
31 |
32 | 2. Navigate to the project directory:
33 |
34 | ```bash
35 | cd SHOPY
36 | ```
37 | 3. Install project dependencies:
38 |
39 | ```bash
40 | npm install
41 | ```
42 |
43 | ```bash
44 | npm install vite
45 | ```
46 |
47 | 4. Start the development server and run the app
48 |
49 | ```bash
50 | npm run dev
51 | ```
52 |
53 | ## Contributing Guidelines
54 |
55 | Before diving into the learning resources, please familiarize yourself with the following contributing guidelines:
56 |
57 | - Participants/contributors must comment on issues they wish to work on.
58 | - Issues will be assigned on a first-come, first-serve basis by mentors or the Project Administrator (PA).
59 | - Participants can open new issues using the provided template, but these need verification and labeling by a mentor or PA.
60 | - Ensure issues are assigned to you before starting work.
61 | - Each participant can work on a maximum of one issue at a time.
62 | - Don't work on issues already assigned to others.
63 | - Discuss issues with the team before starting work.
64 | - Explain your approach to solving any issue in the comments for better understanding.
65 | - Pull requests will be merged after review by a mentor or PA.
66 | - Create PRs from branches other than `main`.
67 | - Include a descriptive summary of your work in the PR description.
68 | - Use the format `Fixes: issue number` in your commit message when creating a pull request.
69 | - Complete assigned issues within the specified deadline. Failure to do so may result in reassignment.
70 | - Follow project guidelines and coding style.
71 | - Aim for structured and optimized code.
72 | - Mistakes are allowed and part of the learning process!
73 |
74 | ## Getting Started
75 |
76 | To contribute to the project, follow these steps:
77 |
78 | 1. **Fork the Repository**: Start by forking the repository to your GitHub account.
79 | 2. **Clone the Repository**: Clone your forked repository to your local machine.
80 | 3. **Choose an Issue**: Comment on an issue you'd like to work on or open a new one following the guidelines.
81 | 4. **Set Up Development Environment**: Refer to the project's development guidelines for setting up your development environment.
82 | 5. **Start Working**: Once the issue is assigned to you, start working on it following your chosen approach.
83 | 6. **Submit a Pull Request**: After completing your work, submit a pull request from your branch for review.
84 |
85 | ## Issue Management
86 |
87 | Issues are managed as follows:
88 |
89 | - Participants must comment on issues they wish to work on.
90 | - Issues will be assigned on a first-come, first-serve basis.
91 | - Participants can open new issues using the provided template, but these need verification and labeling by a mentor or PA.
92 | - Ensure issues are assigned to you before starting work.
93 | - Each participant can work on a maximum of one issue at a time.
94 | - Don't work on issues already assigned to others.
95 | - Discuss issues with the team before starting work.
96 |
97 | ## Communication and Collaboration
98 |
99 | Effective communication and collaboration are crucial for successful contributions:
100 |
101 | - Discuss issues with the team before starting work.
102 | - Explain your approach to solving any issue in the comments for better understanding.
103 |
104 | ## Deadline and Completion
105 |
106 | Ensure timely completion of assigned tasks:
107 |
108 | - Complete assigned issues within the specified deadline.
109 | - Failure to meet the deadline may result in reassignment.
110 |
111 | ## Quality and Learning
112 |
113 | Learnings:
114 |
115 | - Client-Side Development: Understanding how to build a user-friendly interface using React and TailwindCSS.
116 | - Server-Side Development: Utilizing Node.js and Express for server-side logic and API integrations.
117 | - Git Workflow: Understanding the Git workflow for contributing to open-source projects, including forking, branching, committing, and creating pull requests.
118 |
119 | Focus on quality and continuous learning:
120 |
121 | - Follow project guidelines and coding style.
122 | - Aim for structured and optimized code.
123 | - Mistakes are allowed and are a part of the learning process!
124 |
--------------------------------------------------------------------------------
/config.env:
--------------------------------------------------------------------------------
1 |
2 | ./package-lock.json
3 |
4 |
--------------------------------------------------------------------------------
/dist/assets/banner_kids-C6fj0c76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/banner_kids-C6fj0c76.png
--------------------------------------------------------------------------------
/dist/assets/banner_mens-PgqiXLwq.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/banner_mens-PgqiXLwq.png
--------------------------------------------------------------------------------
/dist/assets/banner_women-BQd59sB_.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/banner_women-BQd59sB_.png
--------------------------------------------------------------------------------
/dist/assets/exclusive_image-bt6CSZNE.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/exclusive_image-bt6CSZNE.png
--------------------------------------------------------------------------------
/dist/assets/hero2-o9_St3ke.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/hero2-o9_St3ke.jpg
--------------------------------------------------------------------------------
/dist/assets/index-ZnNZpM0-.css:
--------------------------------------------------------------------------------
1 | *,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.absolute{position:absolute}.relative{position:relative}.-top-2{top:-.5rem}.left-0{left:0}.right-\[10px\]{right:10px}.top-0{top:0}.top-28{top:7rem}.top-32{top:8rem}.top-44{top:11rem}.top-80{top:20rem}.z-10{z-index:10}.m-2{margin:.5rem}.m-5{margin:1.25rem}.m-auto{margin:auto}.mx-10{margin-left:2.5rem;margin-right:2.5rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-5{margin-left:1.25rem;margin-right:1.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-10{margin-top:2.5rem;margin-bottom:2.5rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.mb-10{margin-bottom:2.5rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-8{margin-bottom:2rem}.ml-0{margin-left:0}.ml-10{margin-left:2.5rem}.ml-14{margin-left:3.5rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.mr-6{margin-right:1.5rem}.mt-10{margin-top:2.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-9{margin-top:2.25rem}.flex{display:flex}.grid{display:grid}.h-1\/2{height:50%}.h-12{height:3rem}.h-2{height:.5rem}.h-2\/4{height:50%}.h-4{height:1rem}.h-6{height:1.5rem}.h-\[100px\]{height:100px}.h-\[600px\]{height:600px}.h-screen{height:100vh}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-2\/3{width:66.666667%}.w-3{width:.75rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-4{width:1rem}.w-40{width:10rem}.w-6{width:1.5rem}.w-96{width:24rem}.w-\[100px\]{width:100px}.w-\[200px\]{width:200px}.w-full{width:100%}.w-screen{width:100vw}.max-w-2xl{max-width:42rem}.max-w-80{max-width:20rem}.max-w-\[200px\]{max-width:200px}.flex-1{flex:1 1 0%}.scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.gap-10{gap:2.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-7{gap:1.75rem}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-l-full{border-top-left-radius:9999px;border-bottom-left-radius:9999px}.border{border-width:1px}.border-2{border-width:2px}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}.border-gray-400{--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity))}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity))}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity))}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.bg-orange-300{--tw-bg-opacity: 1;background-color:rgb(253 186 116 / var(--tw-bg-opacity))}.bg-orange-400{--tw-bg-opacity: 1;background-color:rgb(251 146 60 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-purple-100{--tw-gradient-from: #f3e8ff var(--tw-gradient-from-position);--tw-gradient-to: rgb(243 232 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-purple-200{--tw-gradient-from: #e9d5ff var(--tw-gradient-from-position);--tw-gradient-to: rgb(233 213 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-blue-300{--tw-gradient-to: #93c5fd var(--tw-gradient-to-position)}.to-white{--tw-gradient-to: #fff var(--tw-gradient-to-position)}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-36{padding-left:9rem;padding-right:9rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0{padding-top:0;padding-bottom:0}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pt-10{padding-top:2.5rem}.pt-16{padding-top:4rem}.text-center{text-align:center}.font-Poppins{font-family:Poppins,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.text-orange-400{--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity))}.text-orange-500{--tw-text-opacity: 1;color:rgb(249 115 22 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.line-through{text-decoration-line:line-through}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.delay-300{transition-delay:.3s}.duration-300{transition-duration:.3s}.hover\:scale-95:hover{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:bg-blue-600:hover{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity))}.hover\:bg-gray-900:hover{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.hover\:bg-orange-400:hover{--tw-bg-opacity: 1;background-color:rgb(251 146 60 / var(--tw-bg-opacity))}.hover\:font-semibold:hover{font-weight:600}.hover\:text-gray-400:hover{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.hover\:text-orange-400:hover{--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity))}.focus\:border-blue-300:focus{--tw-border-opacity: 1;border-color:rgb(147 197 253 / var(--tw-border-opacity))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.active\:bg-gray-300:active{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.active\:bg-slate-200:active{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity))}@media (min-width: 768px){.md\:left-\[250px\]{left:250px}.md\:top-96{top:24rem}.md\:mb-0{margin-bottom:0}.md\:flex-row{flex-direction:row}.md\:pt-20{padding-top:5rem}.md\:pt-32{padding-top:8rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-base{font-size:1rem;line-height:1.5rem}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}}@media (min-width: 1024px){.lg\:text-5xl{font-size:3rem;line-height:1}.lg\:text-lg{font-size:1.125rem;line-height:1.75rem}}
2 |
--------------------------------------------------------------------------------
/dist/assets/product_1-GUEEYTIC.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_1-GUEEYTIC.png
--------------------------------------------------------------------------------
/dist/assets/product_10-2Nl_XECs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_10-2Nl_XECs.png
--------------------------------------------------------------------------------
/dist/assets/product_11-Xy9Rj3SK.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_11-Xy9Rj3SK.png
--------------------------------------------------------------------------------
/dist/assets/product_12-G08opUrt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_12-G08opUrt.png
--------------------------------------------------------------------------------
/dist/assets/product_13-rGeN1LiX.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_13-rGeN1LiX.png
--------------------------------------------------------------------------------
/dist/assets/product_14-HCSYfJ2r.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_14-HCSYfJ2r.png
--------------------------------------------------------------------------------
/dist/assets/product_15-_NeimwDZ.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_15-_NeimwDZ.png
--------------------------------------------------------------------------------
/dist/assets/product_16-UK1F0lFR.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_16-UK1F0lFR.png
--------------------------------------------------------------------------------
/dist/assets/product_17-FaCkGEZ3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_17-FaCkGEZ3.png
--------------------------------------------------------------------------------
/dist/assets/product_18-2kDGJwTn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_18-2kDGJwTn.png
--------------------------------------------------------------------------------
/dist/assets/product_19-kLK4N9rs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_19-kLK4N9rs.png
--------------------------------------------------------------------------------
/dist/assets/product_2-dy3F06M0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_2-dy3F06M0.png
--------------------------------------------------------------------------------
/dist/assets/product_20-jsIwK71V.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_20-jsIwK71V.png
--------------------------------------------------------------------------------
/dist/assets/product_21-KcxO7bZL.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_21-KcxO7bZL.png
--------------------------------------------------------------------------------
/dist/assets/product_22-JoLbAceR.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_22-JoLbAceR.png
--------------------------------------------------------------------------------
/dist/assets/product_23-r2fN05fz.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_23-r2fN05fz.png
--------------------------------------------------------------------------------
/dist/assets/product_24-ZmAA0lze.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_24-ZmAA0lze.png
--------------------------------------------------------------------------------
/dist/assets/product_25-aChXG8-c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_25-aChXG8-c.png
--------------------------------------------------------------------------------
/dist/assets/product_26-zRCKzXXt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_26-zRCKzXXt.png
--------------------------------------------------------------------------------
/dist/assets/product_27-Yfay04_o.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_27-Yfay04_o.png
--------------------------------------------------------------------------------
/dist/assets/product_28-RsTEJnLA.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_28-RsTEJnLA.png
--------------------------------------------------------------------------------
/dist/assets/product_29-eZLxGKeh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_29-eZLxGKeh.png
--------------------------------------------------------------------------------
/dist/assets/product_3-_afa8pZE.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_3-_afa8pZE.png
--------------------------------------------------------------------------------
/dist/assets/product_30-_pFrpM4Q.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_30-_pFrpM4Q.png
--------------------------------------------------------------------------------
/dist/assets/product_31-iAMH-fJB.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_31-iAMH-fJB.png
--------------------------------------------------------------------------------
/dist/assets/product_32-CyRC6Jur.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_32-CyRC6Jur.png
--------------------------------------------------------------------------------
/dist/assets/product_33-IfEocB95.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_33-IfEocB95.png
--------------------------------------------------------------------------------
/dist/assets/product_34-h5qGMUDj.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_34-h5qGMUDj.png
--------------------------------------------------------------------------------
/dist/assets/product_35-8pYrG3Bo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_35-8pYrG3Bo.png
--------------------------------------------------------------------------------
/dist/assets/product_36-j1BwQLL9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_36-j1BwQLL9.png
--------------------------------------------------------------------------------
/dist/assets/product_4-Z2Y1MIkX.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_4-Z2Y1MIkX.png
--------------------------------------------------------------------------------
/dist/assets/product_5-TY_if21P.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_5-TY_if21P.png
--------------------------------------------------------------------------------
/dist/assets/product_6-A5JpRwa6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_6-A5JpRwa6.png
--------------------------------------------------------------------------------
/dist/assets/product_7-l0IetaTg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_7-l0IetaTg.png
--------------------------------------------------------------------------------
/dist/assets/product_8-U60BzIcC.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_8-U60BzIcC.png
--------------------------------------------------------------------------------
/dist/assets/product_9-qerwHpJY.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mohitparmar1/Shopy/2ece73aea417808f23d1c5354d7791dac2dd6558/dist/assets/product_9-qerwHpJY.png
--------------------------------------------------------------------------------
/dist/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
13 | shopy
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/dist/vite.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
13 | shopy
14 |
48 |
49 |
50 |
51 |
52 |
53 |
58 | shopy
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
79 |
80 |
81 |
82 |
83 |
--------------------------------------------------------------------------------
/learn.md:
--------------------------------------------------------------------------------
1 | # Learn
2 |
3 | This document provides instructions on how to set up and build the project locally.
4 | This project is a clothing order website that allows user to add products , list their own products, make dashboard of seller
5 |
6 | ## Prerequisites
7 |
8 | Before you begin, ensure you have the following installed on your local machine:
9 |
10 | - Node.js (v14.x or later)
11 | - npm (Node Package Manager v6.x or later)
12 |
13 | ## Table of Contents
14 | - [Setup](#Setup)
15 | - [Contributing Guidelines](#contributing-guidelines)
16 | - [Getting Started](#getting-started)
17 | - [Issue Management](#issue-management)
18 | - [Communication and Collaboration](#communication-and-collaboration)
19 | - [Deadline and Completion](#deadline-and-completion)
20 | - [Quality and Learning](#quality-and-learning)
21 |
22 | ## Setup
23 |
24 | Follow these steps to set up the project locally:
25 |
26 | 1. Clone the repository to your local machine:
27 |
28 | ```bash
29 | git clone https://github.com/mohitparmar1/Shopy.git
30 | ```
31 |
32 | 2. Navigate to the project directory:
33 |
34 | ```bash
35 | cd SHOPY
36 | ```
37 | 3. Install project dependencies:
38 |
39 | ```bash
40 | npm install
41 | ```
42 |
43 | ```bash
44 | npm install vite
45 | ```
46 |
47 | 4. Start the development server and run the app
48 |
49 | ```bash
50 | npm run dev
51 | ```
52 |
53 | ## Contributing Guidelines
54 |
55 | Before diving into the learning resources, please familiarize yourself with the following contributing guidelines:
56 |
57 | - Participants/contributors must comment on issues they wish to work on.
58 | - Issues will be assigned on a first-come, first-serve basis by mentors or the Project Administrator (PA).
59 | - Participants can open new issues using the provided template, but these need verification and labeling by a mentor or PA.
60 | - Ensure issues are assigned to you before starting work.
61 | - Each participant can work on a maximum of one issue at a time.
62 | - Don't work on issues already assigned to others.
63 | - Discuss issues with the team before starting work.
64 | - Explain your approach to solving any issue in the comments for better understanding.
65 | - Pull requests will be merged after review by a mentor or PA.
66 | - Create PRs from branches other than `main`.
67 | - Include a descriptive summary of your work in the PR description.
68 | - Use the format `Fixes: issue number` in your commit message when creating a pull request.
69 | - Complete assigned issues within the specified deadline. Failure to do so may result in reassignment.
70 | - Follow project guidelines and coding style.
71 | - Aim for structured and optimized code.
72 | - Mistakes are allowed and part of the learning process!
73 |
74 | ## Getting Started
75 |
76 | To contribute to the project, follow these steps:
77 |
78 | 1. **Fork the Repository**: Start by forking the repository to your GitHub account.
79 | 2. **Clone the Repository**: Clone your forked repository to your local machine.
80 | 3. **Choose an Issue**: Comment on an issue you'd like to work on or open a new one following the guidelines.
81 | 4. **Set Up Development Environment**: Refer to the project's development guidelines for setting up your development environment.
82 | 5. **Start Working**: Once the issue is assigned to you, start working on it following your chosen approach.
83 | 6. **Submit a Pull Request**: After completing your work, submit a pull request from your branch for review.
84 |
85 | ## Issue Management
86 |
87 | Issues are managed as follows:
88 |
89 | - Participants must comment on issues they wish to work on.
90 | - Issues will be assigned on a first-come, first-serve basis.
91 | - Participants can open new issues using the provided template, but these need verification and labeling by a mentor or PA.
92 | - Ensure issues are assigned to you before starting work.
93 | - Each participant can work on a maximum of one issue at a time.
94 | - Don't work on issues already assigned to others.
95 | - Discuss issues with the team before starting work.
96 |
97 | ## Communication and Collaboration
98 |
99 | Effective communication and collaboration are crucial for successful contributions:
100 |
101 | - Discuss issues with the team before starting work.
102 | - Explain your approach to solving any issue in the comments for better understanding.
103 |
104 | ## Deadline and Completion
105 |
106 | Ensure timely completion of assigned tasks:
107 |
108 | - Complete assigned issues within the specified deadline.
109 | - Failure to meet the deadline may result in reassignment.
110 |
111 | ## Quality and Learning
112 |
113 | Learnings:
114 |
115 | - Client-Side Development: Understanding how to build a user-friendly interface using React and TailwindCSS.
116 | - Server-Side Development: Utilizing Node.js and Express for server-side logic and API integrations.
117 | - Git Workflow: Understanding the Git workflow for contributing to open-source projects, including forking, branching, committing, and creating pull requests.
118 |
119 | Focus on quality and continuous learning:
120 |
121 | - Follow project guidelines and coding style.
122 | - Aim for structured and optimized code.
123 | - Mistakes are allowed and are a part of the learning process!
124 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "client",
3 | "private": true,
4 | "version": "0.0.0",
5 | "type": "module",
6 | "scripts": {
7 | "dev": "vite",
8 | "build": "vite build",
9 | "lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0",
10 | "preview": "vite preview"
11 | },
12 | "dependencies": {
13 | "@emotion/react": "^11.11.4",
14 | "@emotion/styled": "^11.11.5",
15 | "@fortawesome/fontawesome-free": "^6.5.2",
16 | "@fortawesome/free-solid-svg-icons": "^6.5.2",
17 | "@fortawesome/react-fontawesome": "^0.2.2",
18 | "@mui/icons-material": "^5.15.18",
19 | "@mui/material": "^5.15.17",
20 | "@react-icons/all-files": "^4.1.0",
21 | "@react-oauth/google": "^0.12.1",
22 | "@stripe/react-stripe-js": "^2.7.1",
23 | "@stripe/stripe-js": "^3.4.0",
24 | "axios": "^1.7.2",
25 | "dotenv": "^16.4.5",
26 | "jwt-decode": "^4.0.0",
27 | "react": "^18.2.0",
28 | "react-dom": "^18.2.0",
29 | "react-icons": "^5.2.1",
30 | "react-router-dom": "^6.21.3",
31 | "react-slick": "^0.30.2",
32 | "react-toastify": "^10.0.5",
33 | "slick-carousel": "^1.8.1"
34 | },
35 | "devDependencies": {
36 | "@types/react": "^18.2.43",
37 | "@types/react-dom": "^18.2.17",
38 | "@vitejs/plugin-react": "^4.2.1",
39 | "autoprefixer": "^10.4.17",
40 | "eslint": "^8.55.0",
41 | "eslint-plugin-react": "^7.33.2",
42 | "eslint-plugin-react-hooks": "^4.6.0",
43 | "eslint-plugin-react-refresh": "^0.4.5",
44 | "postcss": "^8.4.33",
45 | "tailwindcss": "^3.4.1",
46 | "vite": "^5.2.11"
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | export default {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | }
7 |
--------------------------------------------------------------------------------
/public/vite.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/server/.gitignore:
--------------------------------------------------------------------------------
1 | config.env
2 | /node_modules
3 | package-lock.json
4 | config.env
--------------------------------------------------------------------------------
/server/config.env.sample:
--------------------------------------------------------------------------------
1 | DATABASE_URL=
2 | PORT=7000
3 | CORS_ORIGIN=https://shopy-mohitparmar1s-projects.vercel.app/
--------------------------------------------------------------------------------
/server/config/DBconnect.js:
--------------------------------------------------------------------------------
1 | import mongoose from 'mongoose';
2 |
3 | const connectDB = async () => {
4 | try {
5 | await mongoose.connect(process.env.DATABASE_URL);
6 | console.log("Connected To MongoDB");
7 | } catch (err) {
8 | console.log(err)
9 | process.exit(1);
10 | }
11 | };
12 |
13 | export {connectDB};
--------------------------------------------------------------------------------
/server/config/JWTAuthentication.js:
--------------------------------------------------------------------------------
1 | import passport from "passport";
2 | const authenticateJWT = (req, res, next) => {
3 | passport.authenticate("jwt", { session: false }, (err, user, info) => {
4 | if (err) {
5 | return res.status(500).json({
6 | success: false,
7 | message: "Internal Server Error",
8 | });
9 | }
10 | if (!user) {
11 | return res.status(401).json({
12 | success: false,
13 | isLoggedIn: false,
14 | message: "Invalid Request. Please Sign In Your Account",
15 | });
16 | }
17 | req.user = user;
18 | next();
19 | })(req, res, next);
20 | };
21 |
22 | export { authenticateJWT };
23 |
--------------------------------------------------------------------------------
/server/controllers/auth/authController.js:
--------------------------------------------------------------------------------
1 | import { UserModel } from "../../models/userModel.js";
2 | import { OtpModel } from "../../models/OtpModel.js";
3 | import { generateOTP } from "../../utils/generateOTP.js";
4 | import { sendEmail } from "../../utils/sendEmail.js";
5 | import { generateToken } from "../../utils/generateJwtToken.js";
6 | import { decodeJWT } from "../../utils/decodeJwtToken.js";
7 | /*
8 | Forgot Password
9 |
10 | */
11 | const forgotPassword = async (req, res) => {
12 | try {
13 | const { email } = req.body;
14 | const user = await UserModel.findOne({ email });
15 | if (!user) {
16 | return res.status(404).json({
17 | message: "Invalid Email or User Not Found",
18 | success: false,
19 | });
20 | }
21 |
22 | // generating otp
23 | const otp = generateOTP();
24 | await OtpModel.create({ email: user.email, otp });
25 | // Send OTP via email
26 | const emailOptions = {
27 | mail: user.email,
28 | subject: "FORGOT PASSWORD - OTP",
29 |
30 | messageContent: `
31 |
32 |
Verify Password Reset Request
33 |
Dear ${user.fullname},
34 |
We noticed that you recently requested to reset your password for your account. Please use the following One-Time Password (OTP) to reset your password:
35 |
OTP: ${otp}
36 |
37 |
This OTP Will expires in 2:00 Minutes.
38 |
Note: If you did not request this password reset, please ignore this email. Your account security is important to us, and we apologize for any inconvenience.
39 |
If you encounter any issues or need further assistance, please don't hesitate to contact our support team at [Support Email] or call us at [Support Phone Number].
40 |
Thank you for choosing Shopy !
41 |
Best regards, [Company Name]
42 |
43 | `,
44 | };
45 | await sendEmail(emailOptions);
46 | res.status(201).json({
47 | success: true,
48 | message: `An OTP is send to your email ${email} .`,
49 | otp: otp,
50 | });
51 | } catch (error) {
52 | return res.status(500).json({
53 | success: false,
54 | error: error.message,
55 | });
56 | }
57 | };
58 | const verifyAndResetPassword = async (req, res) => {
59 | try {
60 | const { email, otp } = req.body;
61 | // console.log(req.body);
62 |
63 | // Retrieve the OTP stored in the database for the user's email
64 | const otpData = await OtpModel.findOne({ email }).sort({ createdAt: -1 });
65 |
66 | // Check if OTP exists in the database
67 | if (!otpData) {
68 | return res
69 | .status(404)
70 | .json({ success: false, message: "OTP Expired. Click on Resend OTP" });
71 | }
72 |
73 | // Compare the OTP provided by the user with the OTP stored in the database
74 | if (otpData.otp !== otp) {
75 | return res.status(400).json({
76 | success: false,
77 | message: "Invalid OTP.",
78 | });
79 | }
80 | // - Delete the OTP record from the database
81 | await otpData.deleteOne();
82 | const user = await UserModel.findOne({ email });
83 | if (!user) {
84 | return res.status(404).json({
85 | message: "User Not Found",
86 | success: false,
87 | });
88 | }
89 |
90 | const password_Reset_Token = generateToken(user._id, "300s");
91 | const password_Reset_URL = `${process.env.CLIENT_URL}/reset-password/${password_Reset_Token}`;
92 | // Send OTP via email
93 | const emailOptions = {
94 | mail: user.email,
95 | subject: "RESET PASSWORD ",
96 |
97 | messageContent: `
98 |
99 |
Reset Your Password
100 |
Dear ${user.fullname},
101 |
We have received a request to reset the password associated with your account. To proceed with the password reset, please follow the instructions below:
50 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed
51 | condimentum, nisl eu molestie viverra, eros nunc faucibus dolor,
52 | vel aliquam nunc quam id nunc. Nullam auctor, elit vitae aliquet
53 | aliquet, lorem elit tincidunt nisi, eget tincidunt urna nunc a
54 | neque. Donec eget nisl non nisl ultricies aliquam. Donec nec diam
55 | euismod, aliquet nisi vitae, lacinia quam. Nulla facilisi. Praesent
56 | sed erat tincidunt, aliquam lectus vitae, consequat risus. Nulla
57 | facilisi. Donec auctor, sem vitae aliquet aliquet, lorem elit
58 | tincidunt nisi, eget tincidunt urna nunc a neque. Donec eget nisl
59 | non nisl ultricies aliquam. Donec nec diam euismod, aliquet nisi
60 | vitae, lacinia quam. Nulla facilisi. Praesent sed erat tincidunt,
61 | aliquam lectus vitae, consequat risus. Nulla facilisi.
62 |
53 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
54 | eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
55 | minim veniam, quis nostrud exercitation ullamco laboris nisi ut
56 | aliquip ex ea commodo consequat. Duis aute irure dolor in
57 | reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
58 | pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
59 | culpa qui officia deserunt mollit anim id est laborum.
60 |
13 | Your ultimate fashion destination for the whole family. With a
14 | curated selection of clothing for men, women, and kids, we blend
15 | timeless sophistication with contemporary flair to ensure you make
16 | a statement wherever you go.
17 |
18 |
Why Us?
19 |
20 |
21 | Diverse Selection: Wide range
22 | for all.
23 |
11 | Sorry! the page your are looking for was either not found or does not exist. Try refreshing the page or click the button below to go back to the home page.
12 |