# Project export: Grood

This document was generated by HackStack to give an AI agent context about a hackathon project. Sections are labeled with their provenance; content marked as truncated was cut to keep this document small.

## Project metadata

- Hackathon: Cal Hacks 11.0
- Tagline: Ideal Typing Test Simulator
- Devpost: https://devpost.com/software/grood
- GitHub: https://github.com/KYUTI3/Grood
- Team: 1 GitHub contributor(s) — KYUTI3 (21 commits)

## Devpost submission (written by the team)

No Devpost description available.

## README (from the GitHub repository)

This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app).

## Getting Started

First, run the development server:

```bash
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
```

Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.

You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.

This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.

## Learn More

To learn more about Next.js, take a look at the following resources:

- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.

You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome!

## Deploy on Vercel

The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.

Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.


## Detected evidence (automated analysis)

Indexed codebase: 13 recognized source files, 8 KB.
- CSS (language) — detected in the code
- Next.js (technology) — detected in the code
- React (technology) — detected in the code
- Tailwind CSS (technology) — detected in the code
- TypeScript (language) — detected in the code

## Codebase structure (from repository index)

### Files (18 of 18)

```
.gitignore
components/Accordion.tsx
components/ElapsedTime.tsx
components/Footer.tsx
components/Hero.tsx
components/Info.tsx
components/Input.tsx
next.config.mjs
package.json
postcss.config.mjs
README.md
src/app/globals.css
src/app/layout.tsx
src/app/page.tsx
src/app/Sim/layout.tsx
src/app/Sim/page.tsx
tailwind.config.ts
tsconfig.json
```

### Dependencies

- package.json: @nextui-org/accordion@^2.0.40, @nextui-org/button@^2.0.38, @nextui-org/navbar@^2.0.37, @nextui-org/react@^2.4.8, @types/node@^20, @types/react@^18, @types/react-dom@^18, butteruptoasts@^2.0.1, next@14.2.15, postcss@^8, react@^18, react-dom@^18, tailwindcss@^3.4.1, typescript@^5

### Recent commits (newest first)

- final from cal hacks
- new route
- more useless
- some changes
- abandon hero component
- hotfix for hero
- useless
- minor improv
- i am not slep
- added more stuff but brokek
- another yesss
- yesss
- changes + add footer
- mandatory update
- not
- another one
- uppp
- neeed to up
- up
- slop

## Key source files (fetched from GitHub, selected and truncated for size)

### package.json

```
{
  "name": "grood",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start",
    "lint": "next lint"
  },
  "dependencies": {
    "@nextui-org/accordion": "^2.0.40",
    "@nextui-org/button": "^2.0.38",
    "@nextui-org/navbar": "^2.0.37",
    "@nextui-org/react": "^2.4.8",
    "butteruptoasts": "^2.0.1",
    "next": "14.2.15",
    "react": "^18",
    "react-dom": "^18"
  },
  "devDependencies": {
    "@types/node": "^20",
    "@types/react": "^18",
    "@types/react-dom": "^18",
    "postcss": "^8",
    "tailwindcss": "^3.4.1",
    "typescript": "^5"
  }
}

```

### src/app/layout.tsx

```typescript
import type { Metadata } from "next";
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",
});

export const metadata: Metadata = {
  title: "Create Next App",
  description: "Generated by create next app",
};

export default function RootLayout({
  children,
}: Readonly<{
  children: React.ReactNode;
}>) {
  return (
    <html lang="en">
      <body
        className={`${geistSans.variable} ${geistMono.variable} antialiased`}
      >
        {children}
      </body>
    </html>
  );
}

```

### src/app/page.tsx

