Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: ✨ updated landing page #92

Merged
merged 5 commits into from
Nov 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 📊 Ultra-Reporter App

[Ultra-Reporter](https://ultra-reporter-app.vercel.app/) is your go-to tool for transforming your TestNG (Maven, Java) test results into stunning reports.
[Ultra-Reporter](https://www.ultra-reporter.com/) is your go-to tool for transforming your TestNG (Maven, Java) test results into stunning reports.

Built on the power of Next.js and Tailwind CSS, this reporter takes your raw test results from TestNG and presents it in a beautiful, easy-to-digest format. Simplify your test reporting with just a one click!

Expand Down Expand Up @@ -28,10 +28,13 @@ Following are the steps to get started with Ultra-Reporter:

Ultra-Reporter leverages cutting-edge technologies to provide fast, efficient, and sleek reporting:

- **[Next.js 14](https://nextjs.org/)**: Dynamic, server-rendered React apps.
- **[Next.js 15](https://nextjs.org/)**: Dynamic, server-rendered React apps.
- **[TypeScript](https://www.typescriptlang.org/)**: Strongly typed for better reliability and scalability.
- **[Tailwind CSS](https://tailwindcss.com/)**: Beautiful, responsive design without the hassle.
- **[Shadcn/UI](https://ui.shadcn.com/)**, [Magic UI](https://magicui.design/) & **[Daisy UI](https://daisyui.com/)**: Sleek UI components for a polished user experience.
- **[Turborepo](https://turborepo.org/)**: Fast, efficient monorepo management.
- **[ESLint](https://eslint.org/) & [Prettier](https://prettier.io/)**: Enforce consistent code style and automate code formatting.
- **[Prettier](https://prettier.io/)**: Code formatter.
- **[Vercel](https://vercel.com/)**: Next.js is deployed on Vercel, a platform for static websites and serverless functions.

## ⏱️ What's Next?
Expand All @@ -44,6 +47,7 @@ Got a feature request or an idea to make Ultra-Reporter even better? Don’t hes

Check out the previous versions of Ultra-Reporter to see what features were added in each release:

- [Version 0.5.0](https://github.com/WasiqB/ultra-reporter-app/releases/tag/v0.5.0)
- [Version 0.4.0](https://github.com/WasiqB/ultra-reporter-app/releases/tag/v0.4.0)
- [Version 0.3.0](https://github.com/WasiqB/ultra-reporter-app/releases/tag/v0.3.0)
- [Version 0.2.0](https://github.com/WasiqB/ultra-reporter-app/releases/tag/v0.2.0)
Expand Down
45 changes: 0 additions & 45 deletions apps/web/app/(app)/layout.tsx

This file was deleted.

24 changes: 7 additions & 17 deletions apps/web/app/(app)/page.tsx
Original file line number Diff line number Diff line change
@@ -1,31 +1,21 @@
import { FAQ } from '@ultra-reporter/ui/home/faq';
import { Features } from '@ultra-reporter/ui/home/feature';
import { Feedback } from '@ultra-reporter/ui/home/feedback';
import { Hero } from '@ultra-reporter/ui/home/hero';
import { HowItWorks } from '@ultra-reporter/ui/home/how-it-works';
import { NavBar } from '@ultra-reporter/ui/home/nav-bar';
import { OpenSource } from '@ultra-reporter/ui/home/open-source';
import { Sponsor } from '@ultra-reporter/ui/home/sponsor';
import { FileUpload } from '@ultra-reporter/ui/utils/file-upload';

const LandingPage = (): JSX.Element => {
return (
<>
<NavBar />
<main className='bg-background text-foreground container mx-auto flex-grow px-4 py-16'>
<div className='flex flex-col items-center pt-16 text-center'>
<h2 className='gradient-text text-3xl font-bold md:text-5xl'>
Ultra Reporter
</h2>
<h1 className='mb-8 mt-16 text-center text-4xl font-bold leading-tight md:text-6xl'>
<span className='text-foreground'>
Convert your Test results to
</span>
<br />
<span className='gradient-text'>Beautiful Report</span>
<br />
<span className='text-foreground'>in one click</span>
</h1>
<FileUpload />
</div>
<main className='bg-background text-foreground container mx-auto px-4 py-16'>
<Hero />
<Features />
<HowItWorks />
<FAQ />
<Feedback />
<Sponsor />
<OpenSource />
Expand Down
97 changes: 97 additions & 0 deletions apps/web/app/layout.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
import { GoogleAnalytics } from '@next/third-parties/google';
import { Provider as AnalyticsProvider } from '@ultra-reporter/analytics/client';
import '@ultra-reporter/ui/global.css';
import { Footer } from '@ultra-reporter/ui/home/footer';
import { ScrollToTop } from '@ultra-reporter/ui/home/scroll-to-top';
import { ThemeProvider } from '@ultra-reporter/ui/utils/theme-provider';
import { isProd } from '@ultra-reporter/utils/constants';
import type { Metadata } from 'next';
import { DetailedHTMLProps, HtmlHTMLAttributes } from 'react';

export const metadata: Metadata = {
title: {
default: 'Ultra Reporter - Beautiful Test Reports in One Click',
template: '%s | Ultra Reporter',
},
description:
'Convert your TestNG test results into beautiful, comprehensive reports instantly with Ultra Reporter. Visualize your data and improve your testing workflow.',
keywords: [
'TestNG',
'TestNG Reporter',
'test reports',
'test visualization',
'QA tools',
'software testing',
'Ultra Reporter',
'TestNG reports',
'TestNG visualization',
],
authors: [{ name: 'Wasiq Bhamla' }],
creator: 'Wasiq Bhamla',
publisher: 'Wasiq Bhamla',
formatDetection: {
email: false,
address: false,
telephone: false,
},
openGraph: {
type: 'website',
locale: 'en_US',
url: 'https://ultra-reporter.com',
title: 'Ultra Reporter - Beautiful Test Reports in One Click',
description:
'Convert your TestNG test results into beautiful, comprehensive reports instantly with Ultra Reporter. Visualize your data and improve your testing workflow.',
siteName: 'Ultra Reporter',
},
twitter: {
card: 'summary_large_image',
title: 'Ultra Reporter - Beautiful Test Reports in One Click',
description:
'Convert your TestNG test results into beautiful, comprehensive reports instantly with Ultra Reporter. Visualize your data and improve your testing workflow.',
creator: '@WasiqBhamla',
},
robots: {
index: true,
follow: true,
googleBot: {
index: true,
follow: true,
'max-video-preview': -1,
'max-image-preview': 'large',
'max-snippet': -1,
},
},
};

const RootLayout = ({
children,
}: Readonly<{
children: React.ReactNode;
}>): DetailedHTMLProps<
HtmlHTMLAttributes<HTMLHtmlElement>,
HTMLHtmlElement
> => {
return (
<html lang='en' suppressHydrationWarning>
<head>
<link rel='icon' href='/favicon.png' sizes='any' type='image/png' />
</head>
<body className={'antialiased'}>
<ThemeProvider
attribute='class'
defaultTheme='light'
enableSystem
disableTransitionOnChange
>
{children}
<ScrollToTop />
<Footer />
<AnalyticsProvider />
</ThemeProvider>
</body>
{isProd && <GoogleAnalytics gaId='G-CNW9F6PH7P' />}
</html>
);
};

export default RootLayout;
19 changes: 19 additions & 0 deletions apps/web/app/not-found.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import { Button } from '@ultra-reporter/ui/components/button';
import { FileQuestion } from 'lucide-react';
import Link from 'next/link';

export default function NotFound() {
return (
<div className='bg-background text-foreground flex min-h-screen flex-col items-center justify-center'>
<FileQuestion className='text-primary mb-8 h-24 w-24' />
<h1 className='mb-4 text-4xl font-bold'>404 - Page Not Found</h1>
<p className='mb-8 max-w-md text-center text-xl'>
Oops! It seems what you're looking for has gone missing in our data
center.
</p>
<Button asChild>
<Link href='/'>Return to Homepage</Link>
</Button>
</div>
);
}
14 changes: 14 additions & 0 deletions apps/web/app/robots.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { MetadataRoute } from 'next';

const robots = (): MetadataRoute.Robots => {
return {
rules: {
userAgent: '*',
allow: '/',
disallow: '/private/',
},
sitemap: 'https://ultra-reporter.com/sitemap.xml',
};
};

export default robots;
16 changes: 16 additions & 0 deletions apps/web/app/sitemap.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { MetadataRoute } from 'next';

const baseUrl = 'https://ultra-reporter.com';

const sitemap = (): MetadataRoute.Sitemap => {
const routes = ['', '/pricing', '/features', '/faq'].map((route) => ({
url: `${baseUrl}${route}`,
lastModified: new Date().toISOString().split('T')[0],
changeFrequency: 'weekly' as const,
priority: route === '' ? 1 : 0.8,
}));

return routes;
};

export default sitemap;
1 change: 1 addition & 0 deletions apps/web/next.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ const nextConfig = {
eslint: {
ignoreDuringBuilds: true,
},
reactStrictMode: true,
};

export default nextConfig;
1 change: 0 additions & 1 deletion apps/web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
"devDependencies": {
"@types/react": "^18.3.12",
"@types/react-dom": "^18",
"@ultra-reporter/tailwind-config": "workspace:*",
"@ultra-reporter/typescript-config": "workspace:*",
"postcss": "^8.4.49",
"tailwindcss": "^3.4.15"
Expand Down
2 changes: 1 addition & 1 deletion apps/web/postcss.config.mjs
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export { default } from '@ultra-reporter/tailwind-config/postcss.config';
export { default } from '@ultra-reporter/ui/postcss.config';
Loading