Skip to content

Commit bf2c4fc

Browse files
committed
Init: Turbo repo
1 parent 6f3b6ef commit bf2c4fc

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+5901
-1
lines changed

.editorconfig

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# editorconfig.org
2+
root = true
3+
4+
[*]
5+
charset = utf-8
6+
end_of_line = lf
7+
indent_size = 2
8+
indent_style = space
9+
insert_final_newline = true
10+
trim_trailing_whitespace = true

.eslintrc.js

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// This configuration only applies to the package manager root.
2+
/** @type {import("eslint").Linter.Config} */
3+
module.exports = {
4+
ignorePatterns: ["apps/**", "packages/**"],
5+
extends: ["@steal-the-deal/eslint-config/library.js"],
6+
parser: "@typescript-eslint/parser",
7+
parserOptions: {
8+
project: true,
9+
},
10+
};

.gitignore

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
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+
8+
# Local env files
9+
.env
10+
.env*.local
11+
12+
# Testing
13+
coverage
14+
15+
# Turbo
16+
.turbo
17+
18+
# Vercel
19+
.vercel
20+
21+
# Build Outputs
22+
.next/
23+
out/
24+
build
25+
dist
26+
27+
28+
# Debug
29+
npm-debug.log*
30+
yarn-debug.log*
31+
yarn-error.log*
32+
33+
# Misc
34+
.DS_Store
35+
*.pem
36+
37+
# Typescript
38+
*.tsbuildinfo
39+
next-env.d.ts

.npmrc

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
auto-install-peers = true
2+
enable-pre-post-scripts=true # Enable pre/post scripts (for postui:add)

README.md

+36-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,36 @@
1-
# steal-the-deal
1+
This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
2+
3+
## Getting Started
4+
5+
First, run the development server:
6+
7+
```bash
8+
npm run dev
9+
# or
10+
yarn dev
11+
# or
12+
pnpm dev
13+
# or
14+
bun dev
15+
```
16+
17+
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
18+
19+
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
20+
21+
This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
22+
23+
## Learn More
24+
25+
To learn more about Next.js, take a look at the following resources:
26+
27+
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
28+
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
29+
30+
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
31+
32+
## Deploy on Vercel
33+
34+
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.
35+
36+
Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.

apps/admin/.eslintrc.js

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
/** @type {import("eslint").Linter.Config} */
2+
module.exports = {
3+
root: true,
4+
extends: ["@steal-the-deal/eslint-config/next.js"],
5+
parser: "@typescript-eslint/parser",
6+
parserOptions: {
7+
project: true,
8+
},
9+
};

