From 6c7e3c3935c3857a74ea4a5c886727486f26fdc2 Mon Sep 17 00:00:00 2001 From: Carlos Santos <4a.santos@gmail.com> Date: Thu, 16 Jan 2025 18:28:08 +0100 Subject: [PATCH] Updated README --- README.md | 51 ++++++++++++++++++++++--- docs/openvidu-call-ce-architecture.png | Bin 12567 -> 42012 bytes 2 files changed, 45 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 111f9d01..23e8213e 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,24 @@ OpenVidu Call is a versatile video conferencing application powered by **OpenVidu**, designed to support a wide range of use cases, from personal video calls to professional webinars. Built with **Angular**, OpenVidu Call offers two distinct modes of operation to cater to both non-technical users and developers seeking deep integration with their applications. +# Table of Contents + +1. [Modes of Use](#modes-of-use) + 1.1 [Full Mode](#full-mode) + 1.2 [Embedded Mode (Call Embedded)](#embedded-mode-call-embedded) +2. [Feature Comparison: CE vs PRO](#feature-comparison-ce-vs-pro) +3. [Architecture Overview](#architecture-overview) + 3.1 [Frontend](#frontend) + 3.2 [Backend](#backend) +4. [Development](#development) + 4.1 [Clone the Repository](#1-clone-the-openvidu-call-repository) + 4.2 [Prepare the Project](#2-prepare-the-project) + 4.3 [Start the Backend](#3-start-the-backend) + 4.4 [Start the Frontend](#4-start-the-frontend) +5. [Build (with Docker)](#build-with-docker) + 5.1 [Build the Backend Image](#build-the-backend-image) + 5.2 [Run the Backend Container](#run-the-backend-container) + ## Modes of Use ### Full Mode @@ -68,22 +86,22 @@ The OpenVidu Call application is composed of two main parts (frontend and backen Also, the frontend project installs external dependencies on the following libraries: - [**openvidu-components-angular**](https://github.com/OpenVidu/openvidu/tree/master/openvidu-components-angular): A library of Angular components that provide the core functionality of the video conferencing service. - - [**@types/openvidu-call**](https://github.com/OpenVidu/openvidu-call/tree/next/types): A library of common types used by the frontend and backend. + - [**typing**](./types/): Common types used by the frontend and backend. - **Backend**: The backend is a Node.js application. - - [**@types/openvidu-call**](https://github.com/OpenVidu/openvidu-call/tree/next/types): A library of common types used by the frontend and backend. + - [**typings**](./types/): Common types used by the frontend and backend. ## Development For development purposes, you can run the application locally by following the instructions below. -Clone the OpenVidu Call repository: +**1. Clone the OpenVidu Call repository:** ```bash git clone https://github.com/OpenVidu/openvidu-call.git --branch next ``` -### Prepare the project +**2. Prepare the project** For building types and install dependencies, run the following command: @@ -92,7 +110,27 @@ cd openvidu-call ./prepare.sh ``` -### Backend +> [!NOTE] > **The script prepare and build all necessary dependencies (shared-call-components and typings) for run te frontend and backend.** +> +> - For listening to changes to the **shared-call-components** library, you can run the following command: +> +> Stop the frontend server and run the following command: +> +> ```bash +> cd openvidu-call/frontend +> npm run lib:serve +> ``` +> +> After that you can run the frontend server again. +> +> - For building the **typings**, you can run the following command: +> +> ```bash +> cd openvidu-call/types +> npm run sync-ce +> ``` + +**3. Start the Backend** 1. Serve the backend application. @@ -101,7 +139,7 @@ cd backend && \ npm run dev:start ``` -### Frontend +**4. Start the Frontend** Opening a new tab, under root directory: @@ -114,6 +152,7 @@ npm run dev:start After running these commands, you can access the frontend application at [http://localhost:5080](http://localhost:5080). +### Advanced mode ## Build (with docker) diff --git a/docs/openvidu-call-ce-architecture.png b/docs/openvidu-call-ce-architecture.png index 7d9308bd8731a622d9b710f0e8c3302970e19921..f18a3bbcfff2f64e2d52ce53447654831892f136 100644 GIT binary patch literal 42012 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

