Skip to content

Commit 61befb1

Browse files
authored
Merge pull request #64 from mrepol742/master
feat: refine Supabase types nullability
2 parents 0e761ff + 73a7877 commit 61befb1

36 files changed

Lines changed: 1466 additions & 1273 deletions

File tree

.github/workflows/build.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,14 @@ jobs:
3131
- name: Run lint
3232
run: npm run lint
3333

34-
- name: Generate types from remote
35-
if: ${{ env.SUPABASE_PROJECT_ID && env.SUPABASE_ACCESS_TOKEN }}
36-
env:
37-
SUPABASE_ACCESS_TOKEN: ${{ secrets.SUPABASE_ACCESS_TOKEN }}
38-
run: |
39-
npx supabase gen types typescript \
40-
--project-id ${{ secrets.SUPABASE_PROJECT_ID }} \
41-
> app/supabase-types.ts
34+
# - name: Generate types from remote
35+
# if: ${{ env.SUPABASE_PROJECT_ID && env.SUPABASE_ACCESS_TOKEN }}
36+
# env:
37+
# SUPABASE_ACCESS_TOKEN: ${{ secrets.SUPABASE_ACCESS_TOKEN }}
38+
# run: |
39+
# npx supabase gen types typescript \
40+
# --project-id ${{ secrets.SUPABASE_PROJECT_ID }} \
41+
# > app/supabase-types.ts
4242

4343
# this will be suspended for now
4444
# - name: Run migrations

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
# devpulse
44

5-
Measure and share your coding productivity with personalized leaderboards. Compare your progress with peers while keeping full control over privacy and leaderboard settings.
5+
Measure and share your coding productivity with personalized leaderboards. Compare your progress with peers while keeping full control over privacy and leaderboard settings with project management features.
66

77
## Getting Started
88
Install the dependencies:
@@ -18,7 +18,7 @@ First by creating a supabase cloud project:
1818
- click `New Project`
1919
- choose:
2020
- Organization → (create one if needed)
21-
- Project Name → e.g. devpulse-waka
21+
- Project Name → e.g. devpulse
2222
- Database Password → choose a secure one
2323
- Region → pick the nearest location
2424
- Click Create new project
@@ -132,7 +132,7 @@ Contributions to devpulse are welcome! Please follow these guidelines:
132132

133133
> Pull requests that modify existing working features without prior discussion may not be merged.
134134
135-
Help us keep the codebase ("DevPulse") clean, stable, and maintainable.
135+
Help us keep the codebase ("Devpulse") clean, stable, and maintainable.
136136

137137
## License
138138
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

app/(auth)/login/page.tsx

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
66
import { faChevronLeft } from "@fortawesome/free-solid-svg-icons";
77

