Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
180 commits
Select commit Hold shift + click to select a range
8df04fe
added inngest for adding user in the database
newcomer119 Jun 12, 2025
4e7e2a8
made changes removed .env file
newcomer119 Jun 12, 2025
e0d16e2
made changes add these things
newcomer119 Jun 12, 2025
413d9d7
made chnages
newcomer119 Jun 12, 2025
c64e137
made changes
newcomer119 Jun 12, 2025
b7e1b4e
made changes
newcomer119 Jun 13, 2025
6d3bd15
made changes
newcomer119 Jun 13, 2025
0252f80
made changes
newcomer119 Jun 13, 2025
0f73686
added await for the time
newcomer119 Jun 13, 2025
1ac28b3
made changes fixed the event
newcomer119 Jun 13, 2025
7d2a749
made changes trying to fix the validation error
newcomer119 Jun 13, 2025
72dacae
fixed validation error
newcomer119 Jun 13, 2025
70875bd
made changes added things
newcomer119 Jun 13, 2025
a90ea2c
made changes added fix for all the errors
newcomer119 Jun 13, 2025
5ef1eeb
created seller order
newcomer119 Jun 14, 2025
d7bc4a3
added razorpay test id for the transaction
newcomer119 Jun 14, 2025
730e3ff
made changes added things about the commerce platform
newcomer119 Jun 14, 2025
f488598
added sign
newcomer119 Jun 14, 2025
5ddbda5
created search for the products
newcomer119 Jun 14, 2025
1cc465d
added policies
newcomer119 Jun 14, 2025
41bf270
made changes so non logged in user cannot add products
newcomer119 Jun 14, 2025
11a0f18
added footer
newcomer119 Jun 14, 2025
bc66cb5
made changes so order is not placed payment cancelled
newcomer119 Jun 15, 2025
cd43184
changed the details
newcomer119 Jun 15, 2025
8e71686
made the online payment change
newcomer119 Jun 16, 2025
ae9d8d2
made changes to the header
newcomer119 Jun 16, 2025
7050d14
made changes in footer
newcomer119 Jun 16, 2025
b672163
made changes added search wish list
newcomer119 Jun 16, 2025
2b806a9
made changes in search modal
newcomer119 Jun 16, 2025
cad8889
made changes
newcomer119 Jun 16, 2025
6ac79ef
made changes
newcomer119 Jun 16, 2025
837244a
made changes added new things
newcomer119 Jun 16, 2025
facd13c
made changes
newcomer119 Jun 16, 2025
edae1a6
removed the like icons from the cart
newcomer119 Jun 16, 2025
f57eb3a
made changes
newcomer119 Jun 16, 2025
193eaa5
added email js for sending emails to user
newcomer119 Jun 16, 2025
b38e58f
added continue shpping
newcomer119 Jun 16, 2025
4e453bb
added delete product instead of visit
newcomer119 Jun 17, 2025
3858535
made contact us section
newcomer119 Jun 17, 2025
a70c9c3
remvoed unused logout buttons
newcomer119 Jun 17, 2025
551a9ca
functioning footer made the link about contact us
newcomer119 Jun 17, 2025
05f2ec1
added changes
newcomer119 Jun 17, 2025
09f8d57
added images for favicon
newcomer119 Jun 17, 2025
8e89cd3
updated header functionality
newcomer119 Jun 18, 2025
98fc3ca
made changes
newcomer119 Jun 18, 2025
77ae87f
made changes
newcomer119 Jun 18, 2025
89f320b
made changes
newcomer119 Jun 18, 2025
17330fc
created 3d design page for the upload request
newcomer119 Jun 18, 2025
217a4cf
made changes
newcomer119 Jun 18, 2025
3b1bf0c
made changes fixed type errors
newcomer119 Jun 18, 2025
6eea6c3
made changes added email
newcomer119 Jun 18, 2025
8c77fe9
made changes
newcomer119 Jun 18, 2025
4c7ca3f
made changes
newcomer119 Jun 18, 2025
b6e1363
links updated
newcomer119 Jun 18, 2025
950fb0f
made changes
newcomer119 Jun 18, 2025
497a4e2
made changes inngest
newcomer119 Jun 18, 2025
3e492f7
added loader
newcomer119 Jun 18, 2025
b160418
added time interval
newcomer119 Jun 18, 2025
6a396e7
logic change
newcomer119 Jun 18, 2025
df0166e
made changes added color schemes
newcomer119 Jun 18, 2025
d42a0a4
made changes fixed the error logic
newcomer119 Jun 18, 2025
99705b3
made changes
newcomer119 Jun 18, 2025
21143a1
made changes added clear download button
newcomer119 Jun 18, 2025
b7ada1c
made changes
newcomer119 Jun 18, 2025
182e5d8
made changes
newcomer119 Jun 18, 2025
21368fd
made favicon changes
newcomer119 Jun 18, 2025
969b4b9
made changes
newcomer119 Jun 18, 2025
0897316
deploy
newcomer119 Jun 19, 2025
4be9a2c
made changes
newcomer119 Jun 21, 2025
8a24c73
made changes
newcomer119 Jun 22, 2025
b790e57
made changes
newcomer119 Jun 22, 2025
b6204d4
made changes
newcomer119 Jun 22, 2025
639e400
made changes
newcomer119 Jun 22, 2025
75ad5da
made changes
newcomer119 Jun 22, 2025
a5a7696
made changes
newcomer119 Jun 22, 2025
806cec0
made changes
newcomer119 Jun 23, 2025
4db7363
made changes
newcomer119 Jun 23, 2025
4ad7b01
made changes
newcomer119 Jun 23, 2025
eaf70e7
made changes
newcomer119 Jun 23, 2025
5528d97
made changes added gst and fixed the text
newcomer119 Jun 23, 2025
13d5539
made changes
newcomer119 Jun 23, 2025
26f781a
made changes
newcomer119 Jun 24, 2025
ab3d3de
made changes
newcomer119 Jun 25, 2025
12b6b10
made changes
newcomer119 Jun 25, 2025
1ddda50
made changes
newcomer119 Jun 25, 2025
a195a66
made changes
newcomer119 Jun 25, 2025
e49eee2
made changes
newcomer119 Jun 26, 2025
dafe37b
made changes
newcomer119 Jun 26, 2025
7768cd3
made changes
newcomer119 Jun 27, 2025
c67a944
made changes
newcomer119 Jul 1, 2025
cf0132f
made changes
newcomer119 Jul 1, 2025
6582a4a
made changes
newcomer119 Jul 1, 2025
f1199d0
made changes
newcomer119 Jul 2, 2025
371c853
made changes
newcomer119 Jul 2, 2025
506e9c0
made changes
newcomer119 Jul 2, 2025
1be9ebe
made changes
newcomer119 Jul 2, 2025
9a32212
made changes added discount
newcomer119 Aug 5, 2025
56ca13a
made changes fixed error of email and console error and pending order…
newcomer119 Aug 10, 2025
64bee1a
made changes
newcomer119 Aug 10, 2025
82cf347
made changes
newcomer119 Aug 12, 2025
f5c6d77
made changes created custom order ids
newcomer119 Aug 12, 2025
1b8fce6
made changes in seller orders
newcomer119 Aug 16, 2025
ac79c5f
made changes
newcomer119 Aug 16, 2025
d785189
made changes
newcomer119 Aug 16, 2025
036157e
made changes
newcomer119 Aug 16, 2025
3aa8839
made changes added email
newcomer119 Aug 16, 2025
2c6f229
made changes
newcomer119 Aug 23, 2025
1d81809
made changes
newcomer119 Aug 24, 2025
4df6257
made changes
newcomer119 Aug 24, 2025
4c4bcc8
made changes
newcomer119 Aug 24, 2025
60213b4
fixed inngest error
newcomer119 Aug 24, 2025
7582d14
made changes
newcomer119 Aug 24, 2025
2c6526c
fixed inngest error
newcomer119 Aug 24, 2025
0382883
made changes
newcomer119 Aug 24, 2025
3054226
made changes
newcomer119 Aug 24, 2025
0f30208
fixed the typer error
newcomer119 Aug 24, 2025
67cecce
fixed the syntax error
newcomer119 Aug 24, 2025
a391d23
made changes
newcomer119 Aug 24, 2025
6d0d546
made changes
newcomer119 Sep 14, 2025
2252356
made changes
newcomer119 Sep 14, 2025
398b898
made changes
newcomer119 Sep 14, 2025
4c49186
fix the pickup error
newcomer119 Sep 14, 2025
a0b5a9f
made changes
newcomer119 Sep 14, 2025
75d7cc1
made changes
newcomer119 Sep 14, 2025
9b9d355
made changes
newcomer119 Sep 14, 2025
2d48ee4
created tracking
newcomer119 Sep 14, 2025
405bd97
fixed the errors
newcomer119 Sep 14, 2025
efc2cd5
fixed the order page
newcomer119 Sep 14, 2025
af83af1
made changes
newcomer119 Sep 14, 2025
b25642d
made changes
newcomer119 Sep 14, 2025
e3b4c42
made changes
newcomer119 Sep 14, 2025
fc2a6c1
made changes
newcomer119 Sep 14, 2025
53ca144
made changes
newcomer119 Sep 14, 2025
991c28d
made changes
newcomer119 Sep 14, 2025
fce88a3
fix the error
newcomer119 Sep 14, 2025
c833bf7
fix the undefined error
newcomer119 Sep 14, 2025
ff900f6
made test changes
newcomer119 Sep 14, 2025
891cc58
made changes
newcomer119 Sep 14, 2025
402c4f1
added changes for organic product
newcomer119 Sep 21, 2025
70e2b58
made changes
newcomer119 Sep 21, 2025
576a606
made changes
newcomer119 Sep 21, 2025
d3e27a0
made changes
newcomer119 Sep 22, 2025
e578162
made changes fixed the name
newcomer119 Sep 23, 2025
d4c8554
added corrected tax for organic
newcomer119 Sep 24, 2025
c8d9d91
Fix React Server Components CVE vulnerabilities
vercel[bot] Dec 31, 2025
752b1df
Merge pull request #1 from newcomer119/vercel/react-server-components…
newcomer119 Dec 31, 2025
64d1912
made changes
newcomer119 Jan 17, 2026
581645d
Merge branch 'main' of https://github.com/newcomer119/QuickCart
newcomer119 Jan 17, 2026
307e354
made changes
newcomer119 Jan 17, 2026
09b6e0e
made changes in declaration
newcomer119 May 25, 2026
a3f4b86
made chanes fixed depenacdies
newcomer119 May 25, 2026
1d51c9f
made changes
newcomer119 May 25, 2026
1e2c8ce
made changes
newcomer119 May 26, 2026
fc81944
updates
kpuranjay May 29, 2026
38281b4
product page
kpuranjay May 29, 2026
e85df5b
product page update
kpuranjay May 30, 2026
a465956
package json update
kpuranjay May 30, 2026
04616ff
json update
kpuranjay May 30, 2026
cdb84ca
seller update
kpuranjay May 31, 2026
709f706
made changes
newcomer119 May 31, 2026
38a4e38
made changes
newcomer119 May 31, 2026
cc8ed50
made changes
newcomer119 May 31, 2026
7e4bb45
made changes
kpuranjay May 31, 2026
a606910
made changes
kpuranjay May 31, 2026
cdce10e
made changes
kpuranjay May 31, 2026
f8b4872
made changes
kpuranjay May 31, 2026
0cf6eee
made changfes fixed seller and edit product
newcomer119 Jun 1, 2026
7beac08
Merge branch 'main' of https://github.com/newcomer119/QuickCart
newcomer119 Jun 1, 2026
d9c73b7
made changes
kpuranjay Jun 2, 2026
4bb64fb
Merge branch 'main' of https://github.com/newcomer119/QuickCart
kpuranjay Jun 2, 2026
b0b5041
made changes
kpuranjay Jun 3, 2026
4c5cbfa
made changes
kpuranjay Jun 5, 2026
b95004d
made changes
kpuranjay Jun 5, 2026
f2e2a98
made changes
kpuranjay Jun 5, 2026
ae85fb4
Fix React Server Components CVE vulnerabilities
vercel[bot] Jun 5, 2026
1bb2168
Merge pull request #2 from newcomer119/vercel/react-server-components…
kpuranjay Jun 5, 2026
24e9a70
made changes
kpuranjay Jun 5, 2026
f4e1206
Merge branch 'main' of https://github.com/newcomer119/QuickCart
kpuranjay Jun 5, 2026
b45ff70
made changes
kpuranjay Jun 5, 2026
e1f5ae9
Revert "Fix React Server Components CVE vulnerabilities"
kpuranjay Jun 5, 2026
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
13 changes: 0 additions & 13 deletions .env

