├── components ├── CustomScrollbar.module.css ├── CustomScrollbar.tsx ├── About.tsx ├── Login.tsx ├── Contact.tsx ├── FAQ.tsx ├── Snackbar.tsx ├── ui │ ├── Button.tsx │ ├── accordion.tsx │ ├── InfiniteMovingCards.tsx │ ├── LampEffect.tsx │ └── TypeWriter.tsx ├── Hero.tsx ├── HeroTypingEffect.tsx ├── Social.tsx ├── HeroText.tsx ├── Testimonials.tsx ├── Nav.tsx ├── Form.tsx ├── Footer.tsx └── Green and Black Minimal Code Search Logo.svg ├── .dockerignore ├── app ├── favicon.ico ├── faq │ ├── homeicon.png │ ├── page.tsx │ ├── faq.css │ └── faqs.js ├── about │ ├── homeicon.png │ └── page.tsx ├── contact │ ├── contact.jpg │ ├── homeicon.png │ └── page.tsx ├── licensing │ ├── homeicon.png │ ├── licensing.module.css │ └── page.tsx ├── privacypolicy │ ├── homeicon.png │ └── page.tsx ├── termsconditions │ ├── homeicon.png │ └── page.tsx ├── not-found.tsx ├── page.tsx ├── GoogleTranslate.tsx ├── Firebase │ └── firebase.js ├── api │ └── route.ts ├── layout.tsx ├── Footer.module.css ├── globals.css └── login │ └── page.tsx ├── public ├── 404.png ├── scrap-logo.png ├── vercel.svg └── next.svg ├── .vscode └── settings.json ├── next.config.mjs ├── postcss.config.mjs ├── utils └── cn.ts ├── lib └── utils.ts ├── Dockerfile ├── firebase.json ├── components.json ├── .gitignore ├── docker-compose.yml ├── tsconfig.json ├── .github ├── ISSUE_TEMPLATE │ ├── feature_request.md │ ├── bug_report.md │ ├── docs.md │ └── pull-request.md ├── Pull_Request_Template.md └── workflows │ ├── autocomment-issue.yml │ └── close-old-issue.yml ├── tailwind.config.ts ├── LICENSE ├── package.json ├── learn.md ├── CONTRIBUTING.md ├── CODE_OF_CONDUCT.md └── README.md /components/CustomScrollbar.module.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .env 3 | 4 | -------------------------------------------------------------------------------- /app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Abidsyed25/ScrapQuest/HEAD/app/favicon.ico -------------------------------------------------------------------------------- /public/404.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Abidsyed25/ScrapQuest/HEAD/public/404.png -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "githubPullRequests.ignoredPullRequestBranches": ["main"] 3 | } 4 | -------------------------------------------------------------------------------- /app/faq/homeicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Abidsyed25/ScrapQuest/HEAD/app/faq/homeicon.png -------------------------------------------------------------------------------- /app/about/homeicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Abidsyed25/ScrapQuest/HEAD/app/about/homeicon.png -------------------------------------------------------------------------------- /app/contact/contact.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Abidsyed25/ScrapQuest/HEAD/app/contact/contact.jpg -------------------------------------------------------------------------------- /public/scrap-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Abidsyed25/ScrapQuest/HEAD/public/scrap-logo.png -------------------------------------------------------------------------------- /app/contact/homeicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Abidsyed25/ScrapQuest/HEAD/app/contact/homeicon.png -------------------------------------------------------------------------------- /app/licensing/homeicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Abidsyed25/ScrapQuest/HEAD/app/licensing/homeicon.png -------------------------------------------------------------------------------- /app/privacypolicy/homeicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Abidsyed25/ScrapQuest/HEAD/app/privacypolicy/homeicon.png -------------------------------------------------------------------------------- /app/termsconditions/homeicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Abidsyed25/ScrapQuest/HEAD/app/termsconditions/homeicon.png -------------------------------------------------------------------------------- /next.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = {}; 3 | 4 | export default nextConfig; 5 | -------------------------------------------------------------------------------- /postcss.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('postcss-load-config').Config} */ 2 | const config = { 3 | plugins: { 4 | tailwindcss: {}, 5 | }, 6 | }; 7 | 8 | export default config; 9 | -------------------------------------------------------------------------------- /utils/cn.ts: -------------------------------------------------------------------------------- 1 | import { ClassValue, clsx } from "clsx"; 2 | import { twMerge } from "tailwind-merge"; 3 | 4 | export function cn(...inputs: ClassValue[]) { 5 | return twMerge(clsx(inputs)); 6 | } -------------------------------------------------------------------------------- /lib/utils.ts: -------------------------------------------------------------------------------- 1 | import { type ClassValue, clsx } from "clsx" 2 | import { twMerge } from "tailwind-merge" 3 | 4 | export function cn(...inputs: ClassValue[]) { 5 | return twMerge(clsx(inputs)) 6 | } 7 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:18-alpine 2 | 3 | WORKDIR /app 4 | 5 | COPY package.json package-lock.json ./ 6 | 7 | RUN npm install 8 | 9 | COPY . . 10 | 11 | RUN npm run build 12 | 13 | EXPOSE 3000 14 | 15 | CMD ["npm", "run", "dev:docker"] 16 | -------------------------------------------------------------------------------- /firebase.json: -------------------------------------------------------------------------------- 1 | { 2 | "hosting": { 3 | "public": "build", 4 | "site": "", 5 | "ignore": [ 6 | "firebase.json", 7 | "**/.*", 8 | "**/node_modules/**" 9 | ], 10 | "rewrites": [ 11 | { 12 | "source": "**" 13 | } 14 | ] 15 | } 16 | } -------------------------------------------------------------------------------- /components/CustomScrollbar.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styles from './CustomScrollbar.module.css'; 3 | 4 | const CustomScrollbar: React.FC = () => { 5 | return ( 6 |
7 | 8 |
9 | ); 10 | }; 11 | 12 | export default CustomScrollbar; 13 | -------------------------------------------------------------------------------- /components.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://ui.shadcn.com/schema.json", 3 | "style": "default", 4 | "rsc": true, 5 | "tsx": true, 6 | "tailwind": { 7 | "config": "tailwind.config.ts", 8 | "css": "app/globals.css", 9 | "baseColor": "slate", 10 | "cssVariables": true, 11 | "prefix": "" 12 | }, 13 | "aliases": { 14 | "components": "@/components", 15 | "utils": "@/lib/utils" 16 | } 17 | } -------------------------------------------------------------------------------- /app/not-found.tsx: -------------------------------------------------------------------------------- 1 | import Link from "next/link"; 2 | 3 | export default function NotFound() { 4 | return ( 5 |
6 | 404 not found picture 7 | Go Home 8 |
9 | ); 10 | } -------------------------------------------------------------------------------- /app/page.tsx: -------------------------------------------------------------------------------- 1 | import Footer from "@/components/Footer"; 2 | import Hero from "@/components/Hero"; 3 | import { Nav } from "@/components/Nav"; 4 | import Image from "next/image"; 5 | import CustomScrollbar from "@/components/CustomScrollbar"; 6 | 7 | export default function Home() { 8 | return ( 9 |
10 |
15 | ); 16 | } 17 | -------------------------------------------------------------------------------- /.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 | 9 | # testing 10 | /coverage 11 | 12 | # next.js 13 | /.next/ 14 | /out/ 15 | 16 | # production 17 | /build 18 | 19 | # misc 20 | .DS_Store 21 | *.pem 22 | 23 | # debug 24 | npm-debug.log* 25 | yarn-debug.log* 26 | yarn-error.log* 27 | 28 | # local env files 29 | .env*.local 30 | .env 31 | 32 | # vercel 33 | .vercel 34 | 35 | # typescript 36 | *.tsbuildinfo 37 | next-env.d.ts 38 | -------------------------------------------------------------------------------- /components/About.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | import { useRouter } from "next/navigation"; 3 | 4 | export default function Contact() { 5 | const router = useRouter(); 6 | 7 | const handleNavigation = () => { 8 | router.push('/about'); 9 | }; 10 | 11 | return ( 12 | 13 | 16 | ); 17 | } -------------------------------------------------------------------------------- /components/Login.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | import { useRouter } from "next/navigation"; 3 | 4 | export default function Login() { 5 | const router = useRouter(); 6 | 7 | const handleNavigation = () => { 8 | router.push('/login'); 9 | }; 10 | 11 | return ( 12 | 15 | ); 16 | } 17 | -------------------------------------------------------------------------------- /components/Contact.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | import { useRouter } from "next/navigation"; 3 | 4 | export default function Contact() { 5 | const router = useRouter(); 6 | 7 | const handleNavigation = () => { 8 | router.push('/contact'); 9 | }; 10 | 11 | return ( 12 | 13 | 16 | ); 17 | } -------------------------------------------------------------------------------- /components/FAQ.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | import { useRouter } from "next/navigation"; 3 | 4 | export default function FAQButton() { 5 | const router = useRouter(); 6 | 7 | const handleNavigation = () => { 8 | router.push('/faq'); 9 | }; 10 | 11 | return ( 12 | 18 | ); 19 | } 20 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.8' 2 | 3 | services: 4 | scrapquest: 5 | build: . 6 | image: scrapquest 7 | container_name: scrapquest 8 | depends_on: 9 | - browserless 10 | ports: 11 | - "3000:3000" 12 | environment: 13 | - NODE_ENV=development 14 | volumes: 15 | - .:/usr/src/app 16 | - /usr/src/app/node_modules 17 | 18 | 19 | browserless: 20 | image: browserless/chrome 21 | ports: 22 | - "3001:3000" 23 | environment: 24 | - MAX_CONCURRENT_SESSIONS=10 25 | - CONNECTION_TIMEOUT=30000 26 | - PREBOOT_CHROME=true -------------------------------------------------------------------------------- /public/vercel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "lib": ["dom", "dom.iterable", "esnext"], 4 | "allowJs": true, 5 | "skipLibCheck": true, 6 | "strict": true, 7 | "noEmit": true, 8 | "esModuleInterop": true, 9 | "module": "esnext", 10 | "moduleResolution": "bundler", 11 | "resolveJsonModule": true, 12 | "isolatedModules": true, 13 | "jsx": "preserve", 14 | "incremental": true, 15 | "plugins": [ 16 | { 17 | "name": "next" 18 | } 19 | ], 20 | "paths": { 21 | "@/*": ["./*"] 22 | } 23 | }, 24 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", "app/g", "app/Firebase/firebase.js"], 25 | "exclude": ["node_modules"] 26 | } 27 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 💡 Feature Request 3 | about: Suggest an interesting feature idea for this project 4 | title: '💡[FEATURE]: ' 5 | labels: 'enhancement' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. -------------------------------------------------------------------------------- /components/Snackbar.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | import { Toast } from "flowbite-react"; 3 | import { HiCheck, HiExclamation, HiX } from "react-icons/hi"; 4 | 5 | 6 | export default function Snackbar({state,setstate}:any){ 7 | 8 | const handleCloseSnackbar = () => { 9 | setstate(null); 10 | } 11 | return <> 12 | 13 |
14 | 15 |
16 |
{state}
17 | 18 |
19 | 20 | } -------------------------------------------------------------------------------- /app/GoogleTranslate.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | 3 | import React, { useEffect } from "react"; 4 | import Script from "next/script"; 5 | 6 | 7 | const GoogleTranslate = () => { 8 | return ( 9 |
10 |
11 | 24 |