@titas_mallick/wedding-site-gen 2.0.2 → 2.0.4

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.
Files changed (3) hide show
  1. package/.env.example +27 -0
  2. package/README.md +87 -133
  3. package/package.json +1 -1
package/.env.example ADDED
@@ -0,0 +1,27 @@
1
+ # --- Firebase Client ---
2
+ NEXT_PUBLIC_APIKEY=
3
+ NEXT_PUBLIC_AUTHDOMAIN=
4
+ NEXT_PUBLIC_PROJECTID=
5
+ NEXT_PUBLIC_STORAGEBUCKET=
6
+ NEXT_PUBLIC_SENDERID=
7
+ NEXT_PUBLIC_APPID=
8
+ NEXT_PUBLIC_MEASUREMENTID=
9
+ NEXT_PUBLIC_RECAPTCHA_SITE_KEY=
10
+
11
+ # --- Firebase Admin (Secrets) ---
12
+ FIREBASE_ADMIN_PROJECT_ID=
13
+ FIREBASE_ADMIN_PRIVATE_KEY_ID=
14
+ FIREBASE_ADMIN_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n"
15
+ FIREBASE_ADMIN_CLIENT_EMAIL=
16
+ FIREBASE_ADMIN_CLIENT_ID=
17
+ FIREBASE_ADMIN_CLIENT_X509_CERT_URL=
18
+
19
+ # --- AI & Content ---
20
+ NEXT_PUBLIC_GEMINI_API_KEY=
21
+ NEXT_PUBLIC_ADMIN_EMAIL=
22
+
23
+ # --- Media & Email ---
24
+ NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME=
25
+ NEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET=wedding
26
+ RESEND_API_KEY=
27
+ CRON_SECRET=
package/README.md CHANGED
@@ -1,51 +1,46 @@
1
1
  # 💍 Wedding Website Generator v2.0 (AI-Powered)
2
2
 
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.
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 (The A-B-C Guide)
7
+ ## 🚀 Phase 1: Rapid Generation
8
8
 
