A complete meeting app with Google authentication, video calls, chat functionality, and real-time updates.
- Google authentication
- Meeting scheduling
- Email invites
- Participant forms
- Meeting history
- Video calls with volume control
- Chat functionality
- Real-time updates with MongoDB Change Streams
- Frontend: Next.js (App Router)
- Backend: Next.js API Routes
- Database: MongoDB (Atlas)
- Video: Daily.co
- Auth: NextAuth (Google)
- Emails: Resend
- Real-time: MongoDB Change Streams
- Styling: TailwindCSS
- Clone the repository
- Install dependencies:
pnpm install
- Create a
.env.localfile with the required environment variables (see.env.example) - Run the development server:
pnpm dev
/api/auth/[...nextauth]- NextAuth authentication routes
POST /api/meetings- Create a new meetingGET /api/meetings- Get user's meetingsGET /api/meetings/[id]- Get meeting detailsPUT /api/meetings/[id]- Update meetingDELETE /api/meetings/[id]- Delete meeting
GET /api/meetings/[id]/participants- Get meeting participantsPOST /api/meetings/[id]/participants- Add participantsDELETE /api/meetings/[id]/participants- Remove participant
POST /api/meetings/[id]/invite- Send meeting invitations
POST /api/meetings/[id]/join- Join meeting with video settings
GET /api/meetings/[id]/chat- Get chat messagesPOST /api/meetings/[id]/chat- Send chat message
GET /api/meetings/[id]/forms- Get form submissionsPOST /api/meetings/[id]/forms- Submit form responses
GOOGLE_CLIENT_ID- Google OAuth client IDGOOGLE_CLIENT_SECRET- Google OAuth client secretMONGODB_URI- MongoDB connection URINEXTAUTH_URL- NextAuth URL (e.g., http://localhost:3000)NEXTAUTH_SECRET- NextAuth secret for JWT encryptionDAILY_API_KEY- Daily.co API keyDAILY_SUBDOMAIN- Daily.co subdomainRESEND_API_KEY- Resend API key for sending emails