Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
103 commits
Select commit Hold shift + click to select a range
39193cf
Home page ui - Hero section
atharva-777 Aug 10, 2023
12948ac
Added brand & category filter
atharva-777 Aug 10, 2023
bfa74f7
Merge pull request #3 from ritesh-15/master
ritesh-15 Aug 11, 2023
cecffb3
set up the session and redirect by roles in authentication
ritesh-15 Aug 11, 2023
caf862e
Merge pull request #5 from ritesh-15/main
ritesh-15 Aug 11, 2023
803dcc7
Merge pull request #6 from ritesh-15/@ritesh/frontend
ritesh-15 Aug 11, 2023
7ed33b9
Merge https://github.com/ritesh-15/flipkart_grid_5.0 into @atharva/fr…
atharva-777 Aug 11, 2023
ba1433a
Merge branch 'main' of @ritesh/frontend into @atharva/frontend
atharva-777 Aug 11, 2023
58577dd
Merge pull request #8 from ritesh-15/@atharva/frontend
atharva-777 Aug 11, 2023
d85a39e
done with login and register pages
ritesh-15 Aug 11, 2023
2fb7e5f
Merge pull request #9 from ritesh-15/@ritesh/frontend
ritesh-15 Aug 11, 2023
87f7966
Homepage UI completed
atharva-777 Aug 11, 2023
e63adb9
working on creating brand
ritesh-15 Aug 11, 2023
b904b0a
created brand form
ritesh-15 Aug 11, 2023
da856a3
Merge pull request #11 from ritesh-15/@ritesh/frontend
ritesh-15 Aug 12, 2023
04f7317
merging changes / rewards page
atharva-777 Aug 12, 2023
c699f74
Merge pull request #12 from ritesh-15/@atharva/frontend
atharva-777 Aug 12, 2023
6a39fa7
completed admin dashboard ui
ritesh-15 Aug 12, 2023
55be475
Merge pull request #13 from ritesh-15/@ritesh/frontend
ritesh-15 Aug 12, 2023
3f8aeba
removed node modules directory
ritesh-15 Aug 12, 2023
f972f68
Merge pull request #14 from ritesh-15/@ritesh/frontend
ritesh-15 Aug 12, 2023
9a451a5
reward fetch - products listing done
atharva-777 Aug 12, 2023
3096ef5
added logged out feature
ritesh-15 Aug 12, 2023
107e976
merging changes from main
atharva-777 Aug 12, 2023
05a21d4
Merge pull request #15 from ritesh-15/@ritesh/frontend
ritesh-15 Aug 12, 2023
4963e30
added route for brand
ritesh-15 Aug 12, 2023
9a5d4a9
fetching product with sellers - single product
atharva-777 Aug 12, 2023
c1609d8
fetching products via seller id
atharva-777 Aug 12, 2023
6b822e5
Merge pull request #16 from ritesh-15/@atharva/frontend
atharva-777 Aug 12, 2023
62d4fc8
working on brand products
ritesh-15 Aug 12, 2023
411fc25
Merge branch 'main' of https://github.com/ritesh-15/flipkart_grid_5.0…
ritesh-15 Aug 12, 2023
f64eb71
fetched the products of brand dashboard
ritesh-15 Aug 12, 2023
4cbd6b2
working on brand order page
ritesh-15 Aug 12, 2023
d534992
working on brand dashborad orders
ritesh-15 Aug 13, 2023
d51a603
Merge pull request #19 from ritesh-15/@ritesh/frontend
ritesh-15 Aug 13, 2023
2d353cf
completed brand dashboard
ritesh-15 Aug 13, 2023
f810fdc
Merge pull request #20 from ritesh-15/@ritesh/frontend
ritesh-15 Aug 13, 2023
c59508f
added Single Product
atharva-777 Aug 13, 2023
2eadc3f
done with the smart contract remaining for testing of contract
ritesh-15 Aug 13, 2023
227311b
merging changes from main
atharva-777 Aug 13, 2023
70d7d1e
testing solidity contract
ritesh-15 Aug 14, 2023
911a835
done with the testing of the solidity contract
ritesh-15 Aug 14, 2023
0ad3ac1
Merge pull request #21 from ritesh-15/@ritesh/frontend
ritesh-15 Aug 14, 2023
1548a01
Merge branch 'main' of https://github.com/ritesh-15/flipkart_grid_5.0…
atharva-777 Aug 14, 2023
c23b51b
cart store
atharva-777 Aug 14, 2023
f71e182
yarn del
atharva-777 Aug 14, 2023
691f452
Merge pull request #22 from ritesh-15/@atharva/frontend
atharva-777 Aug 14, 2023
a84c30a
cart global store
atharva-777 Aug 15, 2023
cfb829a
Merge pull request #23 from ritesh-15/@atharva/frontend
atharva-777 Aug 15, 2023
70e31b5
added ethers js library
ritesh-15 Aug 15, 2023
e9ebae6
Merge branch 'main' of https://github.com/ritesh-15/flipkart_grid_5.0…
ritesh-15 Aug 15, 2023
1b1d2fc
fetched stats for admin dashboard
ritesh-15 Aug 15, 2023
5fde933
added orderDetails & cart
atharva-777 Aug 15, 2023
49257e0
Merge pull request #24 from ritesh-15/@atharva/frontend
atharva-777 Aug 15, 2023
4928c84
added stats form brands in admin
ritesh-15 Aug 15, 2023
49ac895
working on checkout of users
ritesh-15 Aug 15, 2023
cbd61d8
Merge pull request #25 from ritesh-15/@ritesh/frontend
ritesh-15 Aug 15, 2023
af17e30
place order page
atharva-777 Aug 15, 2023
93a523f
Merge pull request #26 from ritesh-15/@atharva/frontend
atharva-777 Aug 15, 2023
7138982
working on adding issuers
ritesh-15 Aug 15, 2023
04b6861
cart summary / cart overview
atharva-777 Aug 16, 2023
45f053b
Merge pull request #27 from ritesh-15/@atharva/frontend
atharva-777 Aug 16, 2023
834d4b0
dded isssuers transactions in admin dashboard
ritesh-15 Aug 16, 2023
11c08da
done with cart page and blockchain interaction
ritesh-15 Aug 16, 2023
f773225
done with cart page
ritesh-15 Aug 16, 2023
8bfc797
Merge pull request #28 from ritesh-15/@ritesh/frontend
ritesh-15 Aug 16, 2023
a931105
working on rewards section
ritesh-15 Aug 16, 2023
646cc3e
order history
atharva-777 Aug 16, 2023
fb6a3ed
error in reward transaction
ritesh-15 Aug 16, 2023
2d13886
order history page / merging changes
atharva-777 Aug 16, 2023
c336b23
made the changes in smart contract and added decay tokens
ritesh-15 Aug 16, 2023
50eac13
done with the error in reward page
ritesh-15 Aug 17, 2023
e44e08e
fetched transferd transactions for transaction history page
ritesh-15 Aug 17, 2023
9abd163
referral service
atharva-777 Aug 17, 2023
a2efc9e
added transaction history for token earned
ritesh-15 Aug 17, 2023
2f5e361
Merge pull request #30 from ritesh-15/@atharva/frontend
atharva-777 Aug 17, 2023
3fe7b1e
Merge branch 'main' of https://github.com/ritesh-15/flipkart_grid_5.0…
ritesh-15 Aug 17, 2023
3d5cffd
Merge pull request #31 from ritesh-15/@ritesh/frontend
ritesh-15 Aug 17, 2023
77ac023
fixed error in referrral
ritesh-15 Aug 17, 2023
c989c00
Merge pull request #32 from ritesh-15/@ritesh/frontend
ritesh-15 Aug 17, 2023
e5806bd
referral changes
atharva-777 Aug 17, 2023
039a4d7
updated order in seller dashboard api
ritesh-15 Aug 17, 2023
09010cf
Merge pull request #33 from ritesh-15/@ritesh/frontend
ritesh-15 Aug 17, 2023
52b7dc3
register via referral
atharva-777 Aug 17, 2023
9928f4b
done with brand and seller dashboard for transfering the tokens to th…
ritesh-15 Aug 18, 2023
bc9e2dc
referral page
atharva-777 Aug 18, 2023
97cb756
Merge branch 'main' of https://github.com/ritesh-15/flipkart_grid_5.0…
atharva-777 Aug 18, 2023
d63bc9c
Merge pull request #34 from ritesh-15/@atharva/frontend
atharva-777 Aug 18, 2023
4057b5c
working on admin referrl reward
ritesh-15 Aug 18, 2023
277dbac
Merge branch 'main' of https://github.com/ritesh-15/flipkart_grid_5.0…
ritesh-15 Aug 18, 2023
b6b27e7
done with the admin side referral
ritesh-15 Aug 18, 2023
5ad6314
Merge pull request #35 from ritesh-15/@ritesh/frontend
ritesh-15 Aug 18, 2023
4de6bce
redesigned home page
ritesh-15 Aug 18, 2023
6df810b
redesigned the user side ui
ritesh-15 Aug 18, 2023
989417f
redisgned the website user side
ritesh-15 Aug 19, 2023
37e2daa
Merge pull request #36 from ritesh-15/@ritesh/frontend
ritesh-15 Aug 19, 2023
43aec74
UI changes
atharva-777 Aug 19, 2023
2988cd6
Merging changes from main repository
atharva-777 Aug 19, 2023
9b2f25c
starting with deployment
ritesh-15 Aug 19, 2023
b632c3b
Merge pull request #37 from ritesh-15/@ritesh/frontend
ritesh-15 Aug 19, 2023
f6cfe7b
rules
atharva-777 Aug 19, 2023
662a8bb
production build
atharva-777 Aug 19, 2023
fdcbc49
removing static images
atharva-777 Aug 20, 2023
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
1 change: 0 additions & 1 deletion frontend/.env
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
NEXTAUTH_SECRET=8ce5be9dcc4eb9b0314cc3fe296d231ba5e786439f8c4a6e272cad29f8dda8c3

