Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Add Welcome Email #224

Merged
merged 24 commits into from
Jan 7, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
55a216e
feat(email): Add email packages and basic email
phoenixpereira Jan 1, 2025
3fb212d
chore: Update dependencies and add email dev script
phoenixpereira Jan 2, 2025
5c6c3c6
feat(email): Add header, body container, and footer for welcome email
phoenixpereira Jan 2, 2025
f1c6a8d
feat: Add welcome email
phoenixpereira Jan 3, 2025
ce3885f
feat: Add first name prop and fix alignment and borders
phoenixpereira Jan 3, 2025
5958cce
chore: Make social icons one row on desktop
phoenixpereira Jan 3, 2025
ff24caf
feat: Get email sending api working with name
phoenixpereira Jan 3, 2025
78e8947
feat(api): Ensure user authentication for welcome email api
phoenixpereira Jan 3, 2025
18b82a8
chore(email): Increase newsletter send email button size
phoenixpereira Jan 3, 2025
ccb08cf
style(emails): Adjust purple rectangle sizing
phoenixpereira Jan 3, 2025
14b60c6
chore(join): Use correct env var for sign up button
phoenixpereira Jan 4, 2025
6f789df
feat(email): Send welcome email when person pays
phoenixpereira Jan 4, 2025
a3d6ba1
chore(package): Downgrade eslint to version 8
phoenixpereira Jan 4, 2025
bcf78bd
fix(email): Update drive link to use env var
phoenixpereira Jan 4, 2025
bc3ce9a
chore(email): Use env var for sender email address
phoenixpereira Jan 4, 2025
4f3d8d3
chore(workflow): Add SMTP env vars to production workflow
phoenixpereira Jan 4, 2025
638ddbe
fix(email): Use &pos instead of apostrophe
phoenixpereira Jan 4, 2025
37e8b38
fix(db): Change welcomeEmailSent type to integer and use correct memb…
phoenixpereira Jan 4, 2025
a880f1c
chore(email): Improve wording
phoenixpereira Jan 6, 2025
c3ee4ef
chore(db): Reset welcomeEmailSent when renewing membership
phoenixpereira Jan 6, 2025
6b166cb
chore(expiry): Update member expiry to 1st of Jan in the following year
phoenixpereira Jan 6, 2025
6f2b08f
chore(db): Change welcomeEmailSent to boolean type and update related…
phoenixpereira Jan 6, 2025
b98c3f1
refactor(email): Use existing links file and dynamic icon sources
phoenixpereira Jan 6, 2025
5dbbfee
chore(membership): Update membership expiry date automatically
phoenixpereira Jan 7, 2025
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
8 changes: 8 additions & 0 deletions .github/workflows/production.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@ jobs:
AUTH_KEYCLOAK_ID: ${{ secrets.AUTH_KEYCLOAK_ID }}
AUTH_KEYCLOAK_SECRET: ${{ secrets.AUTH_KEYCLOAK_SECRET }}
AUTH_KEYCLOAK_ISSUER: ${{ secrets.AUTH_KEYCLOAK_ISSUER }}
SMTP_HOST: ${{ secrets.SMTP_HOST }}
SMTP_USER: ${{ secrets.SMTP_USER }}
SMTP_PASS: ${{ secrets.SMTP_PASS }}
SMTP_EMAIL_ADDRESS: ${{ secrets.SMTP_EMAIL_ADDRESS }}
NEXT_PUBLIC_KEYCLOAK_REDIRECT_URI: ${{ secrets.NEXT_PUBLIC_KEYCLOAK_REDIRECT_URI }}
NEXT_PUBLIC_AUTH_KEYCLOAK_ISSUER: ${{ secrets.NEXT_PUBLIC_AUTH_KEYCLOAK_ISSUER }}
DATABASE_URL: ${{ secrets.DATABASE_URL }}
Expand All @@ -66,6 +70,10 @@ jobs:
--secret id=AUTH_KEYCLOAK_ID \
--secret id=AUTH_KEYCLOAK_SECRET \
--secret id=AUTH_KEYCLOAK_ISSUER \
--secret id=SMTP_HOST \
--secret id=SMTP_USER \
--secret id=SMTP_PASS \
--secret id=SMTP_EMAIL_ADDRESS \
--secret id=NEXT_PUBLIC_KEYCLOAK_REDIRECT_URI \
--secret id=NEXT_PUBLIC_AUTH_KEYCLOAK_ISSUER \
--secret id=DATABASE_URL \
Expand Down
1 change: 0 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ RUN npm install -g pnpm \