88
export const metadata: Metadata = {
9-
title: "Login - DevPulse",
9+
title: "Login - Devpulse",
1010
description:
11-
"Log in to your DevPulse account to monitor your coding activity and compete on leaderboards.",
11+
"Log in to your Devpulse account to monitor your coding activity and compete on leaderboards.",
1212
keywords: [
13-
"DevPulse",
13+
"Devpulse",
1414
"login",
1515
"coding activity tracker",
1616
"developer leaderboards",
@@ -23,31 +23,31 @@ export const metadata: Metadata = {
2323
"productivity insights",
2424
],
2525
openGraph: {
26-
title: "Login - DevPulse",
26+
title: "Login - Devpulse",
2727
description:
28-
"Log in to your DevPulse account to monitor your coding activity and compete on leaderboards.",
29-
url: "https://devpulse-waka.vercel.app/login",
30-
siteName: "DevPulse",
28+
"Log in to your Devpulse account to monitor your coding activity and compete on leaderboards.",
29+
url: "https://devpulse.hallofcodes.org/login",
30+
siteName: "Devpulse",
3131
images: [
3232
{
33-
url: "https://devpulse-waka.vercel.app/images/devpulse.cover.png",
33+
url: "https://devpulse.hallofcodes.org/images/devpulse.cover.png",
3434
width: 1200,
3535
height: 630,
36-
alt: "DevPulse Cover Image",
36+
alt: "Devpulse Cover Image",
3737
},
3838
],
3939
locale: "en_US",
4040
type: "website",
4141
},
4242
twitter: {
4343
card: "summary_large_image",
44-
title: "Login - DevPulse",
44+
title: "Login - Devpulse",
4545
description:
46-
"Log in to your DevPulse account to monitor your coding activity and compete on leaderboards.",
46+
"Log in to your Devpulse account to monitor your coding activity and compete on leaderboards.",
4747
images: [
4848
{
49-
url: "https://devpulse-waka.vercel.app/images/devpulse.cover.png",
50-
alt: "DevPulse Cover Image",
49+
url: "https://devpulse.hallofcodes.org/images/devpulse.cover.png",
50+
alt: "Devpulse Cover Image",
5151
},
5252
],
5353
},
@@ -84,9 +84,9 @@ export default async function Login(props: {
8484
href="/"
8585
className="flex items-center gap-3 w-fit hover:opacity-80 transition"
8686
>
87-
<Image src="/logo.svg" alt="DevPulse Logo" width={40} height={40} />
87+
<Image src="/logo.svg" alt="Devpulse Logo" width={40} height={40} />
8888
<span className="text-2xl font-bold tracking-tight text-white">
89-
DevPulse
89+
Devpulse
9090
</span>
9191
</Link>
9292
</div>
@@ -136,7 +136,7 @@ export default async function Login(props: {
136136
</div>
137137

138138
<div className="relative z-10 text-sm text-gray-500 font-medium">
139-
&copy; {new Date().getFullYear()} DevPulse. All rights reserved.
139+
&copy; {new Date().getFullYear()} Devpulse. All rights reserved.
140140
</div>
141141
</div>
142142

@@ -146,8 +146,8 @@ export default async function Login(props: {
146146

147147
<div className="w-full max-w-sm relative z-10">
148148
<div className="lg:hidden flex items-center justify-center gap-3 mb-10">
149-
<Image src="/logo.svg" alt="DevPulse Logo" width={40} height={40} />
150-
<h2 className="text-3xl font-bold text-white">DevPulse</h2>
149+
<Image src="/logo.svg" alt="Devpulse Logo" width={40} height={40} />
150+
<h2 className="text-3xl font-bold text-white">Devpulse</h2>
151151
</div>
152152

153153
<div className="mb-8 text-left">

app/(auth)/signup/page.tsx

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,35 +6,35 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
66
import { faChevronLeft } from "@fortawesome/free-solid-svg-icons";
77

88
export const metadata: Metadata = {
9-
title: "Sign Up - DevPulse",
9+
title: "Sign Up - Devpulse",
1010
description:
11-
"Create a DevPulse account to monitor your coding activity and compete on leaderboards.",
11+
"Create a Devpulse account to monitor your coding activity and compete on leaderboards.",
1212
openGraph: {
13-
title: "Sign Up - DevPulse",
13+
title: "Sign Up - Devpulse",
1414
description:
15-
"Create a DevPulse account to monitor your coding activity and compete on leaderboards.",
16-
url: "https://devpulse-waka.vercel.app/signup",
17-
siteName: "DevPulse",
15+
"Create a Devpulse account to monitor your coding activity and compete on leaderboards.",
16+
url: "https://devpulse.hallofcodes.org/signup",
17+
siteName: "Devpulse",
1818
images: [
1919
{
20-
url: "https://devpulse-waka.vercel.app/images/devpulse.cover.png",
20+
url: "https://devpulse.hallofcodes.org/images/devpulse.cover.png",
2121
width: 1200,
2222
height: 630,
23-
alt: "DevPulse Cover Image",
23+
alt: "Devpulse Cover Image",
2424
},
2525
],
2626
locale: "en_US",
2727
type: "website",
2828
},
2929
twitter: {
3030
card: "summary_large_image",
31-
title: "Sign Up - DevPulse",
31+
title: "Sign Up - Devpulse",
3232
description:
33-
"Create a DevPulse account to monitor your coding activity and compete on leaderboards.",
33+
"Create a Devpulse account to monitor your coding activity and compete on leaderboards.",
3434
images: [
3535
{
36-
url: "https://devpulse-waka.vercel.app/images/devpulse.cover.png",
37-
alt: "DevPulse Cover Image",
36+
url: "https://devpulse.hallofcodes.org/images/devpulse.cover.png",
37+
alt: "Devpulse Cover Image",
3838
},
3939
],
4040
},
@@ -71,9 +71,9 @@ export default async function Signup(props: {
7171
href="/"
7272
className="flex items-center gap-3 w-fit hover:opacity-80 transition"
7373
>
74-
<Image src="/logo.svg" alt="DevPulse Logo" width={40} height={40} />
74+
<Image src="/logo.svg" alt="Devpulse Logo" width={40} height={40} />
7575
<span className="text-2xl font-bold tracking-tight text-white">
76-
DevPulse
76+
Devpulse
7777
</span>
7878
</Link>
7979
</div>
@@ -123,7 +123,7 @@ export default async function Signup(props: {
123123
</div>
124124

125125
<div className="relative z-10 text-sm text-gray-500 font-medium">
126-
&copy; {new Date().getFullYear()} DevPulse. All rights reserved.
126+
&copy; {new Date().getFullYear()} Devpulse. All rights reserved.
127127
</div>
128128
</div>
129129

@@ -133,8 +133,8 @@ export default async function Signup(props: {
133133

134134
<div className="w-full max-w-sm relative z-10">
135135
<div className="lg:hidden flex items-center justify-center gap-3 mb-10">
136-
<Image src="/logo.svg" alt="DevPulse Logo" width={40} height={40} />
137-
<h2 className="text-3xl font-bold text-white">DevPulse</h2>
136+
<Image src="/logo.svg" alt="Devpulse Logo" width={40} height={40} />
137+
<h2 className="text-3xl font-bold text-white">Devpulse</h2>
138138
</div>
139139

140140
<div className="mb-8 text-left">

app/(public)/flex/page.tsx

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ import { faExternalLink } from "@fortawesome/free-solid-svg-icons";
99
import { Metadata } from "next";
1010

1111
export const metadata: Metadata = {
12-
title: "Flexes - DevPulse",
12+
title: "Flexes - Devpulse",
1313
description:
14-
"Flex your coding projects and share your achievements with the DevPulse community. See what others are working on and get inspired!",
14+
"Flex your coding projects and share your achievements with the Devpulse community. See what others are working on and get inspired!",
1515
keywords: [
16-
"DevPulse",
16+
"Devpulse",
1717
"coding flexes",
1818
"developer projects",
1919
"coding achievements",
@@ -23,31 +23,31 @@ export const metadata: Metadata = {
2323
"coding inspiration",
2424
],
2525
openGraph: {
26-
title: "Flexes - DevPulse",
26+
title: "Flexes - Devpulse",
2727
description:
28-
"Flex your coding projects and share your achievements with the DevPulse community. See what others are working on and get inspired!",
29-
url: "https://devpulse-waka.vercel.app/flex",
30-
siteName: "DevPulse",
28+
"Flex your coding projects and share your achievements with the Devpulse community. See what others are working on and get inspired!",
29+
url: "https://devpulse.hallofcodes.org/flex",
30+
siteName: "Devpulse",
3131
images: [
3232
{
33-
url: "https://devpulse-waka.vercel.app/images/devpulse.cover.png",
33+
url: "https://devpulse.hallofcodes.org/images/devpulse.cover.png",
3434
width: 1200,
3535
height: 630,
36-
alt: "DevPulse Cover Image",
36+
alt: "Devpulse Cover Image",
3737
},
3838
],
3939
locale: "en_US",
4040
type: "website",
4141
},
4242
twitter: {
4343
card: "summary_large_image",
44-
title: "Flexes - DevPulse",
44+
title: "Flexes - Devpulse",
4545
description:
46-
"Flex your coding projects and share your achievements with the DevPulse community. See what others are working on and get inspired!",
46+
"Flex your coding projects and share your achievements with the Devpulse community. See what others are working on and get inspired!",
4747
images: [
4848
{
49-
url: "https://devpulse-waka.vercel.app/images/devpulse.cover.png",
50-
alt: "DevPulse Cover Image",
49+
url: "https://devpulse.hallofcodes.org/images/devpulse.cover.png",
50+
alt: "Devpulse Cover Image",
5151
},
5252
],
5353
},
@@ -73,8 +73,8 @@ export default async function Flexs() {
7373
<BackButton href="/" />
7474

7575
<div className="flex justify-center items-center gap-3 mb-8">
76-
<Image src="/logo.svg" alt="DevPulse Logo" width={36} height={36} />
77-
<h1 className="text-3xl font-bold text-white">DevPulse Flexes</h1>
76+
<Image src="/logo.svg" alt="Devpulse Logo" width={36} height={36} />
77+
<h1 className="text-3xl font-bold text-white">Devpulse Flexes</h1>
7878
</div>
7979

8080
{data?.length === 0 && (

app/(public)/join/[code]/page.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export async function generateMetadata({ params }: Props): Promise<Metadata> {
2222

2323
if (!leaderboard) {
2424
return {
25-
title: "Invite Not Found - DevPulse",
25+
title: "Invite Not Found - Devpulse",
2626
description: "This invite link is invalid or has expired.",
2727
};
2828
}
@@ -31,16 +31,16 @@ export async function generateMetadata({ params }: Props): Promise<Metadata> {
3131
const description =
3232
leaderboard?.description && leaderboard.description.length > 0
3333
? leaderboard.description
34-
: `Join the ${leaderboard.name} leaderboard on DevPulse and compete with other developers. Track your coding activity and climb the ranks!`;
34+
: `Join the ${leaderboard.name} leaderboard on Devpulse and compete with other developers. Track your coding activity and climb the ranks!`;
3535

3636
return {
37-
title: `${title} - DevPulse`,
37+
title: `${title} - Devpulse`,
3838
description,
3939
openGraph: {
4040
title,
4141
description,
4242
type: "website",
43-
siteName: "DevPulse",
43+
siteName: "Devpulse",
4444
url: `/join?id=${encodeURIComponent(code)}`,
4545
},
4646
twitter: {

app/(public)/join/page.tsx

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -43,15 +43,15 @@ export async function generateMetadata({
4343

4444
if (!code) {
4545
return {
46-
title: "Join - DevPulse",
47-
description: "Open an invite link to join a DevPulse leaderboard.",
46+
title: "Join - Devpulse",
47+
description: "Open an invite link to join a Devpulse leaderboard.",
4848
};
4949
}
5050

5151
const leaderboard = await getLeaderboard(code);
5252
if (!leaderboard) {
5353
return {
54-
title: "Invite Not Found - DevPulse",
54+
title: "Invite Not Found - Devpulse",
5555
description: "This invite link is invalid or has expired.",
5656
};
5757
}
@@ -60,17 +60,17 @@ export async function generateMetadata({
6060
const description =
6161
leaderboard.description && leaderboard.description?.length > 0
6262
? leaderboard.description
63-
: `Join the ${leaderboard.name} leaderboard on DevPulse and compete with other developers. Track your coding activity and climb the ranks!`;
63+
: `Join the ${leaderboard.name} leaderboard on Devpulse and compete with other developers. Track your coding activity and climb the ranks!`;
6464

6565
return {
66-
title: `${title} - DevPulse`,
66+
title: `${title} - Devpulse`,
6767
description,
6868
openGraph: {
6969
title,
7070
description,
7171
type: "website",
72-
siteName: "DevPulse",
73-
url: `https://devpulse-waka.vercel.app/join?id=${encodeURIComponent(code)}`,
72+
siteName: "Devpulse",
73+
url: `https://devpulse.hallofcodes.org/join?id=${encodeURIComponent(code)}`,
7474
},
7575
twitter: {
7676
card: "summary_large_image",
@@ -102,7 +102,7 @@ export default async function JoinPage({ searchParams }: Props) {
102102
<span className="font-mono">/join?id=XXXXXXXX</span>.
103103
</p>
104104
<Link href="/" className="btn-primary inline-block px-6 py-3 text-sm">
105-
Go to DevPulse
105+
Go to Devpulse
106106
</Link>
107107
</div>
108108
</div>
@@ -128,7 +128,7 @@ export default async function JoinPage({ searchParams }: Props) {
128128
This invite link is invalid or has expired.
129129
</p>
130130
<Link href="/" className="btn-primary inline-block px-6 py-3 text-sm">
131-
Go to DevPulse
131+
Go to Devpulse
132132
</Link>
133133
</div>
134134
</div>
@@ -162,7 +162,7 @@ export default async function JoinPage({ searchParams }: Props) {
162162
<div className="glass-card max-w-lg w-full p-8 md:p-10 text-center">
163163
<div className="flex justify-center mb-6">
164164
<div className="w-16 h-16 rounded-2xl bg-indigo-500/10 border border-indigo-500/20 flex items-center justify-center shadow-[0_0_30px_rgba(99,102,241,0.15)]">
165-
<Image src="/logo.svg" alt="DevPulse" width={36} height={36} />
165+
<Image src="/logo.svg" alt="Devpulse" width={36} height={36} />
166166
</div>
167167
</div>
168168

@@ -212,7 +212,7 @@ export default async function JoinPage({ searchParams }: Props) {
212212
href="/"
213213
className="text-indigo-400/70 hover:text-indigo-400 transition-colors"
214214
>
215-
DevPulse
215+
Devpulse
216216
</Link>{" "}
217217
&mdash; Track your coding activity &amp; compete
218218
</p>

0 commit comments

Comments
 (0)