?t`TVLeH{f^Hbf$b z*gXly{P)KU^lC}8)kyYidgAF+pufW)XD$zj;b#x9s_{H^HEap99RkgS030DI;9<}*3 zMM~RUz8w^S-nIMrHp?*))asYi{~XS%2qE)$l3RB%Mbb3jJPFfNVtC3r%P? z7cww0iJfo%_!pKsaJPKXByc5MNiBjLS>1!?_40?WaZq37Ztz7p)Ur&tM#{-f?40#7 z=M^cz>R0J^d^aX|8IuUCN$fA%R$oUA_2B;~3b?#jvqO+q>l^+0lK*0=EviVg57efQ z)mtPdE=Kgg=#yFMY{zu8t?luOdTu(O}N}e_9 z(;~w~?as$S$g8JbJ-A9r9mYXMzHFW6um9LElyhKe>*|>{7NL%uiuM<>DX3<+;FNp; z#dJYk4(`$Xkr#J`rQqFqq)=q5_x0ZnCW zt(06c6B1Z3@A;$03yjRT+%K~-aw{bNbouRg2w}ph_%0D%k@^jH#iy^i6A&N2KJJKM zuxRK4F_sYacDJTv8kj3sq+|C>C|Hpc#N97{2~B35RkP*9jKE ziriBp`Mn)**>bjvi_b3mBR{#AyaQO<(Sh``_8`H^Z1Y0)*giNAHVBmfBsZ& zmAx6-Ln}fQf;;V?n%feZPUjQBvN2|0T1KB3ud{iV1x9MEUss^l!xY2cJz;L_x9-@B zBh&7}Me^0Ehnl`)LZu{!{3W)}w6$hPL#b!g7*%2%i(TA3iElKNm75gWdYdzR-HUN( z89`qBql=HJ&jzj$snh}5eehj<3guV0MH{@{KBJGUjQ7xD$fcZ8xg?fGs+>=R0r!?+ zH;pD4mr2o3pf5dAm^>C{9`9hEp)o5Spb#c4#{l^pQC50&TQ^9+&57V#*A=YVyY z$a6dbj7IL?q}6gHTF>Rb`KqtG{Ixj(L5mJ@WTz7WRNn^XS^c2cUQTk)@}3| zO@f1oYRGZ$O(CZ_lXLAW)(zU?8E)cX;ao&c`I2WGfm%v{g)KdQspBOgb>pI~Jlq>+|SE6li0-zB;fIFRii1NHjMuY|$^YMo|ep?(6 z4U)OREGcq1uYe1eFxc~x(2pOxd(ls{`OaeV-wsNKj^E#_w@vR{pLQ3~#t1*0?1G#U z0<&-?q!GLlpWd{_)EP6)h&$bFS%Eqi-1HS}66kQV^4qCsMITv^MVE+rvCbquIvHbW z+f!E6siV8_|24I5ltDwKh}ypfo9D$y7lbxQ;PZ{YG0@SPurdN|`-N(}{IT!L8mquJ zyqO&!y~4+eRCwrVcCHbHrmyz(Pg@6lSCnn*S&+9)YVQ)^BmLXNVz#wS#K()^i!nk722&Z?0(^qkUwpzOwO!g9 z7?uRiT{Vpaa8OO5$GeyMeIunS1cu}|&Z_+5frrp+upa*4*4f3-&h_)m1uB@C5Fn(u zyG`ljV6ce>3pO7Mo44pG2h!?xP&)x3YYrQyl%Bx*OlTG|?()#~EHIlEU{kiu8Alh} z^(A6Ps|VS8tM_^f^t!p3>p`n<0szjKoTOmWLX1jCOTG$ovwemmZ8Z5xl%PP*8gI-6iCjx&@>LG^H zFvMC1{gV`!najWUy2&IM>egCjYT=z8pvqaqi<@P@iX!|st`9ZL8QASFL`zz5-+ghR=QWTgR{#rlBCO*xR$pQlY$_0JLuF0-k_XFK6!X zMLceYnqUD&F4E?^S3I~&_O$=v@7@&s**{U4}Neu|h znGUle2KG2aQnYD9kLj}gF!2;R986ONHNT#p;OPYOr1_hjgiwI<)N_diq+7J!CqZS} z%D*T$p-Q`Oko+PB!({i{2;fm>MmA1;7P4Rq`v0KH=xXk_cn~(4 z&5*#!)vD)YYhR!jXSTvovdcqaVLlR|!egHjb9mY`Ay_F`uVliNl$`T5Ire%0DBH)8 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

;~2E^j?}HrrP)Qx0xW7AHH?! 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 c0T^!x<)Zby7F*oD{#UD`VW3{~)IRF}0B>0