apps/admin/README.md

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
## Getting Started
2+
3+
First, run the development server:
4+
5+
```bash
6+
pnpm dev
7+
```
8+
9+
Open [http://localhost:3001](http://localhost:3001) with your browser to see the result.
10+
11+
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
12+
13+
To create [API routes](https://nextjs.org/docs/app/building-your-application/routing/router-handlers) add an `api/` directory to the `app/` directory with a `route.ts` file. For individual endpoints, create a subfolder in the `api` directory, like `api/hello/route.ts` would map to [http://localhost:3001/api/hello](http://localhost:3001/api/hello).
14+
15+
## Learn More
16+
17+
To learn more about Next.js, take a look at the following resources:
18+
19+
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
20+
- [Learn Next.js](https://nextjs.org/learn/foundations/about-nextjs) - an interactive Next.js tutorial.
21+
22+
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
23+
24+
## Deploy on Vercel
25+
26+
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_source=github.com&utm_medium=referral&utm_campaign=turborepo-readme) from the creators of Next.js.
27+
28+
Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.

apps/admin/app/global.css

+76
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
@tailwind base;
2+
@tailwind components;
3+
@tailwind utilities;
4+
5+
@layer base {
6+
:root {
7+
--background: 0 0% 100%;
8+
--foreground: 222.2 84% 4.9%;
9+
10+
--card: 0 0% 100%;
11+
--card-foreground: 222.2 84% 4.9%;
12+
13+
--popover: 0 0% 100%;
14+
--popover-foreground: 222.2 84% 4.9%;
15+
16+
--primary: 222.2 47.4% 11.2%;
17+
--primary-foreground: 210 40% 98%;
18+
19+
--secondary: 210 40% 96.1%;
20+
--secondary-foreground: 222.2 47.4% 11.2%;
21+
22+
--muted: 210 40% 96.1%;
23+
--muted-foreground: 215.4 16.3% 46.9%;
24+
25+
--accent: 210 40% 96.1%;
26+
--accent-foreground: 222.2 47.4% 11.2%;
27+
28+
--destructive: 0 84.2% 60.2%;
29+
--destructive-foreground: 210 40% 98%;
30+
31+
--border: 214.3 31.8% 91.4%;
32+
--input: 214.3 31.8% 91.4%;
33+
--ring: 222.2 84% 4.9%;
34+
35+
--radius: 0.5rem;
36+
}
37+
38+
.dark {
39+
--background: 222.2 84% 4.9%;
40+
--foreground: 210 40% 98%;
41+
42+
--card: 222.2 84% 4.9%;
43+
--card-foreground: 210 40% 98%;
44+
45+
--popover: 222.2 84% 4.9%;
46+
--popover-foreground: 210 40% 98%;
47+
48+
--primary: 210 40% 98%;
49+
--primary-foreground: 222.2 47.4% 11.2%;
50+
51+
--secondary: 217.2 32.6% 17.5%;
52+
--secondary-foreground: 210 40% 98%;
53+
54+
--muted: 217.2 32.6% 17.5%;
55+
--muted-foreground: 215 20.2% 65.1%;
56+
57+
--accent: 217.2 32.6% 17.5%;
58+
--accent-foreground: 210 40% 98%;
59+
60+
--destructive: 0 62.8% 30.6%;
61+
--destructive-foreground: 210 40% 98%;
62+
63+
--border: 217.2 32.6% 17.5%;
64+
--input: 217.2 32.6% 17.5%;
65+
--ring: 212.7 26.8% 83.9%;
66+
}
67+
}
68+
69+
@layer base {
70+
* {
71+
@apply border-border;
72+
}
73+
body {
74+
@apply bg-background text-foreground;
75+
}
76+
}

apps/admin/app/icon.png

665 Bytes
Loading

apps/admin/app/layout.tsx

+59
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
import type { Metadata } from "next";
2+
import { Inter, Lexend } from "next/font/google";
3+
import "@/app/global.css";
4+
import Header from "@/components/header";
5+
6+
const inter = Inter({
7+
subsets: ["latin"],
8+
variable: "--font-inter",
9+
preload: true,
10+
display: "swap",
11+
});
12+
13+
const lexend = Lexend({
14+
subsets: ["latin"],
15+
variable: "--font-lexend",
16+
preload: true,
17+
display: "swap",
18+
});
19+
20+
const title = "Admin - Steal the Deal";
21+
const description =
22+
"Discover exclusive discounts at local offline stores near you. Steal the best deals and save big with our guide to nearby store discounts. Shop smarter today and don't miss out on amazing savings!";
23+
24+
export const metadata: Metadata = {
25+
title,
26+
description,
27+
openGraph: {
28+
title,
29+
description,
30+
siteName: "Steal The Deal",
31+
type: "website",
32+
},
33+
twitter: {
34+
card: "summary_large_image",
35+
title,
36+
description,
37+
creator: "@stealthedealin",
38+
},
39+
robots: {
40+
index: true,
41+
follow: true,
42+
},
43+
};
44+
45+
export default function RootLayout({
46+
children,
47+
}: Readonly<{
48+
children: React.ReactNode;
49+
}>) {
50+
return (
51+
<html lang="en">
52+
<link rel="icon" href="/favicon.ico" sizes="any" />
53+
<body className={`${inter.variable} ${lexend.variable} font-sans`}>
54+
<Header />
55+
{children}
56+
</body>
57+
</html>
58+
);
59+
}

apps/admin/app/page.tsx

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import MaxWidthWrapper from "@/components/MaxWidthWrapper";
2+
import Hero from "@/components/home/Hero";
3+
4+
export default function Page() {
5+
return (
6+
<MaxWidthWrapper>
7+
<Hero />
8+
</MaxWidthWrapper>
9+
);
10+
}
+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { cn } from "@steal-the-deal/ui/lib/utils";
2+
import { ReactNode } from "react";
3+
4+
const MaxWidthWrapper = ({
5+
className,
6+
children,
7+
}: {
8+
className?: string;
9+
children: ReactNode;
10+
}) => {
11+
return (
12+
<div
13+
className={cn("h-full mx-auto w-full max-w-screen-xl px-5", className)}
14+
>
15+
{children}
16+
</div>
17+
);
18+
};
19+
20+
export default MaxWidthWrapper;
+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import Link from "next/link";
2+
import React from "react";
3+
4+
function Header() {
5+
return (
6+
<header className="px-5 py-[10px] max-w-screen-xl m-auto">
7+
<nav>
8+
<Link
9+
href={"/"}
10+
className="font-lex font-medium text-[20px] sm:text-[28px]"
11+
>
12+
StealThe<span className="text-red-600">Deal</span>
13+
</Link>
14+
</nav>
15+
</header>
16+
);
17+
}
18+
19+
export default Header;

apps/admin/components/home/Hero.tsx

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import React from "react";
2+
3+
function Hero() {
4+
return (
5+
<section>
6+
<h1 className="font-medium text-3xl py-10 text-center">Admin</h1>
7+
</section>
8+
);
9+
}
10+
11+
export default Hero;

apps/admin/next.config.mjs

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
/** @type {import('next').NextConfig} */
2+
const nextConfig = {
3+
transpilePackages: ["@steal-the-deal/ui"],
4+
};
5+
6+
export default nextConfig;

apps/admin/package.json

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
{
2+
"name": "@steal-the-deal/admin",
3+
"private": true,
4+
"scripts": {
5+
"dev": "next dev --port 3001",
6+
"build": "next build",
7+
"start": "next start",
8+
"lint": "eslint . --max-warnings 0"
9+
},
10+
"dependencies": {
11+
"@steal-the-deal/ui": "workspace:*",
12+
"next": "14.2.4",
13+
"react": "^18",
14+
"react-dom": "^18"
15+
},
16+
"devDependencies": {
17+
"@next/eslint-plugin-next": "14.2.4",
18+
"@steal-the-deal/eslint-config": "workspace:*",
19+
"@steal-the-deal/typescript-config": "workspace:*",
20+
"@types/eslint": "^8",
21+
"@types/node": "^20",
22+
"@types/react": "^18",
23+
"@types/react-dom": "^18",
24+
"autoprefixer": "^10.4.19",
25+
"eslint": "^9.5.0",
26+
"postcss": "^8.4.38",
27+
"tailwindcss": "^3.4.4",
28+
"typescript": "^5.4.5"
29+
}
30+
}

apps/admin/postcss.config.mjs

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export { default } from "@steal-the-deal/ui/postcss.config";

apps/admin/tailwind.config.ts

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from "@steal-the-deal/ui/tailwind.config";

0 commit comments

Comments
 (0)