├── app ├── favicon.ico ├── components │ ├── QuizDetails.tsx │ ├── ForgetPassword.tsx │ ├── Footer.tsx │ ├── Navbar.tsx │ ├── Signin.tsx │ ├── Signup.tsx │ └── Fileinput.tsx ├── Home.module.css ├── Date.ts ├── layout.tsx ├── firebase.ts ├── page.tsx ├── createquiz │ └── page.tsx ├── studentdata │ ├── page.test.tsx │ └── page.tsx ├── login │ └── page.tsx ├── quizzes │ └── page.tsx ├── results │ └── page.tsx ├── globals.css ├── [quizid] │ └── page.tsx └── admin │ └── page.tsx ├── OOPS (Example Quiz File).xlsx ├── next.config.js ├── postcss.config.js ├── Student Data Sheet 11.12.2023 .xlsx ├── .gitignore ├── tsconfig.json ├── tailwind.config.ts ├── Dockerfile ├── LICENSE ├── .github └── workflows │ └── integrate.yml ├── package.json ├── README.md └── CONTRIBUTING.md /app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkySingh04/QuizQuest/HEAD/app/favicon.ico -------------------------------------------------------------------------------- /OOPS (Example Quiz File).xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkySingh04/QuizQuest/HEAD/OOPS (Example Quiz File).xlsx -------------------------------------------------------------------------------- /next.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = {} 3 | 4 | module.exports = nextConfig 5 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /Student Data Sheet 11.12.2023 .xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SkySingh04/QuizQuest/HEAD/Student Data Sheet 11.12.2023 .xlsx -------------------------------------------------------------------------------- /app/components/QuizDetails.tsx: -------------------------------------------------------------------------------- 1 | 2 | 3 | const QuizDetails = ({ quiz }: any) => ( 4 |
5 |

Score: {quiz.score}

6 |

Total Questions: {quiz.totalQuestions}

7 |

Time: {quiz.time}

8 |

Quiz ID: {quiz.quizId}

9 |

Quiz Name: {quiz.quizName}

10 |

Course: {quiz.course}

11 |

Course Code: {quiz.courseCode}

12 |
13 | ); 14 | 15 | export default QuizDetails; -------------------------------------------------------------------------------- /app/Home.module.css: -------------------------------------------------------------------------------- 1 | /* Home.module.css */ 2 | .hoverEffect { 3 | position: relative; 4 | } 5 | 6 | .hoverEffect::before { 7 | content: ''; 8 | position: absolute; 9 | top: 0; 10 | left: 0; 11 | right: 0; 12 | bottom: 0; 13 | border: 2px solid transparent; /* Set the initial border */ 14 | transition: border-color 0.5s ease; 15 | } 16 | 17 | .hoverEffect:hover::before { 18 | border-color: #ffd700; /* Set the border color on hover */ 19 | } 20 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | .yarn/install-state.gz 8 | # testing 9 | /coverage 10 | 11 | # next.js 12 | /.next/ 13 | /out/ 14 | 15 | # production 16 | /build 17 | 18 | # misc 19 | .DS_Store 20 | *.pem 21 | 22 | # debug 23 | npm-debug.log* 24 | yarn-debug.log* 25 | yarn-error.log* 26 | 27 | # local env files 28 | .env*.local 29 | 30 | # vercel 31 | .vercel 32 | 33 | # typescript 34 | *.tsbuildinfo 35 | next-env.d.ts 36 | -------------------------------------------------------------------------------- /app/Date.ts: -------------------------------------------------------------------------------- 1 | function formatDateTime(date : any ) { 2 | var hours = date.getHours(); 3 | var minutes = date.getMinutes(); 4 | var ampm = hours >= 12 ? 'pm' : 'am'; 5 | hours = hours % 12; 6 | hours = hours ? hours : 12; // the hour '0' should be '12' 7 | minutes = minutes < 10 ? '0'+minutes : minutes; 8 | var strTime = hours + ':' + minutes + ' ' + ampm; 9 | return (date.getMonth()+1) + "/" + date.getDate() + "/" + date.getFullYear() + " " + strTime; 10 | } 11 | 12 | function formatDate(date : any){ 13 | return (date.getMonth()+1) + "." + date.getDate() + "." + date.getFullYear() + " " ; 14 | } 15 | 16 | export {formatDate, formatDateTime}; -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "lib": ["dom", "dom.iterable", "esnext"], 5 | "allowJs": true, 6 | "skipLibCheck": true, 7 | "strict": true, 8 | "noEmit": true, 9 | "esModuleInterop": true, 10 | "module": "esnext", 11 | "moduleResolution": "bundler", 12 | "resolveJsonModule": true, 13 | "isolatedModules": true, 14 | "jsx": "preserve", 15 | "incremental": true, 16 | "plugins": [ 17 | { 18 | "name": "next" 19 | } 20 | ], 21 | "paths": { 22 | "@/*": ["./*"] 23 | } 24 | }, 25 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], 26 | "exclude": ["node_modules"] 27 | } 28 | -------------------------------------------------------------------------------- /tailwind.config.ts: -------------------------------------------------------------------------------- 1 | import type { Config } from 'tailwindcss' 2 | 3 | const config: Config = { 4 | content: [ 5 | './pages/**/*.{js,ts,jsx,tsx,mdx}', 6 | './components/**/*.{js,ts,jsx,tsx,mdx}', 7 | './app/**/*.{js,ts,jsx,tsx,mdx}', 8 | ], 9 | theme: { 10 | extend: { 11 | colors: { 12 | customBlue: '#6096B4', 13 | customCyan: '#93BFCF', 14 | customGray: '#BDCDD6', 15 | customBeige: '#EEE9DA', 16 | customViolet:'#2B2E4A' 17 | }, 18 | backgroundImage: { 19 | 'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))', 20 | 'gradient-conic': 21 | 'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))', 22 | }, 23 | }, 24 | }, 25 | plugins: [require("daisyui")], 26 | 27 | } 28 | export default config 29 | -------------------------------------------------------------------------------- /app/layout.tsx: -------------------------------------------------------------------------------- 1 | import type { Metadata } from 'next' 2 | import { Poppins } from 'next/font/google' 3 | import './globals.css' 4 | import Navbar from './components/Navbar' 5 | import Footer from './components/Footer' 6 | import { Toaster } from 'react-hot-toast' 7 | const poppins = Poppins({ weight: "400" , subsets: ["latin"] , display: "swap" }) 8 | 9 | export const metadata: Metadata = { 10 | title: 'QuizQuest', 11 | description: 'QuizQuest is a quiz app for everyone.', 12 | } 13 | 14 | export default function RootLayout({ 15 | children, 16 | }: { 17 | children: React.ReactNode 18 | }) { 19 | return ( 20 | 21 | 22 | 23 | 24 | {children} 25 |