Skip to content
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
17 changes: 17 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,20 @@ You can check out [the Next.js GitHub repository](https://github.com/vercel/next
The easiest way to deploy this Next.js app is to use the [Vercel Platform](https://vercel.com/new/clone?repository-url=https://github.com/mrepol742/devpulse) 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.

## Contribution Guidelines

Contributions to devpulse are welcome! Please follow these guidelines:

1. Before modifying any existing design or logic that is already working or in use, **contact us first** to avoid conflicts.
2. You are welcome to contribute new features, bug fixes, or improvements.
3. Check the Issues tab (if available) before starting to avoid duplicate work.
4. Follow the existing code style and conventions.
5. Submit a pull request with a clear description of your changes and the problem it solves.

> Pull requests that modify existing working features without prior discussion may not be merged.

Help us keep the codebase ("DevPulse") clean, stable, and maintainable.

## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
44 changes: 44 additions & 0 deletions app/components/landing-page/ContributeCard.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import Link from "next/link";

export default function ContributeCard() {
return (
<section className="max-w-5xl mx-auto px-6 pb-5 relative z-10">
<div
className="glass-card border border-white/5 bg-white/[0.02] backdrop-blur-xl p-8 md:p-12 rounded-3xl"
data-aos="fade-up"
>
<h3 className="text-2xl font-semibold text-white mb-2">
Wanna contribute?
</h3>
<p className="text-gray-400 mb-4">
We welcome contributions! You can help by adding new features, fixing
bugs, or improving the project. Just make sure to follow our
guidelines to avoid conflicts.
</p>
<div className="bg-black/40 p-4 rounded-lg text-xs text-gray-300 mb-4 overflow-x-auto">
<pre>
{`## Contribution Guidelines

Contributions to devpulse are welcome! Please follow these guidelines:

1. Before modifying any existing design or logic that is already working or in use, **contact us first** to avoid conflicts.
2. You are welcome to contribute new features, bug fixes, or improvements.
3. Check the Issues tab (if available) before starting to avoid duplicate work.
4. Follow the existing code style and conventions.
5. Submit a pull request with a clear description of your changes and the problem it solves.

> ⚠️ Pull requests that modify existing working features without prior discussion may not be merged.

Help us keep the codebase ("DevPulse") clean, stable, and maintainable.`}
</pre>
</div>
<Link
href="/legal/contribution-guidelines"
className="inline-block px-4 py-2 rounded-lg bg-white text-black font-medium hover:bg-gray-200 transition"
>
View Full Contribution Guidelines
</Link>
</div>
</section>
);
}
7 changes: 5 additions & 2 deletions app/components/layout/CTA.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,11 @@ import Link from "next/link";

export default function CTA() {
return (
<section className="max-w-4xl mx-auto px-6 pb-8 text-center">
<div className="glass-card p-12" data-aos="fade-up">
<section className="max-w-5xl mx-auto px-6 pb-5 relative z-10">
<div
className="glass-card border border-white/5 bg-white/[0.02] backdrop-blur-xl p-8 md:p-12 rounded-3xl"
data-aos="fade-up"
>
<h2 className="text-3xl font-bold mb-4 gradient-text">
Ready to track your coding productivity?
</h2>
Expand Down
69 changes: 69 additions & 0 deletions app/legal/contribution-guidelines/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
import { Metadata } from "next";

export const metadata: Metadata = {
title: "Contribution Guidelines - DevPulse",
description:
"Read our Contribution Guidelines to understand how you can contribute to DevPulse.",
};

export default function ContributionGuidelines() {
return (
<div className="grid-bg p-6 max-w-3xl mx-auto text-sm leading-relaxed">
<h1 className="text-5xl md:text-6xl lg:text-7xl font-extrabold tracking-tight leading-[1.1] text-transparent bg-clip-text bg-gradient-to-br from-white to-gray-400 mb-6">
Contribution Guidelines
</h1>

<p className="text-lg md:text-xl text-gray-400 max-w-2xl mx-auto lg:mx-0 leading-relaxed mb-10">
Thank you for considering contributing to <strong>DevPulse</strong>! To
help maintain the quality, stability, and integrity of our codebase
(&quot;Hall of Codes&quot;), please read and follow these guidelines.
</p>

<h2 className="text-xl font-semibold mt-6 mb-2">
1. Before Contributing
</h2>
<p className="mb-4">
Please reach out to us before modifying any existing design or logic
that is currently working or in active use. This ensures we avoid
conflicts and preserve the stability of DevPulse.
</p>

<h2 className="text-xl font-semibold mt-6 mb-2">
2. What You Can Contribute
</h2>
<p className="mb-4">You are welcome to:</p>
<ul className="list-disc ml-6 mb-4">
<li>Propose or contribute new features</li>
<li>Fix bugs or improve documentation</li>
</ul>
<p className="mb-4">
Before submitting a pull request (PR), check the <strong>Issues</strong>{" "}
tab if it exists to avoid duplicating work or causing conflicts.
</p>

<h2 className="text-xl font-semibold mt-6 mb-2">3. PR Review Policy</h2>
<p className="mb-4">
Any PR that modifies existing, working code without prior discussion may
not be merged. We reserve the right to reject contributions that
conflict with ongoing development or compromise the stability of the
DevPulse.
</p>

<h2 className="text-xl font-semibold mt-6 mb-2">
4. Protecting the Hall of Codes
</h2>
<p className="mb-4">
Our codebase represents the core of <strong>DevPulse</strong>.
Contributors are expected to respect coding standards, write clean,
maintainable code, and document changes clearly. Unauthorized
modifications, destructive changes, or attempts to bypass review
processes are not allowed and may result in removal of the contribution.
</p>

<p className="mb-4">
By contributing, you agree to follow these guidelines to keep DevPulse
stable, reliable, and enjoyable for all users.
</p>
</div>
);
}
9 changes: 9 additions & 0 deletions app/legal/privacy/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,15 @@ export default function Privacy() {
your experience.
</p>

<h3 className="font-semibold mt-4">e. Sentry</h3>
<p className="mb-4">
We use Sentry for error monitoring. While only error-related features
are enabled, Sentry may still collect certain information, including
personally identifiable information (PII), stack traces, and request
data. This information is used solely to help diagnose errors and
improve the reliability and performance of the application.
</p>

<h2 className="text-xl font-semibold mt-6 mb-2">
2. How We Use Your Information
</h2>
Expand Down
12 changes: 9 additions & 3 deletions app/legal/terms/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ export default function Terms() {
<li>WakaTime API (coding statistics)</li>
<li>GitHub OAuth (authentication and profile data)</li>
<li>Google Search Console (analytics)</li>
<li>Sentry (error monitoring)</li>
</ul>
<p className="mb-4">
We are not responsible for the availability, accuracy, or practices of
Expand All @@ -66,6 +67,11 @@ export default function Terms() {
responsible for keeping your API key secure. We are not liable for any
misuse resulting from unauthorized access to your key.
</p>
<p className="mb-4">
When you visit us and an error occurs, we may use Sentry to capture
error details. This helps us improve the service, but we do not use this
data for any other purpose.
</p>

<h2 className="text-xl font-semibold mt-6 mb-2">5. Data and Content</h2>
<p className="mb-4">
Expand All @@ -87,9 +93,9 @@ export default function Terms() {
7. Limitation of Liability
</h2>
<p className="mb-4">
DevPulse is provided &quot;as is&quot; without warranties of any kind. We are not
liable for any damages, including loss of data, arising from your use of
the service.
DevPulse is provided &quot;as is&quot; without warranties of any kind.
We are not liable for any damages, including loss of data, arising from
your use of the service.
</p>

<h2 className="text-xl font-semibold mt-6 mb-2">8. Termination</h2>
Expand Down
2 changes: 2 additions & 0 deletions app/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import Contributors from "./components/landing-page/Contributors";
import LosserMembers from "./components/landing-page/LosserMembers";
import RecentLeaderboard from "./components/landing-page/RecentLeaderboard";
import TopLeaderboard from "./components/landing-page/TopLeaderbord";
import ContributeCard from "./components/landing-page/ContributeCard";

export default async function Home() {
const supabase = await createClient();
Expand Down Expand Up @@ -328,6 +329,7 @@ export default async function Home() {
<LosserMembers losser_members={losser_members ?? []} />
<Contributors />
<CTA />
<ContributeCard />
<Footer />
</div>
);
Expand Down
2 changes: 1 addition & 1 deletion app/sitemaps/static.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ export default function sitemap(): MetadataRoute.Sitemap {
{ url: "https://devpulse-waka.vercel.app" },
{ url: "https://devpulse-waka.vercel.app/login" },
{ url: "https://devpulse-waka.vercel.app/signup" },
{ url: "https://devpulse-waka.vercel.app/legal" },
{ url: "https://devpulse-waka.vercel.app/legal/terms" },
{ url: "https://devpulse-waka.vercel.app/legal/privacy" },
{ url: "https://devpulse-waka.vercel.app/legal/contribution-guidelines" },
];
}
Loading