https://github.com/suryxnshsingh/oculink
A feature loaded video conferencing platform made using NextJS - TypeScript and Tailwind CSS.
https://github.com/suryxnshsingh/oculink
clerk getstreamio nextjs webrtc
Last synced: 5 months ago
JSON representation
A feature loaded video conferencing platform made using NextJS - TypeScript and Tailwind CSS.
- Host: GitHub
- URL: https://github.com/suryxnshsingh/oculink
- Owner: suryxnshsingh
- Created: 2024-09-24T03:57:00.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-27T22:04:34.000Z (5 months ago)
- Last Synced: 2025-04-27T22:26:34.593Z (5 months ago)
- Topics: clerk, getstreamio, nextjs, webrtc
- Language: TypeScript
- Homepage: https://oculink.suryxnshsingh.me
- Size: 2.71 MB
- Stars: 21
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
OcuLink is a feature rich Video confrencing platform made with the latest Next.js and TypeScript. It enables users to securely log in, create meetings and access various meeting functionalities such as recording, screen sharing, and managing participants, call Stats, etc.
## 🎨 Design
A clean and elegant NeoBrutalistic UI. Neubrutalism in web design is a trend characterized by minimalist aesthetics, stark typography, and a raw, unpolished appearance.
- Next.js
- TypeScript
- Clerk
- getstream
- shadcn
- Tailwind CSS## 🔋 Features
👉 **Authentication**: Implements authentication and authorization features using Clerk, allowing users to securely log in via social sign-on or traditional email and password methods, while ensuring appropriate access levels and permissions within the platform.
👉 **New Meeting**: Quickly start a new meeting, configuring camera and microphone settings before joining.
👉 **Meeting Controls**: Participants have full control over meeting aspects, including recording, emoji reactions, screen sharing, muting/unmuting, sound adjustments, grid layout, participant list view, and individual participant management (pinning, muting, unmuting, blocking, allowing video share).
👉 **Exit Meeting**: Participants can leave a meeting, or creators can end it for all attendees.
👉 **Schedule Future Meetings**: Input meeting details (date, time) to schedule future meetings, accessible on the 'Upcoming Meetings' page for sharing the link or immediate start.
👉 **Past Meetings List**: Access a list of previously held meetings, including details and metadata.
👉 **View Recorded Meetings**: Access recordings of past meetings for review or reference.
👉 **Personal Room**: Users have a personal room with a unique meeting link for instant meetings, shareable with others.
👉 **Join Meetings via Link**: Easily join meetings created by others by providing a link.
👉 **Secure Real-time Functionality**: All interactions within the platform are secure and occur in real-time, maintaining user privacy and data integrity.
👉 **Responsive Design**: Follows responsive design principles to ensure optimal user experience across devices, adapting seamlessly to different screen sizes and resolutions.
and many more, including code architecture and reusability.
Follow these steps to set up the project locally on your machine.
**Prerequisites**
Make sure you have the following installed on your machine:
- [Git](https://git-scm.com/)
- [Node.js](https://nodejs.org/en)
- [npm](https://www.npmjs.com/) (Node Package Manager)**Cloning the Repository**
```bash
git clone [https://github.com/suryxnshsingh/OcuLink.git](https://github.com/suryxnshsingh/OcuLink.git)
cd oculink
```**Installation**
Install the project dependencies using npm:
```bash
npm install
```**Set Up Environment Variables**
Create a new file named `.env` in the root of your project and add the following content:
```env
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=NEXT_PUBLIC_CLERK_SIGN_IN_URL=/signin
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/signupNEXT_PUBLIC_STREAM_API_KEY=
STREAM_SECRET_KEY=
```Replace the placeholder values with your actual Clerk & getstream credentials. You can obtain these credentials by signing up on the [Clerk website](https://clerk.com/) and [getstream website](https://getstream.io/)
**Running the Project**
```bash
npm run dev
```Open [http://localhost:3000](http://localhost:3000) in your browser to view the project.
#