diff --git a/.vercelignore b/.vercelignore new file mode 100644 index 0000000..2afe1a7 --- /dev/null +++ b/.vercelignore @@ -0,0 +1,18 @@ +node_modules +.next +.git +*.log +.env +.env*.local +apps/*/.env +packages/*/.env +.turbo +coverage +.DS_Store +Dockerfile* +docker-compose*.yml +apps/api/ +apps/web/recordings/ +apps/web/uploads/ +apps/web/.next +apps/**/node_modules \ No newline at end of file diff --git a/apps/api/src/app/middlewares/validateUser.ts b/apps/api/src/app/middlewares/validateUser.ts index 4225dd6..02d7f11 100644 --- a/apps/api/src/app/middlewares/validateUser.ts +++ b/apps/api/src/app/middlewares/validateUser.ts @@ -10,7 +10,6 @@ export const validateUser = (...roles: TUserRole[]) => { return async (req: ICustomRequest, res: Response, next: NextFunction) => { try { const token = req.headers.authorization; - if (!token) { return res.status(401).json({ success: false, @@ -26,7 +25,6 @@ export const validateUser = (...roles: TUserRole[]) => { const session = await auth.api.getSession({ headers: modifiedHeaders as any, }); - if (!session?.user) { return res.status(401).json({ success: false, diff --git a/apps/api/src/config/index.ts b/apps/api/src/config/index.ts index 3c242c2..acca841 100644 --- a/apps/api/src/config/index.ts +++ b/apps/api/src/config/index.ts @@ -15,7 +15,10 @@ export default { : process.env.SERVER_URL, port: process.env.PORT, database_url: process.env.DATABASE_URL, - better_token_key: process.env.BETTER_AUTH_TOKEN_KEY, + better_token_key: + process.env.NODE_ENV === "production" + ? process.env.BETTER_AUTH_TOKEN_KEY_PROD + : process.env.BETTER_AUTH_TOKEN_KEY_DEV, // cloudinary: { // api_key: process.env.CLOUDINARY_API_KEY, // api_secret: process.env.CLOUDINARY_API_SECRET, diff --git a/apps/web/app/attempt-interview/page.tsx b/apps/web/app/attempt-interview/page.tsx index 9b760d4..4dbc62f 100644 --- a/apps/web/app/attempt-interview/page.tsx +++ b/apps/web/app/attempt-interview/page.tsx @@ -5,7 +5,9 @@ import { getMyInterviews } from "@/services/interview"; import { RiVoiceAiLine } from "react-icons/ri"; const AttemtInterviewPage = async () => { - const { data } = await getMyInterviews(); + const res = await getMyInterviews(); + console.log(res); + const { data } = res; if (!data) { return ; } diff --git a/apps/web/app/globals.css b/apps/web/app/globals.css index 8abea51..fba7deb 100644 --- a/apps/web/app/globals.css +++ b/apps/web/app/globals.css @@ -7,6 +7,7 @@ --color-background: var(--background); --color-foreground: var(--foreground); --font-body: var(--font-body), ui-sans-serif, system-ui, sans-serif; + --font-mark: var(--font-mark), ui-sans-serif, system-ui, sans-serif; --font-heading: var(--font-heading), ui-sans-serif, system-ui, sans-serif; --font-logo: var(--font-logo), ui-sans-serif, system-ui, sans-serif; --font-mono: var(--font-geist-mono); @@ -47,6 +48,13 @@ --color-main: #4a7199; } +body { + /* Standard fix for macOS/iOS */ + -webkit-font-smoothing: antialiased; + /* Standard fix for Firefox */ + -moz-osx-font-smoothing: grayscale; +} + :root { --radius: 0.625rem; --card: oklch(1 0 0); @@ -124,3 +132,9 @@ @apply bg-background text-foreground; } } + +@layer utilities { + .font-mark { + font-family: var(--font-mark), cursive; + } +} diff --git a/apps/web/app/layout.tsx b/apps/web/app/layout.tsx index 5cecf1b..10e082e 100644 --- a/apps/web/app/layout.tsx +++ b/apps/web/app/layout.tsx @@ -1,12 +1,17 @@ import "./globals.css"; import Navbar from "@/components/shared/Navbar"; -import { qurova, runtime, outfit } from "@/lib/fonts"; -import { Poiret_One } from 'next/font/google' +import { qurova, runtime, outfit, markScript as mScript } from "@/lib/fonts"; +import { Poiret_One, Marck_Script } from "next/font/google"; const poiretOne = Poiret_One({ - weight: ['400'], - variable: '--font-body', -}) + weight: ["400"], + variable: "--font-body", +}); + +const markScript = Marck_Script({ + weight: ["400"], + variable: "--font-mark", +}); export default function RootLayout({ children, @@ -14,9 +19,9 @@ export default function RootLayout({ children: React.ReactNode; }>) { return ( - +
{children}
diff --git a/apps/web/components/home/CTASection.tsx b/apps/web/components/home/CTASection.tsx index 0891ccd..95496c5 100644 --- a/apps/web/components/home/CTASection.tsx +++ b/apps/web/components/home/CTASection.tsx @@ -34,10 +34,11 @@ export default function CTASection() { className="container mx-auto max-w-5xl bg-main rounded-[3rem] p-12 md:p-24 text-center text-white relative overflow-hidden" >
- +

- Ready to Transform Your Hiring? + Ready to Transform Your + Hiring?

Join thousands of companies and candidates using StyxFlow today. diff --git a/apps/web/components/home/FeaturesSection.tsx b/apps/web/components/home/FeaturesSection.tsx index f33e75a..efb7e9e 100644 --- a/apps/web/components/home/FeaturesSection.tsx +++ b/apps/web/components/home/FeaturesSection.tsx @@ -154,7 +154,8 @@ export default function FeaturesSection() {

- Why Choose StyxFlow? + Why + Choose StyxFlow?

Streamline your hiring process with cutting-edge AI technology @@ -174,7 +175,7 @@ export default function FeaturesSection() {

{feature.icon}
-

+

{feature.title}

diff --git a/apps/web/components/home/Footer.tsx b/apps/web/components/home/Footer.tsx index 470b897..c8fb0f8 100644 --- a/apps/web/components/home/Footer.tsx +++ b/apps/web/components/home/Footer.tsx @@ -3,34 +3,79 @@ import { FaTwitter, FaLinkedin, FaGithub } from "react-icons/fa"; export default function Footer() { return ( -