COPY . .

# Needed for build
RUN pnpm run build

# Final deployment image
Expand Down
49 changes: 27 additions & 22 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,57 +12,62 @@
"format:check": "prettier --check \"**/*.{js,jsx,ts,tsx,css,json,mjs,cjs,yml,yaml}\"",
"db:generate": "drizzle-kit generate",
"db:push": "drizzle-kit push",
"db:studio": "drizzle-kit studio"
"db:studio": "drizzle-kit studio",
"email:dev": "email dev --dir=src/emails"
},
"dependencies": {
"@headlessui/react": "^2.2.0",
"@hookform/resolvers": "^3.9.1",
"@libsql/client": "0.14.0",
"@react-email/components": "^0.0.31",
"@t3-oss/env-nextjs": "^0.11.1",
"drizzle-orm": "^0.36.4",
"drizzle-zod": "^0.5.1",
"drizzle-orm": "^0.38.3",
"drizzle-zod": "^0.6.1",
"just-submit": "^0.0.8",
"ky": "^1.7.2",
"ky": "^1.7.4",
"luxon": "^3.5.0",
"md5": "^2.3.0",
"nanoid": "^5.0.9",
"next": "14.2.18",
"next": "14.2.22",
"next-auth": "5.0.0-beta.25",
"nodemailer": "^6.9.16",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-hook-form": "^7.53.2",
"react-icons": "^5.3.0",
"react-email": "^3.0.4",
"react-hook-form": "^7.54.2",
"react-icons": "^5.4.0",
"redis": "^4.7.0",
"sharp": "^0.33.5",
"square": "^39.0.0",
"swr": "^2.2.5",
"square": "^39.1.1",
"swr": "^2.3.0",
"usehooks-ts": "^3.1.0",
"zod": "^3.23.8",
"zustand": "^5.0.1"
"zod": "^3.24.1",
"zustand": "^5.0.2"
},
"devDependencies": {
"@next/env": "^15.0.3",
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
"@next/env": "^15.1.3",
"@trivago/prettier-plugin-sort-imports": "^5.2.0",
"@types/luxon": "^3.4.2",
"@types/md5": "^2.3.5",
"@types/node": "^22.10.1",
"@types/react": "^18.3.12",
"@types/react-dom": "^18.3.1",
"@typescript-eslint/eslint-plugin": "^8.16.0",
"@typescript-eslint/parser": "^8.16.0",
"@types/node": "^22.10.3",
"@types/nodemailer": "^6.4.17",
"@types/react": "^18.3.18",
"@types/react-dom": "^18.3.5",
"@typescript-eslint/eslint-plugin": "^8.19.0",
"@typescript-eslint/parser": "^8.19.0",
"autoprefixer": "^10.4.20",
"cross-env": "^7.0.3",
"drizzle-kit": "^0.28.1",
"drizzle-kit": "^0.30.1",
"eslint": "^8.57.1",
"eslint-config-next": "15.0.3",
"eslint-config-next": "15.1.3",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-prettier": "^5.2.1",
"lint-staged": "^15.2.10",
"lint-staged": "^15.3.0",
"postcss": "^8.4.49",
"prettier-plugin-jsdoc": "^1.3.0",
"prettier-plugin-tailwindcss": "^0.6.9",
"simple-git-hooks": "^2.11.1",
"tailwindcss": "^3.4.15",
"tailwindcss": "^3.4.17",
"tsec": "^0.2.8",
"typescript": "^5.7.2"
},
Expand Down
Loading
Loading