Voom is a streamlined, modern video conferencing tool inspired by the widely used Zoom platform. Built with the latest technologies, Voom offers a secure and intuitive experience for users to log in, create meetings, and utilize a variety of conferencing features. Our platform supports essential functionalities such as recording, screen sharing, and participant management, all wrapped in a minimalistic design.
- Next.js: A powerful React framework for building server-side rendered applications.
- TypeScript: A strongly typed programming language that builds on JavaScript, adding static type definitions.
- Clerk: A user authentication and management solution that simplifies secure login and authorization.
- getstream: A scalable, feature-rich activity feed and chat API for enhancing user interaction.
- shadcn: A component library for creating beautiful and consistent UI.
- Tailwind CSS: A utility-first CSS framework for rapid UI development.
- Secure Login: Implemented via Clerk, supporting social sign-on and traditional email/password methods.
- Authorization: Ensures appropriate access levels and permissions within the platform.
- New Meeting: Quickly start a new meeting, configuring camera and microphone settings beforehand.
- Meeting Controls: Full participant control, including:
- Recording sessions
- Emoji reactions
- Screen sharing
- Mute/unmute options
- Sound adjustments
- Grid layout
- Participant list view
- Individual participant management (pinning, muting, unmuting, blocking, allowing video share)
- Exit Meeting: Options to leave a meeting or end it for all attendees.
- Schedule Future Meetings: Input details (date, time) to schedule and manage future meetings.
- Past Meetings List: Access a list of previous meetings with details and metadata.
- View Recorded Meetings: Review or reference recordings of past meetings.
- Unique Meeting Link: Each user has a personal room with a unique link for instant meetings.
- Via Link: Easily join meetings created by others by providing a meeting link.
- Secure Real-time Functionality: Ensures all interactions within the platform are secure and occur in real-time, maintaining user privacy and data integrity.
- Adaptive UI: Designed to provide an optimal user experience across devices, adapting seamlessly to different screen sizes and resolutions.
- Code Architecture: Emphasizes clean, maintainable, and reusable code.
You can follow these steps to set up the project locally on your machine.
Ensure you have the following installed on your machine:
- Git
- Node.js
- npm (Node Package Manager)
git clone https://github.com/adrianhajdin/zoom-clone.git
cd zoom-clone
Install the project dependencies using npm:
npm install
Create a new file named .env
in the root of your project and add the following content:
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
NEXT_PUBLIC_STREAM_API_KEY=
STREAM_SECRET_KEY=
Replace the placeholder values with your actual Clerk and getstream credentials. Obtain these credentials by signing up on the Clerk website and getstream website.
npm run dev
Open http://localhost:3000 in your browser to view the project.
By following these steps, you'll have Voom up and running on your local machine, ready to provide a seamless and feature-rich video conferencing experience.