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
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -56,3 +56,6 @@ gemini.md

# git worktrees
.worktrees/

# Local Netlify folder
.netlify
17 changes: 10 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,21 +28,24 @@ Please have the following VSCode extensions installed:

### Environment Variables

Create a `.env` file in the root directory with the following variables:
Copy `.env.example` to `.env` and fill in the values. The full set:

```text
DATABASE_URL=<ask lead for credentials>
DATABASE_URL=<ask lead for credentials — Neon pooled connection string>
NEXTAUTH_SECRET=<generate your own>
NEXTAUTH_URL=http://localhost:3000
RESEND_API_KEY=<ask lead for credentials>
RESEND_FROM_EMAIL=<ask lead for credentials>
GMAIL_USER=<ask lead for credentials — Gmail sender mailbox>
GMAIL_APP_PASSWORD=<ask lead for credentials — 16-char Gmail app password>
CRON_SECRET=<generate your own>
APP_TIMEZONE=America/Chicago # optional; defaults to America/Chicago
```

**Setup steps:**

1. Ask your team lead for `DATABASE_URL`, `RESEND_API_KEY`, and `RESEND_FROM_EMAIL`
2. Generate your own NextAuth secret: `openssl rand -base64 32`
3. Each developer must use their own unique `NEXTAUTH_SECRET`
1. Ask your team lead for `DATABASE_URL`, `GMAIL_USER`, and `GMAIL_APP_PASSWORD`.
2. Generate your own NextAuth secret: `openssl rand -base64 32`.
3. Generate your own cron secret: `openssl rand -base64 32`. This is the bearer token the Netlify scheduled functions in `netlify/functions/` use to call the `/api/cron/*` routes.
4. Each developer must use their own unique `NEXTAUTH_SECRET`.

**Note:** All developers share the same database for development, but each needs their own `NEXTAUTH_SECRET` to prevent session conflicts.

Expand Down
80 changes: 80 additions & 0 deletions deno.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions drizzle/0008_odd_network.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ALTER TABLE "volunteer_rsvps" ADD COLUMN "reminder_sent_at" timestamp;
3 changes: 3 additions & 0 deletions drizzle/0009_condemned_wendell_vaughn.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
CREATE INDEX "staff_notif_pref_idx" ON "staff" USING btree ("user_id") WHERE notification_preference != 'none';--> statement-breakpoint
CREATE INDEX "users_is_active_idx" ON "users" USING btree ("id") WHERE is_active = true;--> statement-breakpoint
CREATE INDEX "volunteers_notif_pref_idx" ON "volunteers" USING btree ("user_id") WHERE notification_preference != 'none';
Loading
Loading