Skip to content
Draft
Show file tree
Hide file tree
Changes from 6 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
29 changes: 11 additions & 18 deletions client/.env.local
Original file line number Diff line number Diff line change
@@ -1,24 +1,17 @@
# Database
DATABASE_URL="mysql://wedding_user:W3dd1ng%40ArvinIncia2025Secure@localhost:3306/wedding_db"
DATABASE_URL="mysql://username:password@hostname:3306/wedding_db"

# NextAuth
NEXTAUTH_SECRET="your-super-secure-nextauth-secret-key-2025-wedding"
NEXTAUTH_URL="https://arvinwedsincia.com"
NEXTAUTH_SECRET="your-nextauth-secret-key-here"
NEXTAUTH_URL="http://localhost:3000"

# Email (Resend) - Using a placeholder for build
RESEND_API_KEY="re_placeholder_key_for_build"
# Email (Resend)
RESEND_API_KEY="re_your_resend_api_key_here"

# Cloudinary (for media uploads) - Using placeholders for build
CLOUDINARY_CLOUD_NAME="placeholder_cloud"
CLOUDINARY_API_KEY="placeholder_api_key"
CLOUDINARY_API_SECRET="placeholder_api_secret"
# Cloudinary (for media uploads)
CLOUDINARY_CLOUD_NAME="your-cloudinary-cloud-name"
CLOUDINARY_API_KEY="your-cloudinary-api-key"
CLOUDINARY_API_SECRET="your-cloudinary-api-secret"

# Google Maps (optional)
NEXT_PUBLIC_GOOGLE_MAPS_API_KEY="placeholder_maps_key"

# Admin credentials
ADMIN_EMAIL="admin@arvinwedsincia.com"
ADMIN_PASSWORD="SecureAdmin2025!"

# App Configuration
NODE_ENV="production"
# Development API URL
NEXT_PUBLIC_API_URL="http://localhost:3000/api"
1 change: 0 additions & 1 deletion client/package-lock.json

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

