@titas_mallick/wedding-site-gen 2.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +117 -69
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,98 +1,146 @@
|
|
|
1
|
-
# 💍 Wedding Website Generator v2.0
|
|
1
|
+
# 💍 Wedding Website Generator v2.0 (AI-Powered)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Transform your wedding journey with a sophisticated, AI-driven digital experience. This generator scaffolds a production-ready Next.js application featuring an AI concierge, digital guestbook, real-time song requests, and automated guest reminders.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
## 🚀 The A-B-C
|
|
7
|
+
## 🚀 Phase 1: Generation (The A-B-C Guide)
|
|
8
8
|
|
|
9
|
-
### Step A:
|
|
10
|
-
|
|
9
|
+
### Step A: Initialize Your Project
|
|
10
|
+
Run the following command in your terminal to start the interactive setup:
|
|
11
11
|
```bash
|
|
12
12
|
npx @titas_mallick/wedding-site-gen
|
|
13
13
|
```
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
14
|
+
|
|
15
|
+
### Step B: CLI Prompt Reference
|
|
16
|
+
The generator will ask you several questions. Here is how to answer them:
|
|
17
|
+
|
|
18
|
+
| Prompt | Example Input | Purpose |
|
|
19
|
+
| :--- | :--- | :--- |
|
|
20
|
+
| **Groom's First Name** | `Titas` | Used for URLs and short mentions. |
|
|
21
|
+
| **Groom's Full Name** | `Titas Mallick` | Used in official bio and certificate pages. |
|
|
22
|
+
| **Bride's First Name** | `Sukanya` | Used for URLs and short mentions. |
|
|
23
|
+
| **Bride's Full Name** | `Sukanya Saha` | Used in official bio and certificate pages. |
|
|
24
|
+
| **Wedding Date** | `January 23, 2026` | Displayed text on the countdown and hero. |
|
|
25
|
+
| **Wedding Date ISO** | `2026-01-23` | Powers the technical countdown logic. |
|
|
26
|
+
| **Admin Email** | `admin@wedding.com` | **CRITICAL**: Log in with this email to manage content. |
|
|
27
|
+
| **UPI ID** | `wedding@okaxis` | Used for the "Sagun" (Gift) QR code generator. |
|
|
28
|
+
| **Website URL** | `https://our-wedding.com` | Used for email links and SEO. |
|
|
29
|
+
| **Wedding Hashtag** | `#TitasWedsSukanya` | Displayed across the site. |
|
|
30
|
+
| **Visual Theme** | `1` (Pink & Gold) | Sets the primary color palette (Pink, Blue, Green, or Red). |
|
|
31
|
+
| **Target Directory** | `my-wedding` | The name of the folder where code will be saved. |
|
|
32
32
|
|
|
33
33
|
---
|
|
34
34
|
|
|
35
|
-
##
|
|
35
|
+
## 🛠️ Phase 2: Infrastructure Setup
|
|
36
|
+
|
|
37
|
+
### 1. Firebase (Database & Auth)
|
|
38
|
+
1. Go to the [Firebase Console](https://console.firebase.google.com/).
|
|
39
|
+
2. **Create a Project**: Give it a name (e.g., `wedding-project`).
|
|
40
|
+
3. **Authentication**: Enable "Email/Password" provider in the Auth tab.
|
|
41
|
+
4. **Firestore**: Create a Database in "Production Mode".
|
|
42
|
+
5. **Project Settings**:
|
|
43
|
+
- Click the **Web Icon (</>)** to register a web app. Copy the `firebaseConfig` keys for your `.env.local`.
|
|
44
|
+
- Go to **Service Accounts** > **Generate New Private Key**. This downloads a JSON file. Use these values for the `FIREBASE_ADMIN` variables.
|
|
45
|
+
|
|
46
|
+
### 2. Firestore Security Rules
|
|
47
|
+
Copy the following into the **Rules** tab of your Firestore console to allow guests to post wishes/songs while keeping admin functions secure:
|
|
48
|
+
|
|
49
|
+
```javascript
|
|
50
|
+
rules_version = '2';
|
|
51
|
+
service cloud.firestore {
|
|
52
|
+
match /databases/{database}/documents {
|
|
53
|
+
match /wishes/{wishId} { allow read, write: if true; }
|
|
54
|
+
match /song_requests/{requestId} { allow read, write: if true; }
|
|
55
|
+
match /guestbook/{entryId} { allow read, write: if true; }
|
|
56
|
+
match /rsvps/{rsvpId} { allow read, write: if true; }
|
|
57
|
+
match /email-reminders/{reminderId} {
|
|
58
|
+
allow read: if true;
|
|
59
|
+
allow write: if request.auth != null;
|
|
60
|
+
}
|
|
61
|
+
match /{document=**} {
|
|
62
|
+
allow read: if true;
|
|
63
|
+
allow write: if request.auth != null;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
```
|
|
36
68
|
|
|
37
|
-
|
|
69
|
+
### 3. Cloudinary (Guestbook Uploads)
|
|
70
|
+
1. Sign up at [Cloudinary](https://cloudinary.com/).
|
|
71
|
+
2. In the **Dashboard**, copy your `Cloud Name`.
|
|
72
|
+
3. Go to **Settings** > **Upload** > **Upload Presets** and create a new preset named `wedding` with "Unsigned" signing mode.
|
|
38
73
|
|
|
39
|
-
###
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
| `bride.jpg` | Main profile photo of the Bride. | 3:4 (Portrait) |
|
|
43
|
-
| `groom.jpg` | Main profile photo of the Groom. | 3:4 (Portrait) |
|
|
44
|
-
| `love-birds.png` | Avatar for the AI Chatbot. | 1:1 (Square) |
|
|
45
|
-
| `qr.png` | UPI Payment QR code for gifts. | 1:1 (Square) |
|
|
46
|
-
|
|
47
|
-
### 🗓️ Milestone Timeline (`/public/Images/`)
|
|
48
|
-
These images appear on the **"Mark the Dates"** timeline.
|
|
49
|
-
- `19.jpg`: The Proposal Milestone.
|
|
50
|
-
- `Patipatra.jpeg`: The Date-Fixing/Traditional Ceremony.
|
|
51
|
-
- `22.jpg`: The Engagement Milestone.
|
|
52
|
-
- `21.jpg`: The Wedding Day Milestone.
|
|
53
|
-
- `20.jpg`: The Reception Milestone.
|
|
54
|
-
|
|
55
|
-
### 🏔️ Pre-Wedding & Memories Gallery
|
|
56
|
-
The **"Memories"** page is designed to showcase your journey.
|
|
57
|
-
- **Bulk Uploads**: Place all your pre-wedding shoot photos in `/public/Images/`.
|
|
58
|
-
- **Naming**: Use descriptive names or simply number them. The gallery will automatically generate a beautiful masonry layout for all images found in this directory.
|
|
74
|
+
### 4. Resend (Email Automation)
|
|
75
|
+
1. Sign up at [Resend.com](https://resend.com/).
|
|
76
|
+
2. Generate an **API Key** and add it to `.env.local`.
|
|
59
77
|
|
|
60
78
|
---
|
|
61
79
|
|
|
62
|
-
##
|
|
80
|
+
## 🔐 Phase 3: Environment Configuration
|
|
63
81
|
|
|
64
|
-
|
|
65
|
-
Guests can chat with an AI assistant trained on your wedding data.
|
|
66
|
-
- **Setup**: Provide your `NEXT_PUBLIC_GEMINI_API_KEY` in `.env.local`.
|
|
67
|
-
- **Knowledge**: The bot automatically knows your venues, dates, and story based on the info you provided during Step A.
|
|
82
|
+
Create a `.env.local` file in your generated project root and populate it:
|
|
68
83
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
-
|
|
73
|
-
-
|
|
84
|
+
```bash
|
|
85
|
+
# --- Firebase Client ---
|
|
86
|
+
NEXT_PUBLIC_APIKEY=AIza...
|
|
87
|
+
NEXT_PUBLIC_AUTHDOMAIN=your-project.firebaseapp.com
|
|
88
|
+
NEXT_PUBLIC_PROJECTID=your-project
|
|
89
|
+
NEXT_PUBLIC_STORAGEBUCKET=your-project.firebasestorage.app
|
|
90
|
+
NEXT_PUBLIC_SENDERID=...
|
|
91
|
+
NEXT_PUBLIC_APPID=...
|
|
92
|
+
NEXT_PUBLIC_RECAPTCHA_SITE_KEY=...
|
|
93
|
+
|
|
94
|
+
# --- Firebase Admin (Secrets) ---
|
|
95
|
+
FIREBASE_ADMIN_PROJECT_ID=your-project
|
|
96
|
+
FIREBASE_ADMIN_PRIVATE_KEY_ID=...
|
|
97
|
+
FIREBASE_ADMIN_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n"
|
|
98
|
+
FIREBASE_ADMIN_CLIENT_EMAIL=firebase-adminsdk-...
|
|
99
|
+
FIREBASE_ADMIN_CLIENT_ID=...
|
|
100
|
+
|
|
101
|
+
# --- AI & Content ---
|
|
102
|
+
NEXT_PUBLIC_GEMINI_API_KEY=AIza... # Get from Google AI Studio
|
|
103
|
+
NEXT_PUBLIC_ADMIN_EMAIL=your-email@gmail.com # Must match login for admin powers
|
|
104
|
+
|
|
105
|
+
# --- Media & Email ---
|
|
106
|
+
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME=...
|
|
107
|
+
NEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET=wedding
|
|
108
|
+
RESEND_API_KEY=re_...
|
|
109
|
+
CRON_SECRET=a-secure-random-string
|
|
110
|
+
```
|
|
74
111
|
|
|
75
112
|
---
|
|
76
113
|
|
|
77
|
-
##
|
|
114
|
+
## 🎨 Phase 4: Asset Personalization
|
|
115
|
+
|
|
116
|
+
Replace the files in `/public/` keeping the exact filenames:
|
|
78
117
|
|
|
79
|
-
|
|
|
80
|
-
| :--- | :--- |
|
|
81
|
-
| `
|
|
82
|
-
| `
|
|
83
|
-
| `
|
|
84
|
-
| `
|
|
118
|
+
| Location | Filename | Purpose |
|
|
119
|
+
| :--- | :--- | :--- |
|
|
120
|
+
| `/public/` | `bride.jpg` | Main portrait of the Bride (3:4 ratio). |
|
|
121
|
+
| `/public/` | `groom.jpg` | Main portrait of the Groom (3:4 ratio). |
|
|
122
|
+
| `/public/` | `qr.png` | Your UPI QR code for the Sagun page. |
|
|
123
|
+
| `/public/Images/` | `19.jpg` - `22.jpg` | Milestone images for the "Mark the Dates" timeline. |
|
|
124
|
+
| `/public/Images/` | `Patipatra.jpeg` | Image for the traditional date-fixing milestone. |
|
|
125
|
+
| `/public/Images/` | `* (any name)` | All other images in this folder automatically populate the **Memories** gallery. |
|
|
85
126
|
|
|
86
127
|
---
|
|
87
128
|
|
|
88
|
-
##
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
129
|
+
## 🚀 Phase 5: Deployment & Automation
|
|
130
|
+
|
|
131
|
+
### Vercel Deployment
|
|
132
|
+
1. Push your code to **GitHub**.
|
|
133
|
+
2. Connect your repository to [Vercel](https://vercel.com/).
|
|
134
|
+
3. **Important**: Add all your `.env.local` variables into the Vercel **Environment Variables** settings.
|
|
135
|
+
|
|
136
|
+
### Automated Reminders (Cron Job)
|
|
137
|
+
To send daily reminders to guests (e.g., from Jan 10th to Jan 26th):
|
|
138
|
+
1. In Vercel, go to the **Cron** tab (or use GitHub Actions).
|
|
139
|
+
2. Set up a job to call: `GET /api/email-reminders`
|
|
140
|
+
3. Header: `Authorization: Bearer YOUR_CRON_SECRET`
|
|
141
|
+
4. Schedule: `0 10 10-26 1 *` (10 AM daily).
|
|
94
142
|
|
|
95
143
|
---
|
|
96
144
|
|
|
97
145
|
## 📜 License
|
|
98
|
-
MIT License.
|
|
146
|
+
MIT License. Created with ❤️ for your special day.
|