Weddify is a personalized event management platform designed to help users create custom event pages, manage guest lists, and provide tailored invitations for their events.
- Features
- Tech Stack
- Setup and Installation
- Environment Variables
- Database Schema
- API Endpoints
- Frontend Structure
- How to Use
- Future Enhancements
- License
- User authentication and session management using NextAuth.js.
- Create and manage events with customizable fields.
- Generate personalized event pages with unique links for each event.
- Manage guest lists, including adding attendees and their information.
- Real-time RSVP form integrated with event pages.
- Responsive design for seamless access across devices.
- Frontend: React, Next.js, Tailwind CSS
- Backend: Node.js, Next.js API routes, Prisma ORM
- Database: PostgreSQL
- Authentication: NextAuth.js with JWT
- Node.js (v16+)
- PostgreSQL database
- Clone the repository:
git clone https://github.com/username/weddify.git cd weddify
- Install dependencies:
npm install
- Create a
.env.local
file in the root directory and configure the environment variables (see Environment Variables). - Set up the database:
npx prisma migrate dev
- Start the development server:
npm run dev
Add the following variables to your .env.local
file:
DATABASE_URL=your_postgres_database_url
NEXTAUTH_SECRET=your_secret_key
NEXTAUTH_URL=http://localhost:3000
id
(Int, Primary Key, Auto-increment)email
(String, Unique)password
(String)events
(Relation to Event table)
id
(Int, Primary Key, Auto-increment)name
(String)date
(DateTime)location
(String)message
(String)headerText
(String)footerText
(String)userId
(Int, Foreign Key)guests
(Relation to Guest table)
id
(Int, Primary Key, Auto-increment)firstName
(String)lastName
(String)howMany
(Int)eventId
(Int, Foreign Key)
POST /api/auth/register
: Register a new user.POST /api/auth/login
: Log in a user.GET /api/auth/logout
: Log out the current user.
GET /api/events
: Fetch events created by the logged-in user.POST /api/events
: Create a new event.GET /api/events/[id]
: Fetch details of a specific event.PUT /api/events/[id]
: Update event details.DELETE /api/events/[id]
: Delete an event.
GET /api/events/[id]/guests
: Fetch all guests for a specific event.POST /api/events/[id]/guests
: Add a new guest to an event.
src/
├── app/
│ ├── page.tsx # Main landing page
│ ├── dashboard/ # Dashboard for managing events
│ │ ├── index.tsx # Dashboard home
│ │ ├── create-event/ # Create Event Page
│ └── event/[id]/ # Event-specific pages
├── components/ # Reusable components
├── styles/ # Global styles
├── prisma/ # Prisma schema and migrations
└── pages/api/ # API routes
- Register as a new user or log in with existing credentials.
- Access the dashboard to create and manage events.
- Share the generated event page link with guests.
- Track RSVPs and manage guest lists via the dashboard.
- Add email notifications for RSVPs.
- Support for additional payment integration.
- Real-time updates for guest management.
- Add analytics for event organizers.
This project is licensed under the MIT License. See the LICENSE file for details.