From c6e948f5aacf7fda41a082a0db7369f1a4418a2b Mon Sep 17 00:00:00 2001 From: Korbs Date: Tue, 16 Jul 2024 23:39:34 -0400 Subject: [PATCH] update --- .gitignore | 2 + README.md | 63 +++++++++++++++++ astro.config.mjs | 13 ++-- bun.lockb | Bin 195540 -> 197784 bytes channels_rows.csv | 4 ++ package.json | 21 ++---- src/env.d.ts | 19 ++--- src/styles/root.scss | 164 +++++++++++++++++++++++++++++++++++++++++++ tsconfig.json | 13 +++- 9 files changed, 258 insertions(+), 41 deletions(-) create mode 100644 README.md create mode 100644 channels_rows.csv create mode 100644 src/styles/root.scss diff --git a/.gitignore b/.gitignore index ffe304a..181d57c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ # build output dist/ +.vercel/ # generated types .astro/ @@ -15,6 +16,7 @@ pnpm-debug.log* # environment variables .env +.env.production # macOS-specific files .DS_Store diff --git a/README.md b/README.md new file mode 100644 index 0000000..5c31501 --- /dev/null +++ b/README.md @@ -0,0 +1,63 @@ +## Setting Up Supabase +### Selfhosting +This section is optional on wheather or not you want to either use Supabase Cloud or selfhost. + +Run: +```bash +# Get the code using git sparse checkout +git clone --filter=blob:none --no-checkout https://github.com/supabase/supabase +cd supabase +git sparse-checkout set --cone docker && git checkout master + +# Go to the docker folder +cd docker + +# Copy the fake env vars +cp .env.example .env + +# Pull the latest images +docker compose pull + +# Start the services (in detached mode) +docker compose up -d +``` +> Source: https://supabase.com/docs/guides/self-hosting/docker + +In the `.env` file that've you copied from `.env.example, you'll need to change some things to adapt it to this project. + + - Change `SITE_URL` to `http://localhost:4321` + - Setup SMTP (Project was tested with [Resend](https://resend.com)) + +For production use, make sure to follow all instructions needed from https://supabase.com/docs/guides/self-hosting/docker. + +### Allowing Account Deletion +When an end-user wants to delete their account, they'll be directed to `/api/account/delete`. This API requires that a function already exist in your Supabase project called `delete_user()`. + +In the SQL Editor, enter the following and click Run: +```sql +CREATE or replace function delete_user() + returns void +LANGUAGE SQL SECURITY DEFINER +AS $$ + delete from auth.users where id = auth.uid(); +$$; +``` +> Source: https://github.com/orgs/supabase/discussions/250#discussioncomment-5361165 + +### Table Creation +For this project, two tables need to exist and that is both `channels` and `subs`. + +For the `channels` portion, you can import the premade CSV file made for this project. + +For the `subs` portion, enter the following in the SQL Editor and click Run: +```sql +create table + public.usersubslist ( + "Id" text not null, + "UserSubscribed" text null, + "Platform" text null, + "Subscribed" boolean not null default false + ) tablespace pg_default; +``` + +> Project was tested with RLS disabled on all tables \ No newline at end of file diff --git a/astro.config.mjs b/astro.config.mjs index fe6b0d1..5c0cbbc 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -1,12 +1,9 @@ -import { defineConfig } from "astro/config"; -import node from "@astrojs/node"; +import { defineConfig } from "astro/config" +import node from "@astrojs/node" export default defineConfig({ output: "server", adapter: node({ - mode: "standalone", - }), - security: { - checkOrigin: true - } -}); + mode: "standalone" + }) +}) \ No newline at end of file diff --git a/bun.lockb b/bun.lockb index bdb88dd677ae2c1f709dfb3831a9d86599523d66..5a58a7b8d13898effbeb5f77afd699b13e6af26a 100755 GIT binary patch delta 51301 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 delta 52274 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 diff --git a/channels_rows.csv b/channels_rows.csv new file mode 100644 index 0000000..29727ff --- /dev/null +++ b/channels_rows.csv @@ -0,0 +1,4 @@ +creator,followers,id +" ColdFusion",4850000,UC4QZ_LsYcvcq7qOsOhpAX4A +" Veritasium",15000000,UCHnyfMqiRRG1u-2MsSQLbXA +Vsause,22000000,C6nSFpj9HTCZ5t-N3Rm3-HA \ No newline at end of file diff --git a/package.json b/package.json index 83f5b93..04116f8 100644 --- a/package.json +++ b/package.json @@ -1,25 +1,14 @@ { - "name": "server-side-rendering", + "name": "astro-supabase", "type": "module", "version": "0.0.1", "scripts": { - "dev": "astro dev", - "start": "astro dev", - "build": "astro check && astro build", - "preview": "astro preview", - "astro": "astro" + "start": "astro dev" }, "dependencies": { - "@appwrite.io/pink": "^0.3.0", - "@appwrite.io/pink-icons": "^0.3.0", - "@astrojs/check": "^0.4.1", - "@astrojs/node": "^8.1.0", - "appwrite": "15.0.0", + "@astrojs/node": "^8.3.2", + "@supabase/supabase-js": "^2.44.4", "astro": "^4.11.5", - "node-appwrite": "^12.0.0", - "typescript": "^5.3.3" - }, - "devDependencies": { "sass": "^1.77.8" } -} +} \ No newline at end of file diff --git a/src/env.d.ts b/src/env.d.ts index f52e718..ff215dd 100644 --- a/src/env.d.ts +++ b/src/env.d.ts @@ -1,18 +1,7 @@ /// - declare namespace App { - interface Locals { - user?: import("node-appwrite").Models.User >; - users?: import("node-appwrite").Service.UserList >; + interface Locals { + email: string; + } } -} - -interface ImportMetaEnv { - readonly PUBLIC_APPWRITE_ENDPOINT: string; - readonly PUBLIC_APPWRITE_PROJECT_ID: string; - readonly APPWRITE_KEY: string; -} - -interface ImportMeta { - readonly env: ImportMetaEnv; -} \ No newline at end of file + \ No newline at end of file diff --git a/src/styles/root.scss b/src/styles/root.scss new file mode 100644 index 0000000..4293026 --- /dev/null +++ b/src/styles/root.scss @@ -0,0 +1,164 @@ +body { + background: #1c1c1c; + color: #fdfdfd; + max-width: 600px; + margin: auto; + padding: 0px 24px; + font-family: Arial, Helvetica, sans-serif; + ::selection { + background: #3ecf8e; + color: whitel; + } +} + +a { + color: white; +} + +button { + color: color; + color: white; + font-size: 12px; + text-decoration: none; + margin-right: 6px; + background: #cbddbe5e; + padding: 6px; + border-radius: 4px; + border: none; + cursor: pointer; + &:hover { + filter: brightness(0.8) + } +} + +header { + background: #232323; + border: 1px #2e2e2e solid; + transition: 1.3s border; + border-radius: 6px; + display: flex; + justify-content: space-between; + align-items: center; + padding: 12px; + margin-top: 24px; + &:hover { + border-color: #3ecf8e; + transition: 1.3s border; + } + h2 { + margin: 0px; + font-size: 14px; + } + .header-end { + display: flex; + align-items: center; + a { + color: color; + color: white; + font-size: 12px; + text-decoration: none; + margin-left: 6px; + background: #cbddbe5e; + padding: 6px; + border-radius: 4px; + &:hover { + filter: brightness(0.8) + } + } + img { + height: 24px; + border-radius: 6px; + border: 2px #2e2e2e solid; + } + } +} + +.landing { + text-align: center; + margin-top: 124px; + .cta a { + color: color; + color: white; + font-size: 12px; + text-decoration: none; + margin-left: 6px; + background: #cbddbe5e; + padding: 6px 12px; + border-radius: 4px; + &:hover { + filter: brightness(0.8) + } + } +} + +.content { + background: #232323; + border: 1px #2e2e2e solid; + border-radius: 6px; + padding: 12px; + margin-top: 12px; +} + +.form-field { + display: flex; + flex-direction: column; + margin: 12px 0px; + input { + background: #121212; + border: none; + border-radius: 4px; + color: white; + padding: 6px 12px; + margin-top: 6px; + &:focus { + outline: none + } + } +} + +.oauth-grid { + display: grid; + grid-auto-flow: column; + grid-gap: 6px; + button { + background: #494949; + border: none; + color: white; + padding: 6px 12px; + border-radius: 6px; + cursor: pointer; + &:hover { + filter: brightness(0.8) + } + } +} + +.dummies { + display: inline-block; + height: 28px; + position: relative; + overflow: hidden; + background-color: #2e3733; + border-radius: 6px; +} + +.message-in { + font-size: 12px; + background: #61685c; + color: white; + padding: 6px 12px; + border-radius: 2px; +} + +.welcome { + display: flex; + align-items: center; + h2 { + font-size: 16px; + } + img { + width: 64px; + border-radius: 2rem; + margin-right: 16px; + } +} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index bcbf8b5..e65fd95 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,3 +1,12 @@ { - "extends": "astro/tsconfigs/strict" -} + "extends": "astro/tsconfigs/strictest", + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@layouts/*": ["src/layouts/*"], + "@components/*": ["src/components/*"], + "@styles/*": ["src/styles/*"], + "@library/*": ["src/library/*"] + } + } +} \ No newline at end of file