This file was deleted.

5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,14 @@ yarn-error.log*
.pnpm-debug.log*

# env files (can opt-in for committing if needed)
# .env*
.env*

# vercel
.vercel

# typescript
*.tsbuildinfo
next-env.d.ts

# clerk configuration (can include secrets)
/.clerk/
16 changes: 16 additions & 0 deletions app/3d-printed-products/page.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
"use client";

import { useEffect } from "react";
import { useRouter } from "next/navigation";
import { ALL_3D_PRINTED_SLUG, getCategoryPagePath } from "@/lib/productCategories";

/** Redirect legacy URL to the all-3D-printed shop category page */
export default function ThreeDPrintedProductsRedirect() {
const router = useRouter();

useEffect(() => {
router.replace(getCategoryPagePath(ALL_3D_PRINTED_SLUG));
}, [router]);

return null;
}
16 changes: 16 additions & 0 deletions app/3d-printing-filament/page.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
"use client";

import { useEffect } from "react";
import { useRouter } from "next/navigation";
import { getCategoryPagePath } from "@/lib/productCategories";

/** Redirect legacy URL to the filament shop category page */
export default function FilamentProductsRedirect() {
const router = useRouter();

useEffect(() => {
router.replace(getCategoryPagePath("3d-printing-filament"));
}, [router]);

return null;
}
22 changes: 20 additions & 2 deletions app/add-address/page.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,13 @@ import Navbar from "@/components/Navbar";
import Footer from "@/components/Footer";
import Image from "next/image";
import { useState } from "react";

