<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Achref Ben El Hadj Salem</title>
    <description>The latest articles on DEV Community by Achref Ben El Hadj Salem (@achref_benelhadjsalem_).</description>
    <link>https://dev.to/achref_benelhadjsalem_</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2530038%2F3174fa47-2134-4f63-8a34-66df2a8e9fea.jpg</url>
      <title>DEV Community: Achref Ben El Hadj Salem</title>
      <link>https://dev.to/achref_benelhadjsalem_</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/achref_benelhadjsalem_"/>
    <language>en</language>
    <item>
      <title>Build Your Professional Meeting Platform Using ZEGO Cloud</title>
      <dc:creator>Achref Ben El Hadj Salem</dc:creator>
      <pubDate>Thu, 05 Dec 2024 22:49:59 +0000</pubDate>
      <link>https://dev.to/achref_benelhadjsalem_/build-your-professional-meeting-platform-using-zego-cloud-4k97</link>
      <guid>https://dev.to/achref_benelhadjsalem_/build-your-professional-meeting-platform-using-zego-cloud-4k97</guid>
      <description>&lt;p&gt;Build Your Professional Meeting Platform Using ZEGO Cloud&lt;br&gt;
Are you looking to create a reliable and scalable meeting platform? In this article, I’ll walk you through how to set up and integrate a meeting platform using ZEGO Cloud, along with backend integration for managing meetings efficiently. You’ll also find complete code samples to help you get started.&lt;/p&gt;

&lt;p&gt;Getting Started with ZEGO Cloud&lt;br&gt;
Step 1: Create a Project&lt;br&gt;
Log in to ZEGO Cloud.&lt;br&gt;
Navigate to the Dashboard and click on Create Your Project.&lt;br&gt;
Choose the Free Trial plan, which offers 1,000 free minutes for the meeting component.&lt;/p&gt;

&lt;p&gt;Step 2: Select a Room Type&lt;br&gt;
After creating your project, select the type of room you want for your application:&lt;/p&gt;

&lt;p&gt;Voice &amp;amp; Video Calls&lt;br&gt;
Video Conference&lt;br&gt;
Live Streaming&lt;br&gt;
Telehealth&lt;br&gt;
Custom App&lt;br&gt;
For this guide, we’ll use the Voice &amp;amp; Video Call option.&lt;/p&gt;

&lt;p&gt;Step 3: Retrieve API Keys and Configuration&lt;br&gt;
Once your project is created, you’ll find the AppID, Server Secret, and other parameters in the Basic Information section. Copy these details as they will be needed to integrate the SDK into your application.&lt;/p&gt;

&lt;p&gt;Download the SDK&lt;br&gt;
Visit the ZEGO Cloud Documentation to download the SDK and get detailed integration guides.&lt;/p&gt;




&lt;p&gt;Backend Integration for Professional Meetings&lt;br&gt;
Step 1: Create the Meeting Entity&lt;br&gt;
Define a Meeting entity in your backend to manage meeting attributes such as date, type, and title.&lt;/p&gt;

&lt;p&gt;export class Meeting {&lt;br&gt;
    idMeeting!: number;&lt;br&gt;
    dateMeeting!: Date;&lt;br&gt;
    typeMeet!: TypeMeet;&lt;br&gt;
    titleMeet!: string;&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;Step 2: Build the Meeting Management Component&lt;br&gt;
Create a MeetingsComponent to handle filtering, adding, and deleting meetings. Here’s a snippet of the TypeScript logic:&lt;/p&gt;

&lt;p&gt;@Component({&lt;br&gt;
  selector: 'app-meetings',&lt;br&gt;
  templateUrl: './meetings.component.html',&lt;br&gt;
  styleUrls: ['./meetings.component.css']&lt;br&gt;
})&lt;br&gt;
export class MeetingsComponent implements OnDestroy {&lt;br&gt;
  meetings: Meeting[] = [];&lt;br&gt;
  filteredMeetings: Meeting[] = [];&lt;br&gt;
  ...&lt;/p&gt;

&lt;p&gt;loadMeetings(): void {&lt;br&gt;
    this.meetingService.getAllMeetings().subscribe((meetings) =&amp;gt; {&lt;br&gt;
      this.meetings = meetings;&lt;br&gt;
      this.filteredMeetings = meetings;&lt;br&gt;
      this.updatePage();&lt;br&gt;
    });&lt;br&gt;
  }&lt;br&gt;
  ...&lt;br&gt;
}&lt;br&gt;
And the corresponding HTML structure to display and filter meetings:&lt;/p&gt;

&lt;p&gt;html&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Title&lt;/th&gt;
      &lt;th&gt;Date&lt;/th&gt;
      &lt;th&gt;Type&lt;/th&gt;
      &lt;th&gt;Actions&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;{{ meeting.titleMeet }}&lt;/td&gt;
      &lt;td&gt;{{ meeting.dateMeeting | date }}&lt;/td&gt;
      &lt;td&gt;{{ meeting.typeMeet }}&lt;/td&gt;
      &lt;td&gt;
        Join
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Integrating the API Room in Angular&lt;br&gt;
To create a dynamic meeting room, use the Zego UIKit Prebuilt SDK. Here's how:&lt;/p&gt;

&lt;p&gt;Import the Zego UIKit in your MeetinfRoomComponent:&lt;/p&gt;

&lt;p&gt;import { ZegoUIKitPrebuilt } from '@zegocloud/zego-uikit-prebuilt';&lt;br&gt;
...&lt;br&gt;
initializeZego(userName: string) {&lt;br&gt;
    const kitToken = ZegoUIKitPrebuilt.generateKitTokenForTest(appID, serverSecret, roomID, userID, userName);&lt;br&gt;
    const zp = ZegoUIKitPrebuilt.create(kitToken);&lt;br&gt;
    zp.joinRoom({ container: document.querySelector("#root"), scenario: { mode: ZegoUIKitPrebuilt.GroupCall } });&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;Add an HTML container for the room interface:&lt;br&gt;
html&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#root {
    width: 80vw;
    height: 80vh;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Conclusion&lt;br&gt;
By following this guide, you’ll have a fully functional meeting platform powered by ZEGO Cloud. With robust backend integration and the ability to customize your meeting experience, this solution is perfect for businesses and developers alike.&lt;/p&gt;

&lt;p&gt;Feel free to clone and customize the provided code. Let me know in the comments if you have questions or suggestions!&lt;/p&gt;

</description>
      <category>springboot</category>
      <category>angular</category>
      <category>api</category>
    </item>
  </channel>
</rss>
