diff --git a/.husky/pre-commit b/.husky/pre-commit
index 9cbfef9..e290538 100644
--- a/.husky/pre-commit
+++ b/.husky/pre-commit
@@ -1,2 +1,2 @@
#!/usr/bin/env sh
-npx lint-staged && npm run build
\ No newline at end of file
+npx lint-staged && npm run build
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..b58b603
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,5 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
diff --git a/.idea/Event-Chain.iml b/.idea/Event-Chain.iml
new file mode 100644
index 0000000..24643cc
--- /dev/null
+++ b/.idea/Event-Chain.iml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
new file mode 100644
index 0000000..69f6f2c
--- /dev/null
+++ b/.idea/codeStyles/Project.xml
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
new file mode 100644
index 0000000..79ee123
--- /dev/null
+++ b/.idea/codeStyles/codeStyleConfig.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..03d9549
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..75e04a7
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/prettier.xml b/.idea/prettier.xml
new file mode 100644
index 0000000..b0c1c68
--- /dev/null
+++ b/.idea/prettier.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/Home.tsx b/app/Home.tsx
new file mode 100644
index 0000000..8ce576a
--- /dev/null
+++ b/app/Home.tsx
@@ -0,0 +1,79 @@
+'use client';
+import { useEffect, useState } from 'react';
+import Header from '../components/custom/header';
+import Footer from '../components/custom/footer';
+import Test from '../components/scripts/Test';
+import MetaMask from '../components/scripts/MetaMask';
+
+export default function Home() {
+ const [isClient, setIsClient] = useState(false);
+
+ useEffect(() => {
+ setIsClient(true);
+ }, []);
+
+ return (
+ <>
+
+
+ {/* Video Background */}
+ {isClient && (
+
+ )}
+
+ {/* Dark Overlay for Enhanced Readability */}
+
+
+ {/* Page Content Over the Video */}
+
+
+
+
+
+
+ Featured Events
+
+
+ No events available at the moment.
+
+
+
+
+ Upcoming Events
+
+
+ - Event 1 - Date
+ - Event 2 - Date
+ - Event 3 - Date
+
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ );
+}
diff --git a/app/TicketListings/TicketListings.tsx b/app/TicketListings/TicketListings.tsx
new file mode 100644
index 0000000..0ae0c67
--- /dev/null
+++ b/app/TicketListings/TicketListings.tsx
@@ -0,0 +1,149 @@
+'use client';
+import React, { useEffect, useState } from 'react';
+import Header from '../../components/custom/header';
+import Footer from '../../components/custom/footer';
+
+// Define the Event interface including new fields
+interface Event {
+ EventID: number;
+ name: string;
+ date: string;
+ location: string;
+ ticketPrice: string;
+ description: string;
+ capacity: number;
+ ticketsSold: number;
+ imageUrl: string;
+}
+
+// Dummy function to fetch events
+const fetchEvents = (): Event[] => {
+ return [
+ {
+ EventID: 1,
+ name: 'Rock Concert',
+ date: '2023-12-01',
+ location: 'New York City',
+ ticketPrice: '$99',
+ description: 'An exhilarating rock concert featuring famous bands.',
+ capacity: 5000,
+ ticketsSold: 4500,
+ imageUrl: 'https://via.placeholder.com/150',
+ },
+ {
+ EventID: 2,
+ name: 'Art Expo',
+ date: '2023-11-15',
+ location: 'San Francisco',
+ ticketPrice: '$55',
+ description: 'A showcase of modern art from around the world.',
+ capacity: 300,
+ ticketsSold: 260,
+ imageUrl: 'https://via.placeholder.com/150',
+ },
+ {
+ EventID: 3,
+ name: 'Tech Summit 2023',
+ date: '2023-12-10',
+ location: 'Chicago',
+ ticketPrice: '$250',
+ description: 'The leading tech summit with top industry speakers.',
+ capacity: 2000,
+ ticketsSold: 1800,
+ imageUrl: 'https://via.placeholder.com/150',
+ },
+ ];
+};
+
+const TicketListing: React.FC = () => {
+ const [events, setEvents] = useState([]);
+ const [hoveredEventId, setHoveredEventId] = useState(null);
+
+ useEffect(() => {
+ const eventsData = fetchEvents();
+ setEvents(eventsData);
+ }, []);
+
+ return (
+
+
+ {/* Video Background */}
+
+ {/* Overlay for Readability */}
+
+
+ {/* Main Content */}
+
+
+
+
+
+
+
+
+
+
+
+ Available Events
+
+
+ {events.map((event) => (
+
setHoveredEventId(event.EventID)}
+ onMouseLeave={() => setHoveredEventId(null)}
+ >
+

+
+
{event.name}
+
{event.date}
+
{event.location}
+
+ {event.ticketPrice}
+
+ {event.ticketsSold / event.capacity >= 0.9 && (
+
+ Limited Tickets Remaining!
+
+ )}
+
+
+ {hoveredEventId === event.EventID && (
+
+ )}
+
+
+ ))}
+
+
+
+
+
+
+ );
+};
+
+export default TicketListing;
diff --git a/app/TicketListings/page.tsx b/app/TicketListings/page.tsx
new file mode 100644
index 0000000..42e8cd6
--- /dev/null
+++ b/app/TicketListings/page.tsx
@@ -0,0 +1,9 @@
+import TicketListings from './TicketListings';
+
+export default function Page() {
+ return (
+ <>
+
+ >
+ );
+}
diff --git a/app/layout.tsx b/app/layout.tsx
index 2411447..980cf69 100644
--- a/app/layout.tsx
+++ b/app/layout.tsx
@@ -1,21 +1,26 @@
import type { Metadata } from 'next';
-import localFont from 'next/font/local';
+// import localFont from 'next/font/local';
import './globals.css';
-const geistSans = localFont({
- src: './fonts/GeistVF.woff',
- variable: '--font-geist-sans',
- weight: '100 900',
-});
-const geistMono = localFont({
- src: './fonts/GeistMonoVF.woff',
- variable: '--font-geist-mono',
- weight: '100 900',
-});
+import { Inter } from 'next/font/google';
+import './globals.css';
+
+const inter = Inter({ subsets: ['latin'] });
+
+// const geistSans = localFont({
+// src: './fonts/GeistVF.woff',
+// variable: '--font-geist-sans',
+// weight: '100 900',
+// });
+// const geistMono = localFont({
+// src: './fonts/GeistMonoVF.woff',
+// variable: '--font-geist-mono',
+// weight: '100 900',
+// });
export const metadata: Metadata = {
- title: 'Create Next App',
- description: 'Generated by create next app',
+ title: 'Ticket Chain',
+ description: 'A blockchain-based ticketing system.',
};
export default function RootLayout({
@@ -25,11 +30,7 @@ export default function RootLayout({
}>) {
return (
-
- {children}
-
+ {children}
);
}
diff --git a/app/page.tsx b/app/page.tsx
index 227f0a9..03b69a9 100644
--- a/app/page.tsx
+++ b/app/page.tsx
@@ -1,101 +1,9 @@
-import Image from 'next/image';
+import Home from './Home';
-export default function Home() {
+export default function Page() {
return (
-
-
-
-
- -
- Get started by editing{' '}
-
- app/page.tsx
-
- .
-
- - Save and see your changes instantly.
-
-
-
-
-
-
+ <>
+
+ >
);
}
diff --git a/components/Confirmation.tsx b/components/Confirmation.tsx
new file mode 100644
index 0000000..66eca11
--- /dev/null
+++ b/components/Confirmation.tsx
@@ -0,0 +1,64 @@
+'use client';
+import React from 'react';
+import {
+ Card,
+ CardHeader,
+ CardContent,
+ CardFooter,
+} from '@/components/ui/card';
+import { Badge } from '@/components/ui/badge';
+import { Separator } from '@/components/ui/separator';
+import { Button } from '@/components/ui/button';
+import { CheckCircle } from 'lucide-react';
+
+interface props {
+ ticketTitle: string;
+ eventDate: string;
+ ticketID: string;
+}
+
+const ConfirmationTicket = ({ ticketTitle, eventDate, ticketID }: props) => {
+ return (
+
+
+
+
+ Ticket Confirmed!
+
+
+ #{ticketID}
+
+
+
+
+
+ {ticketTitle}
+ Event Date: {eventDate}
+
+
+
+
+
+
+
+
+ );
+};
+
+export default ConfirmationTicket;
diff --git a/components/EventPage.tsx b/components/EventPage.tsx
new file mode 100644
index 0000000..0c7e0eb
--- /dev/null
+++ b/components/EventPage.tsx
@@ -0,0 +1,18 @@
+import React from 'react';
+
+const EventPage = () => {
+ return (
+ // <>Header>
+ //
+ //