import { useAppContext } from "@/context/AppContext";
import toast from "react-hot-toast";
import axios from "axios";
const AddAddress = () => {

const {getToken , router} = useAppContext()

const [address, setAddress] = useState({
fullName: '',
phoneNumber: '',
Expand All @@ -18,8 +22,22 @@ const AddAddress = () => {

const onSubmitHandler = async (e) => {
e.preventDefault();
try{
const token = await getToken()
const {data} = await axios.post('/api/user/add-address', {address}, {headers : {Authorization: `Bearer ${token}`}})

if(data.success){
toast.success(data.message)
router.push('/cart')
}else{
toast.error( data.message)
}


}
}catch(error){
toast.error(error.message)
}
}

return (
<>
Expand Down
29 changes: 10 additions & 19 deletions app/all-products/page.jsx
Original file line number Diff line number Diff line change
@@ -1,28 +1,19 @@
'use client'
import ProductCard from "@/components/ProductCard";
import Navbar from "@/components/Navbar";
import Footer from "@/components/Footer";
import { useEffect } from "react";
import { useAppContext } from "@/context/AppContext";
import { useRouter } from "next/navigation";

const AllProducts = () => {
const { setIsLoading } = useAppContext();
const router = useRouter();

const { products } = useAppContext();
useEffect(() => {
// Redirect to 3D printed products page
setIsLoading(false);
router.push("/shop/all-3d-printed");
}, [setIsLoading, router]);

return (
<>
<Navbar />
<div className="flex flex-col items-start px-6 md:px-16 lg:px-32">
<div className="flex flex-col items-end pt-12">
<p className="text-2xl font-medium">All products</p>
<div className="w-16 h-0.5 bg-orange-600 rounded-full"></div>
</div>
<div className="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 flex-col items-center gap-6 mt-12 pb-14 w-full">
{products.map((product, index) => <ProductCard key={index} product={product} />)}
</div>
</div>
<Footer />
</>
);
return null; // This component will redirect immediately
};

export default AllProducts;
39 changes: 39 additions & 0 deletions app/api/cart/get/route.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import connectDb from "@/config/db";
import User from "@/models/Users";
import { getAuth } from "@clerk/nextjs/server";
import { NextResponse } from "next/server";

export async function GET(request) {
try{
const {userId} = getAuth(request)

if (!userId) {
return NextResponse.json({
success: false,
message: "User not authenticated"
}, { status: 401 });
}

await connectDb()
const user = await User.findById(userId)

if (!user) {
return NextResponse.json({
success: false,
message: "User not found"
}, { status: 404 });
}

const {cartItems} = user

return NextResponse.json({ success: true, cartItems})

}catch(error){
console.error("Error in cart get route:", error);
return NextResponse.json({
success: false,
message: "Failed to fetch cart items",
error: error.message
}, { status: 500 });
}
}
23 changes: 23 additions & 0 deletions app/api/cart/update/route.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import connectDb from "@/config/db";
import User from "@/models/Users";
import { getAuth } from "@clerk/nextjs/server";
import { NextResponse } from "next/server";

export async function POST(request) {
try{
const { userId} = getAuth(request);
const { cartData } = await request.json()

await connectDb()
const user = await User.findById(userId)

user.cartItems = cartData
await user.save()

return NextResponse.json({ success : true})


}catch(error){
return NextResponse.json({ success: false, message : error.message})
}
}
26 changes: 26 additions & 0 deletions app/api/check-env/route.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import { NextResponse } from 'next/server';

export async function GET() {
try {
const keyId = process.env.RAZORPAY_KEY_ID;
const keySecret = process.env.RAZORPAY_KEY_SECRET;
const publicKey = process.env.NEXT_PUBLIC_RAZORPAY_KEY_ID;

return NextResponse.json({
success: true,
data: {
hasKeyId: !!keyId,
keyIdLength: keyId?.length,
hasKeySecret: !!keySecret,
keySecretLength: keySecret?.length,
hasPublicKey: !!publicKey,
publicKeyLength: publicKey?.length
}
});
} catch (error) {
return NextResponse.json({
success: false,
message: error.message
});
}
}
58 changes: 58 additions & 0 deletions app/api/design-request/[id]/download/route.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
import connectDb from "@/config/db";
import authSeller from "@/lib/authSeller";
import DesignRequest from "@/models/DesignRequest";
import { getAuth } from "@clerk/nextjs/server";
import { NextResponse } from "next/server";

export async function GET(request, context) {
try {
const { userId } = getAuth(request);

// Extract id from context params
const id = context?.params?.id;

if (!id) {
return NextResponse.json({
success: false,
message: "Invalid request: Missing design request ID"
}, { status: 400 });
}

if (!userId) {
return NextResponse.json({ success: false, message: "Not authenticated" });
}

const isSeller = await authSeller(userId);
if (!isSeller) {
return NextResponse.json({ success: false, message: "Not Authorized" });
}

await connectDb();

const designRequest = await DesignRequest.findById(id);

if (!designRequest) {
return NextResponse.json({
success: false,
message: "Design request not found"
}, { status: 404 });
}

// Check if we have a Cloudinary URL
if (designRequest.fileUrl) {
return NextResponse.redirect(designRequest.fileUrl);
}

return NextResponse.json({
success: false,
message: "No file URL found"
}, { status: 404 });

} catch (error) {
console.error("Error downloading file:", error);
return NextResponse.json({
success: false,
message: error.message || "Error downloading file"
}, { status: 500 });
}
}
57 changes: 57 additions & 0 deletions app/api/design-request/[id]/status/route.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
import connectDb from "@/config/db";
import authSeller from "@/lib/authSeller";
import DesignRequest from "@/models/DesignRequest";
import { getAuth } from "@clerk/nextjs/server";
import { NextResponse } from "next/server";

export async function PUT(request, { params }) {
try {
const { userId } = getAuth(request);
const { id } = params;
const { status, quote, estimatedDelivery, adminNotes } = await request.json();

if (!userId) {
return NextResponse.json({ success: false, message: "Not authenticated" });
}

const isSeller = await authSeller(userId);
if (!isSeller) {
return NextResponse.json({ success: false, message: "Not Authorized" });
}

await connectDb();

const updateData = { status };

// Add optional fields if provided
if (quote !== undefined) updateData.quote = quote;
if (estimatedDelivery !== undefined) updateData.estimatedDelivery = estimatedDelivery;
if (adminNotes !== undefined) updateData.adminNotes = adminNotes;

const updatedRequest = await DesignRequest.findByIdAndUpdate(
id,
updateData,
{ new: true }
);

if (!updatedRequest) {
return NextResponse.json({
success: false,
message: "Design request not found"
}, { status: 404 });
}

return NextResponse.json({
success: true,
message: "Status updated successfully",
designRequest: updatedRequest
});

} catch (error) {
console.error("Error updating design request status:", error);
return NextResponse.json({
success: false,
message: error.message || "Error updating status"
}, { status: 500 });
}
}
Loading