├── .eslintrc.cjs ├── .gitignore ├── README.md ├── index.html ├── package-lock.json ├── package.json ├── postcss.config.js ├── public ├── _redirects ├── pwa-192x192.png ├── pwa-512x512.png ├── screenshotnarrow1080x2344a.jpg ├── screenshotnarrow1080x2344b.jpg ├── screenshotwide1200x630.jpg ├── shorticonmen.png ├── shorticonwishlist.png └── shorticonwomen.png ├── src ├── App.tsx ├── appwrite │ ├── auth.ts │ ├── config.ts │ └── confvars.ts ├── assets │ ├── heart.svg │ ├── heartfill.svg │ └── signinwithgoogle.svg ├── components │ ├── 3dCard.tsx │ ├── AuthModal.tsx │ ├── BannerSlider.tsx │ ├── CollectionCards.tsx │ ├── CreateProducts.tsx │ ├── DeleteProducts.tsx │ ├── ErrorBoundary.tsx │ ├── FloatingMenu.tsx │ ├── Footer.tsx │ ├── Navbar.tsx │ ├── ProductCard.tsx │ ├── ProductCards.tsx │ ├── UpdateProducts.tsx │ ├── UploadImages.tsx │ ├── WishlistCards.tsx │ └── WrongPage.tsx ├── index.css ├── index.ts ├── main.tsx ├── pages │ ├── Admin.tsx │ ├── Collection.tsx │ ├── Contact.tsx │ ├── Cuties.tsx │ ├── Error404Page.tsx │ ├── Home.tsx │ ├── Login.tsx │ ├── PasswordRecovery.tsx │ ├── PrivacyTerms.tsx │ ├── ProductInfo.tsx │ ├── Profile.tsx │ └── Verification.tsx ├── redux_toolkit │ ├── hooks.ts │ ├── productSlice.ts │ ├── store.ts │ └── userSlice.ts ├── utils │ ├── cn.ts │ └── wishlist.ts └── vite-env.d.ts ├── tailwind.config.js ├── tsconfig.json ├── tsconfig.node.json └── vite.config.ts /.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { browser: true, es2020: true }, 4 | extends: [ 5 | 'eslint:recommended', 6 | 'plugin:@typescript-eslint/recommended', 7 | 'plugin:react-hooks/recommended', 8 | ], 9 | ignorePatterns: ['dist', '.eslintrc.cjs'], 10 | parser: '@typescript-eslint/parser', 11 | plugins: ['react-refresh'], 12 | rules: { 13 | 'react-refresh/only-export-components': [ 14 | 'warn', 15 | { allowConstantExport: true }, 16 | ], 17 | }, 18 | } 19 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | .env 26 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 |
40 | Please login to use wishlist 41 |
42 | 48 | > 49 | ) : !isVerified ? ( 50 | <> 51 |52 | Please verify your email to use wishlist 53 |
54 | {!verificationStarted ? ( 55 | 61 | ) : ( 62 |63 | We have sent you a verification email from appwrite. Please 64 | verify your email address using the link in the email 65 |
66 | )} 67 | > 68 | ) : null} 69 |{product.$id}
52 |{product.brand}
53 |{product.title}
54 |{product.type}
55 |{product.category}
56 |₹{Number(product.price)}
57 |Oops, an error!
14 |15 | don't worry, just reload/refresh the page. 16 |
17 |18 | If you still see the error after refreshing multiple times, or if this 19 | error is very frequent, please let us know ASAP via email. Just take a 20 | screenshot of this page and send it to{" "} 21 | 22 | rakcurious@gmail.com 23 | 24 |
25 |Error text:
26 |27 | {error.statusText || error.message} 28 |
29 |{userdata?.name}
36 |37 | {userdata?.email} 38 |
39 |Sort by
75 |setSort("likes")} 78 | className={ 79 | sort === "likes" 80 | ? "ring-1 ring-violet-300" 81 | : "hover:ring-1 hover:ring-violet-300" 82 | } 83 | > 84 | Love 85 |
86 |setSort("pricehigh")} 88 | className={ 89 | sort === "pricehigh" 90 | ? "ring-1 ring-violet-300" 91 | : "hover:ring-1 hover:ring-violet-300" 92 | } 93 | > 94 | Price{" "} 95 | 110 |
111 |setSort("pricelow")} 113 | className={ 114 | sort === "pricelow" 115 | ? "ring-1 ring-violet-300" 116 | : "hover:ring-1 hover:ring-violet-300" 117 | } 118 | > 119 | Price{" "} 120 | 134 |
135 |setSort("new")} 137 | className={ 138 | sort === "new" 139 | ? "ring-1 ring-violet-300" 140 | : "hover:ring-1 hover:ring-violet-300" 141 | } 142 | > 143 | New 144 |
145 |71 | {index + 1}. 72 |
{" "} 73 | 79 | 85 |{userdata.name}
52 |53 | {userdata.email} 54 |
55 |30 | Oops, this page is empty! 31 |
32 |33 | Go back and continue your manifesting session 34 |
35 |setTopToggle("products")} 41 | className={ 42 | topToggle === "products" 43 | ? "ring-1 ring-violet-300" 44 | : "hover:ring-1 hover:ring-violet-300" 45 | } 46 | > 47 | Products 48 |
49 |setTopToggle("collections")} 51 | className={ 52 | topToggle === "collections" 53 | ? "ring-1 ring-violet-300" 54 | : "hover:ring-1 hover:ring-violet-300" 55 | } 56 | > 57 | Collections 58 |
59 |setToggle("create")} 64 | className={ 65 | toggle === "create" 66 | ? "ring-1 ring-violet-300" 67 | : "hover:ring-1 hover:ring-violet-300" 68 | } 69 | > 70 | Create 71 |
72 |setToggle("update")} 74 | className={ 75 | toggle === "update" 76 | ? "ring-1 ring-violet-300" 77 | : "hover:ring-1 hover:ring-violet-300" 78 | } 79 | > 80 | Update 81 |
82 |setToggle("delete")} 84 | className={ 85 | toggle === "delete" 86 | ? "ring-1 ring-violet-300" 87 | : "hover:ring-1 hover:ring-violet-300" 88 | } 89 | > 90 | Delete 91 |
92 |{product.$id}
113 |{product.brand}
114 |{product.title}
115 |{product.type}
116 |{product.category}
117 |₹{Number(product.price)}
118 |123 | No products found 124 |
125 | )} 126 | > 127 | )} 128 | 129 | {topToggle === "collections" && ( 130 | <> 131 |{collection.$id}
146 |{collection.name}
147 |{collection.category}
148 |{collection.slug}
149 |No Collections found.
154 | )} 155 | > 156 | )} 157 | > 158 | ) : ( 159 | <> 160 |Email: rakcurious@gmail.com
64 |67 | If you are a brand, you can reach out to us via email for 68 | collaboration or discussions about the presentation of your products 69 | on our site. you can also reach out to us for removal of your 70 | products and brand from our site or any suggestion or feedback. If you are a brand and you think you should be on Slik, reach out to us. We are a young company and still learning as we grow. We would love to hear from you. 71 |
72 |76 | {" "} 77 | You can reach out to us via email for feedback, suggestions, bug 78 | reports or anything else about the site. We are a young company and 79 | still learning as we grow. We would love to hear from you. Please 80 | let us know if you love what we are doing.{" "} 81 |
82 |74 | Recommended 75 |
76 |OR
82 |92 | We have sent you a verification email from appwrite. Please verify 93 | your email address using the link in the email to make the most 94 | out of Slik 95 |
96 |230 | {page === "Login" 231 | ? "New user? " 232 | : page === "Sign up" 233 | ? "Already have an account? " 234 | : ""} 235 | 237 | setPage((prev) => 238 | prev === "Login" ? "Sign up" : "Login" 239 | ) 240 | } 241 | className="text-indigo-700 cursor-pointer text-md font-semibold" 242 | > 243 | {page === "Login" ? "Sign up" : "Login"} 244 | 245 |
246 | > 247 | )} 248 | 249 | {page === "Reset Password" && ( 250 |251 | {successMsg}{" "} 252 |
253 | )} 254 |{errorMsg}
35 |36 | {successMsg} 37 |
38 | 44 |
21 | Introduction
22 |
23 | This Privacy Policy governs your use of our website and services.
24 | By accessing or using our services, you agree to be bound by this
25 | policy.
26 |
28 | Information We Collect
29 |
30 | When you create an account with us, we collect your name and email
31 | address. We also automatically receive your device's internet
32 | protocol (IP) address to help us understand usage by browser and
33 | operating system.
34 |
36 | Use of Information
37 |
38 | We use the information we collect to provide, maintain, and
39 | improve our services. This includes allowing you to create
40 | wishlists, browse products, and receive account updation emails
41 | like password reset emails when requested. We will not send you
42 | marketing emails or share your personal information without your
43 | consent.
44 |
46 | Cookies
47 |
48 | We use cookies to maintain your user session. These are not used
49 | to personally identify you on other websites.
50 |
52 | Data Security
53 |
54 | We take reasonable precautions to protect your personal
55 | information from loss, misuse or unauthorized access or
56 | disclosure.
57 |
59 | Third-Party Links
60 |
61 | Our website may contain links to third-party sites we do not
62 | control. Though we make sure we don't put links to random sites
63 | without verification, We are not responsible for their privacy
64 | practices.
65 |
67 | Children's Privacy
68 |
69 | Our services are not intended for children under 13. We do not
70 | knowingly collect personal information from children.
71 |
73 | Policy Updates
74 |
75 | We may update this policy from time to time. Your continued use of
76 | our services means you accept any updates.
77 |
79 | Contact
80 |
81 | Please contact rakcurious@gmail.com with any privacy questions.
82 |
87 | Introduction
88 |
89 | This website, Slik, is operated by Slik team. Throughout the site,
90 | the terms "we", "us", and "our" refer to Slik team. We offer this
91 | website, including all information, tools, and services available
92 | on this site, to you, the user, upon your acceptance of these
93 | terms, conditions, policies, and notices.
94 |
95 | By visiting our site or using our services, you engage in our
96 | "Service" and agree to be bound by these Terms of Use ("Terms"),
97 | including any additional terms, conditions, and policies
98 | referenced herein or available through hyperlinks. These Terms
99 | apply to all users of the site.
100 |
101 | Please read these Terms carefully before accessing or using our
102 | website. By accessing or using any part of the site, you agree to
103 | be bound by these Terms. If you do not agree with all the terms
104 | and conditions, you may not access the website or use any
105 | services. If these Terms are considered an offer, acceptance is
106 | expressly limited to these Terms.
107 |
108 | Any new features or tools added to the website shall also be
109 | subject to these Terms of Use. We reserve the right to update,
110 | change, or replace any part of these Terms by posting updates on
111 | our website. It is your responsibility to check this page
112 | periodically for changes. Your continued use of or access to the
113 | website following the posting of any changes constitutes
114 | acceptance of those changes.
115 |
117 | Account Use
118 |
119 | You must be 13 or older to use our services. You are responsible
120 | for your account and actions. Do not share your account or use the
121 | services illegally or to violate the rights of others.
122 |
124 | Our Services
125 |
126 | We provide a platform to discover products from various brands. We
127 | do not process transactions, ship products, or receive payments.
128 | To purchase, you must visit the brand's website. We do not own or
129 | control the products. If you are a brand, you can contact us about
130 | collaborating or removing your products or for any objection or
131 | queries you have regarding the presentation of your products on
132 | our site.
133 |
135 | Third-Party Links
136 |
137 | Our site contains links to third-party sites we do not control. We
138 | are not liable for their content or actions.
139 |
141 | Intellectual Property
142 |
143 | Do not copy or use our branding without permission.
144 |
146 | Disclaimer of Warranties
147 |
148 | We provide our services as-is without warranties. We are not
149 | liable for errors, interruptions, or issues using our services.
150 |
152 | Limitation of Liability
153 |
154 | We are not liable for any damages from your use of our services.
155 |
157 | Indemnification
158 |
159 | You will indemnify us against claims arising from your violation
160 | of these Terms.
161 |
163 | Termination
164 |
165 | We may suspend or terminate your account for violations of these
166 | Terms.
167 |
169 | Disputes
170 |
171 | These Terms are governed by the laws of India. Disputes will be
172 | resolved in Indian courts.
173 |
175 | Changes
176 |
177 | We may update these Terms at any time. Your continued use means
178 | you accept the updated Terms.
179 |
brandPage(product?.brand.toLowerCase())} 87 | className="cursor-pointer text-purple-900 uppercase text-center" 88 | > 89 | {product?.brand} 90 |
91 |92 | ₹{product?.price.toLocaleString("en-IN")} 93 |
94 |brandPage(product?.brand.toLowerCase())} 165 | className="cursor-pointer uppercase text-purple-900 text-center" 166 | > 167 | {product?.brand} 168 |
169 |170 | ₹{product?.price.toLocaleString("en-IN")} 171 |
172 |{errorMsg}
35 | {verified ? ( 36 | <> 37 |38 | Congratulations, You are verified. Start manifesting... 39 |
40 | 46 | > 47 | ) : (errorMsg == "") ? ( 48 |49 | Verification is in Progress, Please wait... 50 |
51 | ) :52 | Verification failed 53 |
} 54 |