Skip to content

Commit 4115305

Browse files
committed
feat(seo and setup):add a new seo using metadata,sitemap,robot.txt usng next-sitemap dependies and also updated readme with shield and written a small setup guide
1 parent 97a5e2c commit 4115305

10 files changed

Lines changed: 257 additions & 34 deletions

File tree

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# Repeto
22

3+
<p align="center">
4+
<img src="https://img.shields.io/github/stars/CodeCompasss/repeto?style=social" alt="GitHub Repo stars" />
5+
<img src="https://img.shields.io/github/forks/CodeCompasss/repeto?style=social" alt="GitHub forks" />
6+
<img src="https://img.shields.io/github/issues/CodeCompasss/repeto" alt="GitHub issues" />
7+
<img src="https://img.shields.io/github/last-commit/CodeCompasss/repeto" alt="GitHub last commit" />
8+
</p>
9+
310
Repeto is a curated platform for discovering **high-quality, recurring opportunities** for B.Tech Computer Science students. Find the best scholarships, hackathons, research programs, open source projects, and internships—all in one place, updated and filtered for relevance and impact.
411

512
---

app/layout.tsx

Lines changed: 54 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { Metadata } from "next";
1+
import type { Metadata, Viewport } from "next";
22
import { Geist, Geist_Mono } from "next/font/google";
33
import "./globals.css";
44

@@ -12,12 +12,60 @@ const geistMono = Geist_Mono({
1212
subsets: ["latin"],
1313
});
1414

15+
// ✅ Consolidated metadata without images/icons
1516
export const metadata: Metadata = {
16-
title: "Repeto",
17-
description: "A platform for discovering and applying to opportunities",
18-
icons: {
19-
icon: "public/favicon.ico",
20-
}
17+
metadataBase: new URL("https://codecompasss.github.io/repeto/"),
18+
title: {
19+
default: "Repeto – Curated Internships & Opportunities",
20+
template: "%s | Repeto",
21+
},
22+
description:
23+
"Discover curated internships, research programs, hackathons, and scholarships. Filter by department, year, and more.",
24+
applicationName: "Repeto",
25+
alternates: {
26+
canonical: "/",
27+
},
28+
openGraph: {
29+
type: "website",
30+
url: "https://codecompasss.github.io/repeto/",
31+
siteName: "Repeto",
32+
title: "Repeto – Curated Internships & Opportunities",
33+
description:
34+
"Find internships, research programs, hackathons, and scholarships tailored to you.",
35+
},
36+
twitter: {
37+
card: "summary",
38+
site: "@your_handle",
39+
creator: "@your_handle",
40+
title: "Repeto – Curated Internships & Opportunities",
41+
description:
42+
"Find internships, research programs, hackathons, and scholarships tailored to you.",
43+
},
44+
keywords: [
45+
"internships",
46+
"research",
47+
"hackathon",
48+
"scholarship",
49+
"CSE",
50+
"ECE",
51+
"EEE",
52+
"IT",
53+
"engineering",
54+
"college opportunities",
55+
],
56+
category: "education",
57+
robots: {
58+
index: true,
59+
follow: true,
60+
"max-snippet": -1,
61+
"max-image-preview": "large",
62+
"max-video-preview": -1,
63+
},
64+
};
65+
66+
// ✅ Keep viewport separate
67+
export const viewport: Viewport = {
68+
themeColor: "#0ea5e9",
2169
};
2270

2371
export default function RootLayout({

app/page.tsx

Lines changed: 40 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,46 @@ export default function Home() {
1616
};
1717

1818
return (
19-
<main className="min-h-screen bg-gray-50">
20-
<Navbar />
19+
<div className="min-h-screen bg-gray-50">
20+
{/* Header / Navigation */}
21+
<header role="banner">
22+
<Navbar />
23+
</header>
24+
2125
<div className="flex flex-col md:flex-row">
22-
<FilterSection onFilterSubmit={handleFilterSubmit} />
23-
<div className="flex-1 max-w-7xl px-4 py-6 space-y-8">
24-
<TabSection activeTab={activeTab} onTabChange={setActiveTab} />
25-
<OpportunityList filters={activeFilters} activeTab={activeTab} />
26-
</div>
26+
{/* Sidebar filter section */}
27+
<aside
28+
aria-label="Filters for opportunities"
29+
className="md:w-64"
30+
>
31+
<FilterSection onFilterSubmit={handleFilterSubmit} />
32+
</aside>
33+
34+
{/* Main content area */}
35+
<main
36+
role="main"
37+
id="main-content"
38+
className="flex-1 max-w-7xl px-4 py-6 space-y-8"
39+
>
40+
<section aria-labelledby="opportunity-tabs">
41+
<h2 id="opportunity-tabs" className="sr-only">
42+
Opportunity categories
43+
</h2>
44+
<TabSection activeTab={activeTab} onTabChange={setActiveTab} />
45+
</section>
46+
47+
<section aria-labelledby="opportunity-list">
48+
<h2 id="opportunity-list" className="sr-only">
49+
List of opportunities
50+
</h2>
51+
<OpportunityList filters={activeFilters} activeTab={activeTab} />
52+
</section>
53+
</main>
2754
</div>
28-
<Footer />
29-
</main>
55+
56+
<footer role="contentinfo">
57+
<Footer />
58+
</footer>
59+
</div>
3060
);
31-
}
61+
}

next-sitemap.config.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
module.exports = {
2+
siteUrl: "https://codecompasss.github.io/repeto/",
3+
generateRobotsTxt: true, // also creates robots.txt
4+
};

package-lock.json

Lines changed: 40 additions & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
"dependencies": {
1212
"lucide-react": "^0.469.0",
1313
"next": "^15.1.4",
14+
"next-sitemap": "^4.2.3",
1415
"react": "^19.0.0",
1516
"react-dom": "^19.0.0",
1617
"tailwindcss-textshadow": "^2.1.3"

public/robots.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# *
2+
User-agent: *
3+
Allow: /
4+
5+
# Host
6+
Host: https://codecompasss.github.io/repeto/
7+
8+
# Sitemaps
9+
Sitemap: https://codecompasss.github.io/repeto/sitemap.xml

public/sitemap-0.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:mobile="http://www.google.com/schemas/sitemap-mobile/1.0" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
3+
<url><loc>https://codecompasss.github.io/repeto</loc><lastmod>2025-08-17T08:32:07.761Z</lastmod><changefreq>daily</changefreq><priority>0.7</priority></url>
4+
</urlset>

public/sitemap.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
3+
<sitemap><loc>https://codecompasss.github.io/repeto/sitemap-0.xml</loc></sitemap>
4+
</sitemapindex>

0 commit comments

Comments
 (0)