```typescript
import Image from "next/image";
import Link from "next/link"
import {
  Navbar, 
  NavbarBrand, 
  NavbarContent, 
  NavbarItem, 
  NavbarMenuToggle,
  NavbarMenu,
  NavbarMenuItem
} from "@nextui-org/navbar";
import {Accordion, AccordionItem} from "@nextui-org/accordion";
import {Button, ButtonGroup} from "@nextui-org/button";
import Footer from "../../components/Footer";
// import Accord from "../../components/Accordion";


export default function Home() {
  const accOne = "Grood is a Typing Test Simulator that helps you improve on your typing!"
  const accTwo = "Grood works by collecting your performance and running it throught an LLM to help grade you!"
  return (
    <div className="min-h-screen flex flex-col">
      <Navbar className="fixed top-0 left-0 right-0 w-full max-w-4xl mx-auto flex justify-between items-center p-4 bg-transparent z-50 text-lg">
        <NavbarBrand className="flex justify-center w-full">
          <p className="font-bold">Grood</p>
        </NavbarBrand>
        <NavbarContent className="flex justify-center w-full">
          <NavbarItem>
            <Link href="#">About</Link>
          </NavbarItem>
        </NavbarContent>
        <NavbarContent className="flex justify-end w-full font-bold">
          <NavbarItem className="hidden lg:flex">
            <Link href="#">Login</Link>
          </NavbarItem>
        </NavbarContent>
      </Navbar>
      <div className="flex-grow flex-row">
      <div className="flex flex-col items-center justify-center min-h-screen text-white py-4">
      <div className="flex flex-row items-center space-x-4"> 
        <Image
          src="/logo.png"
          width={250}
          height={250}
          alt="Picture of Mascot"
        />
        <div className="text-center flex flex-col">
          <p className="text-4xl font-bold mb-2"> 
            Welcome to Grood
          </p>
          <p className="text-xl mb-6"> 
            The Typing Test Simulator for Ideal Improvement
          </p>
          <Button radius="md" size="md" className="bg-green-500 hover:bg-green-600 transition duration-200"> {/* Ensure button has background and hover effect */}
            Sign Up!
          </Button>
        </div>
      </div>
       <div className=""> 
        {/* <Accord /> */}
      </div> 
    </div>
      </div>
      <div className="w-full text-center p-4 text-green-500 underline-offset-2">
        <Footer />
      </div>
    </div>
  );
}

```

### src/app/Sim/page.tsx

```typescript
export default function Page() {
    return <div> </div>
}
```

### src/app/Sim/layout.tsx

```typescript
export default function SimLayout({
    children, 
  }: {
    children: React.ReactNode
  }) {
    return (
      <section>
        {children}
      </section>
    )
  }
  
```

### tailwind.config.ts

```typescript
import type { Config } from "tailwindcss";

const config: Config = {
  content: [
    "./src/pages/**/*.{js,ts,jsx,tsx,mdx}",
    "./src/components/**/*.{js,ts,jsx,tsx,mdx}",
    "./src/app/**/*.{js,ts,jsx,tsx,mdx}",
  ],
  theme: {
    extend: {
      colors: {
        background: "var(--background)",
        foreground: "var(--foreground)",
      },
    },
  },
  plugins: [],
};
export default config;

```

### components/Info.tsx

```typescript
import React from "react";
```

### components/Input.tsx

```typescript
import React from "react";

const Input = () => (
    <div className="">

    </div>
);
```

### components/Footer.tsx

```typescript

const Footer = () => (
    <div className="">
     <div className="font-sans flex-row py-8 px-4 my-2 space-y-6 bottom-0 justify-center">
       <div className="font-extrabold text-lg"> 
           <p className=""> Made with Psuedo Innovation and Brainrot </p>
        <div className="underline-offset-2"> 
           <p> By: Luis Cardenas </p>
        </div>
       </div>
     </div>
    </div>
);

export default Footer;
```

### components/Accordion.tsx

```typescript
import { Accordion, AccordionItem } from "@nextui-org/accordion";

const accOne = "Grood is a Typing Test Simulator that helps you improve on your typing!"
const accTwo = "Grood works by collecting your performance and running it throught an LLM to help grade you!"

const Accord = () => (
  <div> 
    <Accordion>
    <AccordionItem key="1" aria-label="Accordion 1" title="What is Grood really">
    {accOne}
    </AccordionItem>
    <AccordionItem key="2" aria-label="Accordion 2" title="How does it work?">
    {accTwo}
    </AccordionItem>
    </Accordion>
    </div> 

)

export default Accord
```

[3 more indexed source files omitted to keep this export small. The full file list is in the Codebase structure section above.]