mirror of
https://github.com/hex248/ob248.com.git
synced 2026-02-07 18:23:04 +00:00
replaced good-morning-icon
This commit is contained in:
BIN
public/good-morning-icon.png
Normal file
BIN
public/good-morning-icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 9.9 KiB |
@@ -100,7 +100,6 @@ Object.values(
|
|||||||
options[i].classList.remove("text-ayu-accent", "font-bold");
|
options[i].classList.remove("text-ayu-accent", "font-bold");
|
||||||
}
|
}
|
||||||
if (options.length > 0) {
|
if (options.length > 0) {
|
||||||
// options[selectedOptionIndex].classList.add("border-ayu-gutter");
|
|
||||||
options[selectedOptionIndex].classList.add(
|
options[selectedOptionIndex].classList.add(
|
||||||
"text-ayu-accent",
|
"text-ayu-accent",
|
||||||
"font-bold"
|
"font-bold"
|
||||||
|
|||||||
@@ -3,99 +3,99 @@ import ProjectPage from "../../components/ProjectPage.astro";
|
|||||||
import Demo from "../../components/Demo.astro";
|
import Demo from "../../components/Demo.astro";
|
||||||
|
|
||||||
export const metadata = {
|
export const metadata = {
|
||||||
title: "good morning!",
|
title: "good morning!",
|
||||||
description:
|
description:
|
||||||
"An app for couples or friends to share daily notices with songs and photos",
|
"An app for couples or friends to share daily notices with songs and photos",
|
||||||
date: "October 2025",
|
date: "October 2025",
|
||||||
slug: "good-morning",
|
slug: "good-morning",
|
||||||
image: "/good-morning-icon.svg",
|
image: "/good-morning-icon.png",
|
||||||
url: "https://gm.ob248.com",
|
url: "https://gm.ob248.com",
|
||||||
github: "https://github.com/hex248/good-morning",
|
github: "https://github.com/hex248/good-morning",
|
||||||
hidden: false,
|
hidden: false,
|
||||||
tags: [
|
tags: [
|
||||||
"Web",
|
"Web",
|
||||||
"React",
|
"React",
|
||||||
"TypeScript",
|
"TypeScript",
|
||||||
"Go",
|
"Go",
|
||||||
"PostgreSQL",
|
"PostgreSQL",
|
||||||
"AWS S3",
|
"AWS S3",
|
||||||
"Databases",
|
"Databases",
|
||||||
"OAuth2",
|
"OAuth2",
|
||||||
"Spotify API",
|
"Spotify API",
|
||||||
"Web",
|
"Web",
|
||||||
],
|
],
|
||||||
type: "personal",
|
type: "personal",
|
||||||
};
|
};
|
||||||
---
|
---
|
||||||
|
|
||||||
<ProjectPage metadata={metadata}>
|
<ProjectPage metadata={metadata}>
|
||||||
<p>
|
<p>
|
||||||
"good morning!" is a web app I built to help couples or friends share
|
"good morning!" is a web app I built to help couples or friends share daily
|
||||||
daily notices, songs, and photos with each other. It features a simple
|
notices, songs, and photos with each other. It features a simple and
|
||||||
and intuitive interface for sending and receiving messages, along with
|
intuitive interface for sending and receiving messages, along with support
|
||||||
support for photo attachments. The app is built with React and
|
for photo attachments. The app is built with React and TypeScript on the
|
||||||
TypeScript on the frontend, and Go with PostgreSQL on the backend. Media
|
frontend, and Go with PostgreSQL on the backend. Media files are stored
|
||||||
files are stored securely using Cloudflare R2 (AWS S3).
|
securely using Cloudflare R2 (AWS S3).
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
|
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
|
||||||
<div class="bg-ayu-highlight p-4 rounded mt-4">
|
<div class="bg-ayu-highlight p-4 rounded mt-4">
|
||||||
<h2 class="text-lg text-ayu-green-500 mb-2">Key features</h2>
|
<h2 class="text-lg text-ayu-green-500 mb-2">Key features</h2>
|
||||||
<ul class="list-disc list-inside space-y-1">
|
<ul class="list-disc list-inside space-y-1">
|
||||||
<li>Create daily notices with photos and Spotify songs</li>
|
<li>Create daily notices with photos and Spotify songs</li>
|
||||||
<li>Simple user interface</li>
|
<li>Simple user interface</li>
|
||||||
<li>Google OAuth2 authentication for user accounts</li>
|
<li>Google OAuth2 authentication for user accounts</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="bg-ayu-highlight p-4 rounded mt-4">
|
|
||||||
<h2 class="text-lg text-ayu-green-500 mb-2">Technologies</h2>
|
|
||||||
<ul class="list-disc list-inside space-y-1">
|
|
||||||
<li>React</li>
|
|
||||||
<li>TypeScript</li>
|
|
||||||
<li>Go</li>
|
|
||||||
<li>PostgreSQL</li>
|
|
||||||
<li>Cloudflare R2 (AWS S3)</li>
|
|
||||||
<li>Spotify API</li>
|
|
||||||
<li>OAuth2 Authentication</li>
|
|
||||||
<li>Progressive Web App (PWA)</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mt-4">
|
<div class="bg-ayu-highlight p-4 rounded mt-4">
|
||||||
<h2 class="text-2xl text-ayu-accent mb-3">Demo</h2>
|
<h2 class="text-lg text-ayu-green-500 mb-2">Technologies</h2>
|
||||||
<div class="grid grid-cols-1 md:grid-cols-3 gap-4">
|
<ul class="list-disc list-inside space-y-1">
|
||||||
<Demo
|
<li>React</li>
|
||||||
image="/images/good-morning/notice.png"
|
<li>TypeScript</li>
|
||||||
title="Notice from partner"
|
<li>Go</li>
|
||||||
type="boxed"
|
<li>PostgreSQL</li>
|
||||||
/>
|
<li>Cloudflare R2 (AWS S3)</li>
|
||||||
<Demo
|
<li>Spotify API</li>
|
||||||
image="/images/good-morning/no-notice.png"
|
<li>OAuth2 Authentication</li>
|
||||||
title="No notice from partner"
|
<li>Progressive Web App (PWA)</li>
|
||||||
type="boxed"
|
</ul>
|
||||||
/>
|
|
||||||
<Demo
|
|
||||||
image="/images/good-morning/create-notice.png"
|
|
||||||
title="Create notice"
|
|
||||||
type="boxed"
|
|
||||||
/>
|
|
||||||
<Demo
|
|
||||||
image="/images/good-morning/login-with-google.png"
|
|
||||||
title="Login with Google"
|
|
||||||
type="boxed"
|
|
||||||
/>
|
|
||||||
<Demo
|
|
||||||
image="/images/good-morning/partner-pairing.png"
|
|
||||||
title="Partner pairing"
|
|
||||||
type="boxed"
|
|
||||||
/>
|
|
||||||
<Demo
|
|
||||||
image="/images/good-morning/me.png"
|
|
||||||
title="'Me' page"
|
|
||||||
type="boxed"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mt-4">
|
||||||
|
<h2 class="text-2xl text-ayu-accent mb-3">Demo</h2>
|
||||||
|
<div class="grid grid-cols-1 md:grid-cols-3 gap-4">
|
||||||
|
<Demo
|
||||||
|
image="/images/good-morning/notice.png"
|
||||||
|
title="Notice from partner"
|
||||||
|
type="boxed"
|
||||||
|
/>
|
||||||
|
<Demo
|
||||||
|
image="/images/good-morning/no-notice.png"
|
||||||
|
title="No notice from partner"
|
||||||
|
type="boxed"
|
||||||
|
/>
|
||||||
|
<Demo
|
||||||
|
image="/images/good-morning/create-notice.png"
|
||||||
|
title="Create notice"
|
||||||
|
type="boxed"
|
||||||
|
/>
|
||||||
|
<Demo
|
||||||
|
image="/images/good-morning/login-with-google.png"
|
||||||
|
title="Login with Google"
|
||||||
|
type="boxed"
|
||||||
|
/>
|
||||||
|
<Demo
|
||||||
|
image="/images/good-morning/partner-pairing.png"
|
||||||
|
title="Partner pairing"
|
||||||
|
type="boxed"
|
||||||
|
/>
|
||||||
|
<Demo
|
||||||
|
image="/images/good-morning/me.png"
|
||||||
|
title="'Me' page"
|
||||||
|
type="boxed"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</ProjectPage>
|
</ProjectPage>
|
||||||
|
|||||||
Reference in New Issue
Block a user