NODE_ENV = development
1 change: 1 addition & 0 deletions frontend/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ yarn-error.log*
# local env files
.env*.local


# vercel
.vercel

Expand Down
104 changes: 64 additions & 40 deletions frontend/app/(auth)/login/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,53 +4,77 @@ import Button from "@/app/components/button/Button"
import Input from "@/app/components/input/Input"
import useLogin from "./useLogin"
import Link from "next/link"
import Modal from "@/app/components/Modal"
import { useWallet } from "@/app/store/WalletStore"
import ConnectToMetamaskModal from "@/app/components/ConnectToMetamaskModal"
import { formatWalletAddress } from "@/app/utils/formatWalletAddress"

export default function page() {
export default function Login() {
const { actions, states } = useLogin()
const { isConnected, walletAddress } = useWallet()

return (
<section className="min-h-screen w-full flex items-center justify-center bg-gray-50">
<div className="flex flex-col items-center bg-white p-4 rounded-md shadow-md w-[95%] max-w-[550px]">
<h1 className="text-xl font-bold">Welcome to Meta market! 👋</h1>
<p className="mt-2 max-w-[80%] text-center">
Please login with email address and password to continue .
</p>

<form onSubmit={actions.handleSubmit} action="" className="mt-4 w-full">
<div className="mb-4">
<Input
placeholder="johndoe@gmail.com"
title="Email address"
type="email"
name="email"
onChange={actions.handleChange}
value={states.values.email}
error={states.errors.email}
/>
</div>
<>
<section className="min-h-screen w-full flex items-center justify-center">
<div className="flex flex-col items-center bg-white p-4 rounded-md shadow-md w-[95%] max-w-[550px]">
<h1 className="text-xl font-bold">Welcome to Meta market! 👋</h1>
<p className="mt-2 max-w-[80%] text-center">
Please login with email address and password to continue .
</p>

<div className="mb-4">
<Input
placeholder="*********"
title="Password"
type="password"
name="password"
onChange={actions.handleChange}
value={states.values.password}
error={states.errors.password}
/>
</div>
<form
onSubmit={actions.handleSubmit}
action=""
className="mt-4 w-full"
>
<div className="mb-4">
<Input
placeholder="johndoe@gmail.com"
title="Email address"
type="email"
name="email"
onChange={actions.handleChange}
value={states.values.email}
error={states.errors.email}
/>
</div>

<div className="mb-4">
<Input
placeholder="*********"
title="Password"
type="password"
name="password"
onChange={actions.handleChange}
value={states.values.password}
error={states.errors.password}
/>
</div>

<Button type="submit">Login</Button>
</form>
{walletAddress && (
<div className="mb-4 flex flex-col gap-1 p-2 rounded-md border w-fit">
<span>Connected wallet address</span>
<p>{formatWalletAddress(walletAddress)}</p>
</div>
)}

<div className="mt-4">
Dont have an account yet ?{" "}
<Link href="/register" className="text-primary">
Create an account
</Link>
<Button loading={states.isLoading} type="submit">
Login
</Button>
</form>

<div className="mt-4">
Dont have an account yet ?{" "}
<Link href="/register" className="text-primary">
Create an account
</Link>
</div>
</div>
</div>
</section>
</section>

<Modal open={!isConnected}>
<ConnectToMetamaskModal />
</Modal>
</>
)
}
53 changes: 46 additions & 7 deletions frontend/app/(auth)/login/useLogin.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
import { IUserSession } from "@/app/interfaces/IUser"
import { AxiosError } from "axios"
import { useFormik } from "formik"
import { signIn } from "next-auth/react"
import { signIn, useSession } from "next-auth/react"
import { useRouter } from "next/navigation"
import { useEffect, useState } from "react"
import { toast } from "react-hot-toast"
import * as y from "yup"

Expand All @@ -17,16 +20,46 @@ const loginSchema = y.object({

export default function useLogin() {
const navigate = useRouter()
const { data } = useSession()
const user = data?.user as IUserSession

useEffect(() => {
if (user) redirectToPage()
}, [user])

const [isLoading, setIsLoading] = useState(false)

const initialValues = {
email: "",
password: "",
}

// redirect to route
const redirectToPage = () => {
switch (user.data.role.name) {
case "Authenticated":
navigate.push("/")
break
case "Admin":
navigate.push("/admin")
break
case "Brand":
navigate.push("/brand")
break
case "Seller":
navigate.push("/seller")
break
default:
navigate.push("/")
break
}
}

const { values, errors, handleChange, handleSubmit } = useFormik({
initialValues,
validationSchema: loginSchema,
onSubmit: async (values) => {
setIsLoading(true)
try {
const res = await signIn("credentials", {
...values,
Expand All @@ -36,15 +69,21 @@ export default function useLogin() {
if (res?.error) throw new Error(res.error)

// base on user role navigate to particular page

console.log(res)

navigate.push("/")
redirectToPage()
} catch (error: any) {
toast.error(error.message)
if (error instanceof AxiosError) {
toast.error(error.response?.data.error.message)
} else {
toast.error("Someting went wrong please try again!")
}
} finally {
setIsLoading(false)
}
},
})

return { actions: { handleChange, handleSubmit }, states: { values, errors } }
return {
actions: { handleChange, handleSubmit },
states: { values, errors, isLoading },
}
}
162 changes: 108 additions & 54 deletions frontend/app/(auth)/register/page.tsx
Original file line number Diff line number Diff line change
@@ -1,71 +1,125 @@
"use client"

import Button from "@/app/components/button/Button"
import React from "react"
import React, { useState } from "react"
import useRegister from "./useRegister"
import Input from "@/app/components/input/Input"
import Link from "next/link"
import ConnectToMetamaskModal from "@/app/components/ConnectToMetamaskModal"
import Modal from "@/app/components/Modal"
import { useWallet } from "@/app/store/WalletStore"
import { formatWalletAddress } from "@/app/utils/formatWalletAddress"
import { useMutation, useQuery } from "react-query"
import qs from "qs"
import ReferralService from "@/app/services/referral.service"
import { ISingleReferral } from "@/app/services/ISingleReferral"

export default function page() {
export default function Register() {
const { actions, states } = useRegister()
const { isConnected, walletAddress } = useWallet()

return (
<section className="min-h-screen w-full flex items-center justify-center bg-gray-50">
<div className="flex flex-col items-center bg-white p-4 rounded-md shadow-md w-[95%] max-w-[550px]">
<h1 className="text-xl font-bold">Hey new to Meta market! 👋</h1>
<p className="mt-2 max-w-[80%] text-center">
Create an account and start using now.
</p>
<>
<section className="min-h-screen w-full flex items-center justify-center ">
<div className="flex flex-col items-center bg-white p-4 rounded-md shadow-md w-[95%] max-w-[550px]">
<h1 className="text-xl font-bold">Hey new to Meta market! 👋</h1>
<p className="mt-2 max-w-[80%] text-center">
Create an account and start using now.
</p>

<form onSubmit={actions.handleSubmit} action="" className="mt-4 w-full">
<div className="mb-4">
<Input
placeholder="john doe"
title="Name"
type="text"
name="name"
onChange={actions.handleChange}
value={states.values.name}
error={states.errors.name}
/>
</div>
<form
onSubmit={actions.handleSubmit}
action=""
className="mt-4 w-full"
>
<div className="mb-4">
<Input
placeholder="john doe"
title="Name"
type="text"
name="name"
onChange={actions.handleChange}
value={states.values.name}
error={states.errors.name}
/>
</div>

<div className="mb-4">
<Input
placeholder="johndoe@gmail.com"
title="Email address"
type="email"
name="email"
onChange={actions.handleChange}
value={states.values.email}
error={states.errors.email}
/>
</div>
<div className="mb-4">
<Input
placeholder="johndoe@gmail.com"
title="Email address"
type="email"
name="email"
onChange={actions.handleChange}
value={states.values.email}
error={states.errors.email}
/>
</div>

<div className="mb-4">
<Input
placeholder="*********"
title="Password"
type="password"
name="password"
onChange={actions.handleChange}
value={states.values.password}
error={states.errors.password}
/>
</div>
<div className="mb-4">
<Input
placeholder="*********"
title="Password"
type="password"
name="password"
onChange={actions.handleChange}
value={states.values.password}
error={states.errors.password}
/>
</div>

{states.hasId && (
<div className="mb-4">
<Input
placeholder="referral_code"
title="Referral code"
type="text"
name="Referral"
onChange={(e) => {
actions.setUserReferralId(e.target.value)
}}
value={states.userReferralId}
error={states.referralError}
/>
</div>
)}

<Button loading={states.isLoading} type="submit">
Register
</Button>
</form>
<label className="relative inline-flex items-center cursor-pointer mb-4">
<input
onChange={() => actions.setHasId(!states.hasId)}
type="checkbox"
value=""
className="sr-only peer"
/>
<div className="w-11 h-6 bg-gray-200 peer-focus:outline-none peer-focus:ring-4 peer-focus:ring-transparent dark:peer-focus:ring-blue-800 rounded-full peer dark:bg-gray-700 peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all dark:border-gray-600 peer-checked:bg-primary"></div>
<span className="ml-3 text-sm font-medium text-gray-900 dark:text-gray-300">
Have an refferal code
</span>
</label>

<div className="mt-4">
Already have an account?{" "}
<Link href="/login" className="text-primary">
Sign Up
</Link>
{walletAddress && (
<div className="mb-4 flex flex-col gap-1 p-2 rounded-md border w-fit">
<span>Connected wallet address</span>
<p>{formatWalletAddress(walletAddress)}</p>
</div>
)}

<Button loading={states.isLoading} type="submit">
Register
</Button>
</form>

<div className="mt-4">
Already have an account?{" "}
<Link href="/login" className="text-primary">
Sign Up
</Link>
</div>
</div>
</div>
</section>
</section>

<Modal open={!isConnected}>
<ConnectToMetamaskModal />
</Modal>
</>
)
}
Loading