9
- ### Step A: Initialize Your Project
10
- Run the following command in your terminal to start the interactive setup:
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
- ### Step B: CLI Prompt Reference
16
- The generator will ask you several questions. Here is how to answer them:
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 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. |
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 Setup
31
+ ## 🛠️ Phase 2: System Infrastructure
36
32
 
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.
33
+ ### 1. Environment Configuration
34
+ A structured template is provided in `.env.example`. Duplicate this to `.env.local` and populate the values.
45
35
 
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:
36
+ ### 2. Firebase (Database & Auth)
37
+ 1. Create a project at [Firebase Console](https://console.firebase.google.com/).
38
+ 2. **Authentication**: Enable "Email/Password".
39
+ 3. **Firestore**: Create a database in "Production Mode".
40
+ 4. **Admin SDK**: Go to **Project Settings** > **Service Accounts** > **Generate New Private Key**. Use these values for `FIREBASE_ADMIN` env vars.
48
41
 
42
+ ### 2. Firestore Security Rules
43
+ Deploy these rules in the Firebase console to ensure data integrity:
49
44
  ```javascript
50
45
  rules_version = '2';
51
46
  service cloud.firestore {
@@ -54,137 +49,96 @@ service cloud.firestore {
54
49
  match /song_requests/{requestId} { allow read, write: if true; }
55
50
  match /guestbook/{entryId} { allow read, write: if true; }
56
51
  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
- }
52
+ match /email-reminders/{reminderId} { allow read: if true; allow write: if request.auth != null; }
53
+ match /{document=**} { allow read: if true; allow write: if request.auth != null; }
65
54
  }
66
55
  }
67
56
  ```
68
57
 
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.
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`.
58
+ ### 3. Media & Automation
59
+ - **Cloudinary**: Create an "Unsigned" upload preset named `wedding`.
60
+ - **Resend**: Generate an API key for automated email reminders.
61
+ - **Google Gemini**: Get an API key from [Google AI Studio](https://aistudio.google.com/).
77
62
 
78
63
  ---
79
64
 
80
- ## 🔐 Phase 3: Environment Configuration
81
-
82
- Create a `.env.local` file in your generated project root and populate it:
65
+ ## 🎨 Phase 3: Theming & Personalization
83
66
 
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
67
+ ### 1. Visual Theming (Tailwind)
68
+ The site's colors are centralized in `tailwind.config.js`. You can change the primary wedding palette here:
69
+ ```javascript
70
+ // tailwind.config.js
71
+ colors: {
72
+ wedding: {
73
+ pink: {
74
+ 500: '#ec4899', // Change this to your primary color
75
+ },
76
+ gold: {
77
+ 400: '#d99e43', // Change this to your accent color
78
+ }
79
+ }
80
+ }
110
81
  ```
111
82
 
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. |
83
+ ### 2. Asset Mapping (`/public/`)
84
+ Replace placeholders with your own media. **Maintain exact filenames.**
126
85
 
127
- ---
128
-
129
- ## 🤖 Phase 5: Advanced AI Features
130
-
131
- ### 1. The Wedding Concierge (Gemini 2.5)
132
- Guests can chat with an AI assistant trained on your wedding data.
133
- - **Setup**: Provide your `NEXT_PUBLIC_GEMINI_API_KEY` in `.env.local`.
134
- - **Knowledge**: The bot automatically knows your venues, dates, and story based on the info you provided during Phase 1.
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).
86
+ | File | Context |
87
+ | :--- | :--- |
88
+ | `bride.jpg` | Main Bride portrait (used in /couple). |
89
+ | `groom.jpg` | Main Groom portrait (used in /couple). |
90
+ | `qr.png` | Your UPI QR code. |
91
+ | `/Images/19.jpg` - `22.jpg` | Specific timeline milestones. |
92
+ | `/Images/Patipatra.jpeg` | Date-fixing ceremony photo. |
93
+ | `/Images/*.jpg` | **Bulk Upload**: Any extra images here auto-populate the masonry gallery. |
141
94
 
142
95
  ---
143
96
 
144
- ## 🎮 Phase 6: Management & Broadcast
97
+ ## 💻 Phase 4: Code-Level Customization
145
98
 
146
- ### 1. Guest Management Dashboard (`/invitation/maker`)
147
- Log in with your **Admin Email** to access the ultimate control center:
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.
99
+ ### 1. Modifying the "Our Story" Section
100
+ The narrative is located in `components/OurStory.tsx`. It uses standard React/Tailwind. Edit the `<p>` tags to write your own journey.
151
101
 
152
- ### 2. Moderation (Guestbook & Songs)
153
- - **Moderation**: Admins logged into the site can delete any guest-uploaded photo or song request directly from the live feed.
154
- - **Song Queue**: Mark songs as "Played" or delete them as the night progresses at `/song-requests`.
102
+ ### 2. Adding/Removing Navigation Items
103
+ Update `config/site.ts` to add new routes or hide existing ones from the navbar and mobile menu.
155
104
 
156
- ### 3. OBS Broadcast Overlay (`/updates/overlay`)
157
- Perfect for venue video walls or live streams:
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.
105
+ ### 3. Tweaking AI Bot Behavior
106
+ Go to `components/ConciergeBot.tsx` and find the `systemInstruction` variable. You can change the bot's "personality" or add more specific wedding facts.
161
107
 
162
108
  ---
163
109
 
164
- ## ✉️ Guest Personalization (How it works)
110
+ ## 🎮 Phase 5: Admin & Management
111
+
112
+ ### Guest Management Dashboard (`/invitation/maker`)
113
+ Log in with your **Admin Email** to access:
114
+ - **Login Secret**: To log in as admin, scroll to the footer and click the small **"Celebrate" heart icon** next to the author's name. This will trigger the login modal.
115
+ - **Guest List**: Create unique invitation IDs.
116
+ - **Personalized Links**: Give every family a unique URL: `yoursite.com/invitation/[guest-id]`.
117
+ - **RSVP Tracking**: Live view of attendance and meal choices.
165
118
 
166
- When you add a guest in the dashboard, they get a unique ID. Their link becomes: `your-site.com/invitation/[guest-id]`.
167
- - **Custom Welcome**: The site greets them by name.
168
- - **Smart Filters**: They only see the events they are specifically invited to (e.g., just Reception, or all events).
169
- - **One-Click RSVP**: Their identity is linked, making RSVP a single-click process.
119
+ ### OBS Live Overlay (`/updates/overlay`)
120
+ Use this route as a "Browser Source" in OBS for your venue screens:
121
+ - **Real-time News**: Scroling updates posted via `/updates/maker`.
122
+ - **Clock**: Synchronized event time.
123
+ - **Background**: Chroma-key green for transparency.
170
124
 
171
125
  ---
172
126
 
173
- ## 🚀 Phase 7: Deployment & Automation
127
+ ## 🚀 Phase 6: Deployment
174
128
 
175
- ### Vercel Deployment
176
- 1. Push your code to **GitHub**.
177
- 2. Connect your repository to [Vercel](https://vercel.com/).
178
- 3. **Important**: Add all your `.env.local` variables into the Vercel **Environment Variables** settings.
129
+ ### Vercel (Recommended)
130
+ 1. Push your code to GitHub.
131
+ 2. Import project to Vercel.
132
+ 3. Add all variables from `.env.local` to Vercel **Environment Variables**.
179
133
 
180
- ### Automated Reminders (Cron Job)
181
- To send daily reminders to guests (e.g., from Jan 10th to Jan 26th):
182
- 1. In Vercel, go to the **Cron** tab (or use GitHub Actions).
183
- 2. Set up a job to call: `GET /api/email-reminders`
184
- 3. Header: `Authorization: Bearer YOUR_CRON_SECRET`
185
- 4. Schedule: `0 10 10-26 1 *` (10 AM daily).
134
+ ### Automated Guest Reminders
135
+ Set up a Cron Job (Vercel or GitHub Actions) to trigger:
136
+ - **URL**: `YOUR_SITE/api/email-reminders`
137
+ - **Method**: `GET`
138
+ - **Header**: `Authorization: Bearer YOUR_CRON_SECRET`
139
+ - **Cron**: `0 10 10-26 1 *` (10 AM daily during Jan).
186
140
 
187
141
  ---
188
142
 
189
143
  ## 📜 License
190
- MIT License. Created with ❤️ for your special day.
144
+ MIT License. Built with ❤️ for the community.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@titas_mallick/wedding-site-gen",
3
- "version": "2.0.2",
3
+ "version": "2.0.4",
4
4
  "description": "A comprehensive AI-powered wedding website generator based on Next.js, Firebase, and Gemini AI.",
5
5
  "keywords": [
6
6
  "wedding",