36 changes: 18 additions & 18 deletions client/src/app/contact/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ export default function ContactPage() {
Contact Us
</h1>
<div className="w-16 sm:w-20 md:w-24 h-1 bg-primary mx-auto mb-6 sm:mb-8"></div>
<p className="text-lg sm:text-xl max-w-2xl mx-auto leading-relaxed text-foreground/90 tracking-[0.015em]">
<p className="text-lg sm:text-xl text-muted max-w-2xl mx-auto leading-relaxed">
Have questions about our wedding? We&apos;d love to hear from you!
</p>
</div>
Expand All @@ -97,7 +97,7 @@ export default function ContactPage() {
<h2 className="text-2xl sm:text-3xl font-serif font-semibold text-secondary mb-4">
Message Sent!
</h2>
<p className="text-foreground/80 mb-6 text-sm sm:text-base leading-relaxed">
<p className="text-muted mb-6 text-sm sm:text-base">
Thank you for reaching out! We&apos;ll get back to you as soon as possible.
</p>
<button
Expand All @@ -112,14 +112,14 @@ export default function ContactPage() {
</div>
) : (
<>
<h2 className="text-2xl sm:text-3xl font-serif font-semibold text-secondary mb-6 tracking-tight">
<h2 className="text-2xl sm:text-3xl font-serif font-semibold text-secondary mb-6">
Send us a message
</h2>

<form onSubmit={handleSubmit} className="space-y-4 sm:space-y-6">
<div className="grid sm:grid-cols-2 gap-4">
<div>
<label htmlFor="name" className="block text-sm font-medium text-foreground mb-2 tracking-wide">
<label htmlFor="name" className="block text-sm font-medium text-foreground mb-2">
Name *
</label>
<input
Expand All @@ -134,7 +134,7 @@ export default function ContactPage() {
</div>

<div>
<label htmlFor="email" className="block text-sm font-medium text-foreground mb-2 tracking-wide">
<label htmlFor="email" className="block text-sm font-medium text-foreground mb-2">
Email *
</label>
<input
Expand All @@ -150,7 +150,7 @@ export default function ContactPage() {
</div>

<div>
<label htmlFor="phone" className="block text-sm font-medium text-foreground mb-2 tracking-wide">
<label htmlFor="phone" className="block text-sm font-medium text-foreground mb-2">
Phone Number
</label>
<input
Expand All @@ -164,7 +164,7 @@ export default function ContactPage() {
</div>

<div>
<label htmlFor="subject" className="block text-sm font-medium text-foreground mb-2 tracking-wide">
<label htmlFor="subject" className="block text-sm font-medium text-foreground mb-2">
Subject *
</label>
<select
Expand All @@ -187,7 +187,7 @@ export default function ContactPage() {
</div>

<div>
<label htmlFor="message" className="block text-sm font-medium text-foreground mb-2 tracking-wide">
<label htmlFor="message" className="block text-sm font-medium text-foreground mb-2">
Message *
</label>
<textarea
Expand Down Expand Up @@ -228,7 +228,7 @@ export default function ContactPage() {
</div>
<div>
<p className="font-medium text-foreground">Email</p>
<p className="text-foreground/85 text-sm font-light">contact@inciaandarvins.wedding</p>
<p className="text-muted text-sm">contact@inciaandarvins.wedding</p>
</div>
</div>

Expand All @@ -238,7 +238,7 @@ export default function ContactPage() {
</div>
<div>
<p className="font-medium text-foreground">WhatsApp</p>
<p className="text-foreground/85 text-sm font-light">+880 1234-567890</p>
<p className="text-muted text-sm">+880 1234-567890</p>
</div>
</div>

Expand All @@ -248,7 +248,7 @@ export default function ContactPage() {
</div>
<div>
<p className="font-medium text-foreground">Wedding Location</p>
<p className="text-foreground/85 text-sm font-light">Dhaka, Bangladesh</p>
<p className="text-muted text-sm">Dhaka, Bangladesh</p>
</div>
</div>
</div>
Expand All @@ -264,7 +264,7 @@ export default function ContactPage() {
{contactGroup.people.map((person, personIndex) => (
<div key={personIndex} className="border-b border-cream-100 pb-4 last:border-b-0 last:pb-0">
<p className="font-medium text-foreground">{person.name}</p>
<p className="text-sm text-foreground/80 mb-2 font-light tracking-wide">{person.role}</p>
<p className="text-sm text-muted mb-2">{person.role}</p>
<div className="flex flex-col sm:flex-row sm:space-x-4 space-y-1 sm:space-y-0 text-sm">
<a
href={`tel:${person.phone}`}
Expand Down Expand Up @@ -296,39 +296,39 @@ export default function ContactPage() {
<h2 className="text-3xl sm:text-4xl font-serif font-semibold text-secondary mb-4 sm:mb-6">
Frequently Asked Questions
</h2>
<p className="text-foreground/80 text-sm sm:text-base leading-relaxed tracking-[0.01em]">
<p className="text-muted text-sm sm:text-base">
Here are some common questions we receive. Don&apos;t see your question? Feel free to contact us!
</p>
</div>

<div className="grid sm:grid-cols-2 gap-6 sm:gap-8">
<div className="bg-white rounded-xl p-6 shadow-lg">
<h3 className="font-semibold text-foreground mb-3">When should I RSVP?</h3>
<p className="text-foreground/80 text-sm sm:text-base leading-relaxed">
<p className="text-muted text-sm sm:text-base">
Please RSVP as soon as possible, but no later than July 15, 2025.
This helps us finalize catering and seating arrangements.
</p>
</div>

<div className="bg-white rounded-xl p-6 shadow-lg">
<h3 className="font-semibold text-foreground mb-3">What&apos;s the dress code?</h3>
<p className="text-foreground/80 text-sm sm:text-base leading-relaxed">
<p className="text-muted text-sm sm:text-base">
We&apos;ll have different dress codes for each event. Detailed information
will be sent with your invitation and is available on our Events page.
</p>
</div>

<div className="bg-white rounded-xl p-6 shadow-lg">
<h3 className="font-semibold text-foreground mb-3">Can I bring a plus-one?</h3>
<p className="text-foreground/80 text-sm sm:text-base leading-relaxed">
<p className="text-muted text-sm sm:text-base">
Plus-one information is specified on your invitation. If you have
questions about your invitation, please contact us directly.
</p>
</div>

<div className="bg-white rounded-xl p-6 shadow-lg">
<h3 className="font-semibold text-foreground mb-3">Will there be vegetarian/vegan options?</h3>
<p className="text-foreground/80 text-sm sm:text-base leading-relaxed">
<p className="text-muted text-sm sm:text-base">
Yes! We&apos;ll have various dietary options available. Please let us know
about any specific dietary requirements when you RSVP.
</p>
Expand All @@ -343,7 +343,7 @@ export default function ContactPage() {
<h2 className="text-3xl sm:text-4xl font-serif font-semibold text-secondary mb-4 sm:mb-6">
Ready to Celebrate with Us?
</h2>
<p className="text-foreground/85 mb-8 text-sm sm:text-base leading-relaxed">
<p className="text-muted mb-8 text-sm sm:text-base">
Don&apos;t forget to RSVP and check out all the wedding details.
</p>
<div className="flex flex-col sm:flex-row gap-4 justify-center items-center max-w-md mx-auto">
Expand Down
46 changes: 16 additions & 30 deletions client/src/app/events/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,54 +6,40 @@ export default function EventsPage() {
const events = [
{
id: 1,
title: "Mehndi Ceremony",
date: "2025-08-15",
time: "6:00 PM",
venue: "Private Residence",
title: "Holud",
date: "2025-12-16",
venue: "Dhaka Regency Hotel",
location: "Dhaka, Bangladesh",
description: "Traditional mehndi ceremony with family and close friends. Join us for an evening of music, dance, and beautiful henna designs.",
dressCode: "Colorful traditional attire",
type: "mehndi"
description: "A vibrant Holud night with music, turmeric, and celebration with family and friends.",
dressCode: "Yellow/bright traditional attire",
type: "holud"
},
{
id: 2,
title: "Wedding Ceremony",
date: "2025-08-16",
time: "10:00 AM",
title: "Akdh",
date: "2025-12-17",
venue: "Dhaka Regency Hotel",
location: "Dhaka, Bangladesh",
description: "The main wedding ceremony where Incia and Arvin will exchange vows surrounded by family and friends.",
description: "The Akdh ceremony where Incia and Arvin will be officially joined in marriage.",
dressCode: "Formal traditional or western attire",
type: "wedding"
type: "akdh"
},
{
id: 3,
title: "Reception Dinner",
date: "2025-08-16",
time: "7:00 PM",
title: "Reception",
date: "2025-12-18",
venue: "Dhaka Regency Hotel",
location: "Dhaka, Bangladesh",
description: "Evening reception with dinner, speeches, and dancing to celebrate the newlyweds.",
description: "Reception dinner and celebration with speeches, music, and dancing.",
dressCode: "Formal attire",
type: "reception"
},
{
id: 4,
title: "After-Party Celebration",
date: "2025-08-20",
time: "4:00 PM",
venue: "Private Beach Resort",
location: "Phu Quoc, Vietnam",
description: "Extended celebration on the beautiful beaches of Phu Quoc with intimate friends and family.",
dressCode: "Beach formal / Resort wear",
type: "after_party"
}
];

const getEventIcon = (type: string) => {
switch (type) {
case 'mehndi': return '🎨';
case 'wedding': return '💍';
case 'holud': return '🌼';
case 'akdh': return '💍';
case 'reception': return '🥂';
case 'after_party': return '🏖️';
default: return '🎉';
Expand All @@ -77,6 +63,7 @@ export default function EventsPage() {
</div>
</section>


{/* Events Timeline */}
<section className="pb-16 sm:pb-20">
<div className="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8">
Expand Down Expand Up @@ -109,7 +96,6 @@ export default function EventsPage() {
day: 'numeric'
})}
</span>
<span className="flex items-center">🕐 {event.time}</span>
</div>
</div>
</div>
Expand Down
Loading