@titas_mallick/wedding-site-gen 2.0.2 → 2.0.3
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 +82 -132
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,51 +1,43 @@
|
|
|
1
1
|
# 💍 Wedding Website Generator v2.0 (AI-Powered)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> **The ultimate digital companion for your special day.** Scaffold, personalize, and deploy a feature-rich wedding application in minutes.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
## 🚀 Phase 1: Generation
|
|
7
|
+
## 🚀 Phase 1: Rapid Generation
|
|
8
8
|
|
|
9
|
-
###
|
|
10
|
-
Run the
|
|
9
|
+
### Initialize Your Project
|
|
10
|
+
Run the command below to start the interactive CLI:
|
|
11
11
|
```bash
|
|
12
12
|
npx @titas_mallick/wedding-site-gen
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
###
|
|
16
|
-
|
|
15
|
+
### CLI Prompt Reference
|
|
16
|
+
Answer the prompts to pre-configure your site's identity:
|
|
17
17
|
|
|
18
18
|
| Prompt | Example Input | Purpose |
|
|
19
19
|
| :--- | :--- | :--- |
|
|
20
|
-
| **Groom's
|
|
21
|
-
| **
|
|
22
|
-
| **
|
|
23
|
-
| **
|
|
24
|
-
| **
|
|
25
|
-
| **
|
|
26
|
-
| **
|
|
27
|
-
| **
|
|
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. |
|
|
20
|
+
| **Groom's Names** | `Titas`, `Titas Mallick` | Sets URLs and bios. |
|
|
21
|
+
| **Bride's Names** | `Sukanya`, `Sukanya Saha` | Sets URLs and bios. |
|
|
22
|
+
| **Wedding Dates** | `January 23, 2026`, `2026-01-23` | Powers UI text and countdown logic. |
|
|
23
|
+
| **Admin Email** | `admin@wedding.com` | **Vital**: Log in with this email for admin tools. |
|
|
24
|
+
| **UPI ID** | `wedding@okaxis` | Generates the gift QR code. |
|
|
25
|
+
| **Website URL** | `https://our-wedding.com` | Used for SEO and email links. |
|
|
26
|
+
| **Wedding Hashtag** | `#TitasWedsSukanya` | Branding across the site. |
|
|
27
|
+
| **Visual Theme** | `1` (Pink & Gold) | Sets initial primary colors. |
|
|
32
28
|
|
|
33
29
|
---
|
|
34
30
|
|
|
35
|
-
## 🛠️ Phase 2: Infrastructure
|
|
31
|
+
## 🛠️ Phase 2: System Infrastructure
|
|
36
32
|
|
|
37
33
|
### 1. Firebase (Database & Auth)
|
|
38
|
-
1.
|
|
39
|
-
2. **
|
|
40
|
-
3. **
|
|
41
|
-
4. **
|
|
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.
|
|
34
|
+
1. Create a project at [Firebase Console](https://console.firebase.google.com/).
|
|
35
|
+
2. **Authentication**: Enable "Email/Password".
|
|
36
|
+
3. **Firestore**: Create a database in "Production Mode".
|
|
37
|
+
4. **Admin SDK**: Go to **Project Settings** > **Service Accounts** > **Generate New Private Key**. Use these values for `FIREBASE_ADMIN` env vars.
|
|
45
38
|
|
|
46
39
|
### 2. Firestore Security Rules
|
|
47
|
-
|
|
48
|
-
|
|
40
|
+
Deploy these rules in the Firebase console to ensure data integrity:
|
|
49
41
|
```javascript
|
|
50
42
|
rules_version = '2';
|
|
51
43
|
service cloud.firestore {
|
|
@@ -54,137 +46,95 @@ service cloud.firestore {
|
|
|
54
46
|
match /song_requests/{requestId} { allow read, write: if true; }
|
|
55
47
|
match /guestbook/{entryId} { allow read, write: if true; }
|
|
56
48
|
match /rsvps/{rsvpId} { allow read, write: if true; }
|
|
57
|
-
match /email-reminders/{reminderId} {
|
|
58
|
-
|
|
59
|
-
allow write: if request.auth != null;
|
|
60
|
-
}
|
|
61
|
-
match /{document=**} {
|
|
62
|
-
allow read: if true;
|
|
63
|
-
allow write: if request.auth != null;
|
|
64
|
-
}
|
|
49
|
+
match /email-reminders/{reminderId} { allow read: if true; allow write: if request.auth != null; }
|
|
50
|
+
match /{document=**} { allow read: if true; allow write: if request.auth != null; }
|
|
65
51
|
}
|
|
66
52
|
}
|
|
67
53
|
```
|
|
68
54
|
|
|
69
|
-
### 3.
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
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`.
|
|
55
|
+
### 3. Media & Automation
|
|
56
|
+
- **Cloudinary**: Create an "Unsigned" upload preset named `wedding`.
|
|
57
|
+
- **Resend**: Generate an API key for automated email reminders.
|
|
58
|
+
- **Google Gemini**: Get an API key from [Google AI Studio](https://aistudio.google.com/).
|
|
77
59
|
|
|
78
60
|
---
|
|
79
61
|
|
|
80
|
-
##
|
|
81
|
-
|
|
82
|
-
Create a `.env.local` file in your generated project root and populate it:
|
|
62
|
+
## 🎨 Phase 3: Theming & Personalization
|
|
83
63
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
#
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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
|
|
64
|
+
### 1. Visual Theming (Tailwind)
|
|
65
|
+
The site's colors are centralized in `tailwind.config.js`. You can change the primary wedding palette here:
|
|
66
|
+
```javascript
|
|
67
|
+
// tailwind.config.js
|
|
68
|
+
colors: {
|
|
69
|
+
wedding: {
|
|
70
|
+
pink: {
|
|
71
|
+
500: '#ec4899', // Change this to your primary color
|
|
72
|
+
},
|
|
73
|
+
gold: {
|
|
74
|
+
400: '#d99e43', // Change this to your accent color
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
110
78
|
```
|
|
111
79
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
## 🎨 Phase 4: Asset Personalization
|
|
115
|
-
|
|
116
|
-
Replace the files in `/public/` keeping the exact filenames:
|
|
117
|
-
|
|
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. |
|
|
80
|
+
### 2. Asset Mapping (`/public/`)
|
|
81
|
+
Replace placeholders with your own media. **Maintain exact filenames.**
|
|
126
82
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
### 2. Automated Email Reminders
|
|
137
|
-
Send beautiful, automated reminders to your guest list.
|
|
138
|
-
- **Endpoint**: `YOUR_SITE_URL/api/email-reminders`
|
|
139
|
-
- **Auth**: Requires `Authorization: Bearer [YOUR_CRON_SECRET]`.
|
|
140
|
-
- **Cron Suggestion**: `0 10 10-26 1 *` (Runs daily at 10 AM during the wedding month).
|
|
83
|
+
| File | Context |
|
|
84
|
+
| :--- | :--- |
|
|
85
|
+
| `bride.jpg` | Main Bride portrait (used in /couple). |
|
|
86
|
+
| `groom.jpg` | Main Groom portrait (used in /couple). |
|
|
87
|
+
| `qr.png` | Your UPI QR code. |
|
|
88
|
+
| `/Images/19.jpg` - `22.jpg` | Specific timeline milestones. |
|
|
89
|
+
| `/Images/Patipatra.jpeg` | Date-fixing ceremony photo. |
|
|
90
|
+
| `/Images/*.jpg` | **Bulk Upload**: Any extra images here auto-populate the masonry gallery. |
|
|
141
91
|
|
|
142
92
|
---
|
|
143
93
|
|
|
144
|
-
##
|
|
94
|
+
## 💻 Phase 4: Code-Level Customization
|
|
145
95
|
|
|
146
|
-
### 1.
|
|
147
|
-
|
|
148
|
-
- **Add/Edit Guests**: Create personalized links for every family.
|
|
149
|
-
- **RSVP Tracking**: See who is attending and their food preferences in real-time.
|
|
150
|
-
- **Bulk WhatsApp**: Generate pre-filled invitation messages for easy sharing.
|
|
96
|
+
### 1. Modifying the "Our Story" Section
|
|
97
|
+
The narrative is located in `components/OurStory.tsx`. It uses standard React/Tailwind. Edit the `<p>` tags to write your own journey.
|
|
151
98
|
|
|
152
|
-
### 2.
|
|
153
|
-
|
|
154
|
-
- **Song Queue**: Mark songs as "Played" or delete them as the night progresses at `/song-requests`.
|
|
99
|
+
### 2. Adding/Removing Navigation Items
|
|
100
|
+
Update `config/site.ts` to add new routes or hide existing ones from the navbar and mobile menu.
|
|
155
101
|
|
|
156
|
-
### 3.
|
|
157
|
-
|
|
158
|
-
- **Real-time News**: Display the latest announcements scrolling at the bottom.
|
|
159
|
-
- **Live Clock**: Shows current event time.
|
|
160
|
-
- **Chroma Key**: Uses a standard green background for easy transparency in OBS.
|
|
102
|
+
### 3. Tweaking AI Bot Behavior
|
|
103
|
+
Go to `components/ConciergeBot.tsx` and find the `systemInstruction` variable. You can change the bot's "personality" or add more specific wedding facts.
|
|
161
104
|
|
|
162
105
|
---
|
|
163
106
|
|
|
164
|
-
##
|
|
107
|
+
## 🎮 Phase 5: Admin & Management
|
|
108
|
+
|
|
109
|
+
### Guest Management Dashboard (`/invitation/maker`)
|
|
110
|
+
Log in with your **Admin Email** to access:
|
|
111
|
+
- **Guest List**: Create unique invitation IDs.
|
|
112
|
+
- **Personalized Links**: Give every family a unique URL: `yoursite.com/invitation/[guest-id]`.
|
|
113
|
+
- **RSVP Tracking**: Live view of attendance and meal choices.
|
|
165
114
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
- **
|
|
169
|
-
- **
|
|
115
|
+
### OBS Live Overlay (`/updates/overlay`)
|
|
116
|
+
Use this route as a "Browser Source" in OBS for your venue screens:
|
|
117
|
+
- **Real-time News**: Scroling updates posted via `/updates/maker`.
|
|
118
|
+
- **Clock**: Synchronized event time.
|
|
119
|
+
- **Background**: Chroma-key green for transparency.
|
|
170
120
|
|
|
171
121
|
---
|
|
172
122
|
|
|
173
|
-
## 🚀 Phase
|
|
123
|
+
## 🚀 Phase 6: Deployment
|
|
174
124
|
|
|
175
|
-
### Vercel
|
|
176
|
-
1.
|
|
177
|
-
2.
|
|
178
|
-
3.
|
|
125
|
+
### Vercel (Recommended)
|
|
126
|
+
1. Push your code to GitHub.
|
|
127
|
+
2. Import project to Vercel.
|
|
128
|
+
3. Add all variables from `.env.local` to Vercel **Environment Variables**.
|
|
179
129
|
|
|
180
|
-
### Automated Reminders
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
130
|
+
### Automated Guest Reminders
|
|
131
|
+
Set up a Cron Job (Vercel or GitHub Actions) to trigger:
|
|
132
|
+
- **URL**: `YOUR_SITE/api/email-reminders`
|
|
133
|
+
- **Method**: `GET`
|
|
134
|
+
- **Header**: `Authorization: Bearer YOUR_CRON_SECRET`
|
|
135
|
+
- **Cron**: `0 10 10-26 1 *` (10 AM daily during Jan).
|
|
186
136
|
|
|
187
137
|
---
|
|
188
138
|
|
|
189
139
|
## 📜 License
|
|
190
|
-
MIT License.
|
|
140
|
+
MIT License. Built with ❤️ for the community.
|