Invito is a modern, full-stack event management platform built with Next.js, Firebase, and Tailwind CSS. It allows users to create, manage, and share events seamlessly, with features like public RSVP pages, real-time guest tracking, and email invitations.
- User Authentication: Secure login and signup powered by Firebase Authentication.
- Dashboard: A centralized hub to manage all your events, track RSVPs, and view analytics.
- Create & Customize Events: Effortlessly create events with custom details, including:
- Event Title, Date, and Time
- Location (Physical or Online)
- Cover Image Upload (via Cloudinary)
- Description and Capacity
- Public RSVP Pages: Generate unique, shareable links for public events.
- Guests can RSVP (Attending, Not Attending, Maybe).
- Real-time attendee counter.
- Add to Calendar (Google Calendar) integration.
- Location mapping (Google Maps integration).
- Guest Management:
- View and filter guest lists by status.
- Search guests by name or email.
- Real-time updates.
- Responsive Design: Fully optimized for desktop, tablet, and mobile devices.
- Dark Mode Support: Beautiful dark mode UI with Shadcn components.
- Framework: Next.js 15 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: Shadcn UI
- Icons: Lucide React
- Database & Auth: Firebase (Firestore, Auth)
- State Management: TanStack Query (React Query)
- Image Storage: Cloudinary
- Date Handling: date-fns
- Toast Notifications: Sonner
- Node.js 18+ installed
- A Firebase project
- A Cloudinary account
-
Clone the repository:
git clone https://github.com/devadedeji/invito.git cd invito -
Install dependencies:
npm install # or yarn install -
Set up Environment Variables:
Create a
.envfile in the root directory and add your keys:NEXT_PUBLIC_FIREBASE_API_KEY=your_api_key NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_project.appspot.com NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_sender_id NEXT_PUBLIC_FIREBASE_APP_ID=your_app_id NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME=your_cloud_name NEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET=your_upload_preset CLOUDINARY_API_SECRET=your_api_secret CLOUDINARY_API_KEY=your_api_key
-
Set up Firestore Rules:
Copy the contents of
firestore.rulesand publish them in your Firebase Console > Firestore Database > Rules to ensure correct permissions. -
Run the development server:
npm run dev
Open http://localhost:3000 to view the app.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License.