{"id":14985784,"url":"https://github.com/wistingcn/wilearning","last_synced_at":"2025-04-05T03:06:03.629Z","repository":{"id":46170867,"uuid":"264877026","full_name":"wistingcn/WiLearning","owner":"wistingcn","description":"Multiparty meeting\u0026e-learning  using mediasoup, webrtc ,angular and ionic with powerful whiteboard support","archived":false,"fork":false,"pushed_at":"2021-10-28T00:28:51.000Z","size":22368,"stargazers_count":484,"open_issues_count":3,"forks_count":143,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-04-05T03:04:59.726Z","etag":null,"topics":["angular","express","ionic","mediasoup","nodejs","socketio","typescript","webrtc"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wistingcn.png","metadata":{"files":{"readme":"README-en.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-05-18T08:30:43.000Z","updated_at":"2025-03-27T09:12:07.000Z","dependencies_parsed_at":"2022-09-24T15:00:13.911Z","dependency_job_id":null,"html_url":"https://github.com/wistingcn/WiLearning","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wistingcn%2FWiLearning","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wistingcn%2FWiLearning/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wistingcn%2FWiLearning/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wistingcn%2FWiLearning/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wistingcn","download_url":"https://codeload.github.com/wistingcn/WiLearning/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247280263,"owners_count":20912967,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","express","ionic","mediasoup","nodejs","socketio","typescript","webrtc"],"created_at":"2024-09-24T14:11:39.729Z","updated_at":"2025-04-05T03:06:03.614Z","avatar_url":"https://github.com/wistingcn.png","language":"TypeScript","readme":"[Demo](https://rtc.liweix.com/admin)\n\n# WiLearning\nWiLearning is an open source, free e-learning and conferencing system. WiLearning uses WebRTC technology, The server side uses Typescript + Nodejs + MediaSoup and client side uses Angular + Ionic, WiLearning has the following features:\n* Multi-person video conference,or text interaction\n* Share desktop\n* Share local media \n* WhiteBoard \u0026 files, files are automatically transcoded in the web\n* Realtime brush-courseware annotation, add content, and share to other participants\n* Document preview , display annotation in preview\n* Export document, export document to pdf include brush \u0026 annotation\n* Support multiple rooms at the same time, the number of participants in one room is not limited, depends on the hardware conditions\n* Support Chinese and English\n* Automatic recovery when switching network\n* Support Chrome/Safari in Windows/Mac/Linux/Android/IOS\n\n# Install\nRequirement: Nodejs\u003ev12\n```\n# Build all\n./build.sh all\n\n# build subsystem\n./build.sh [server/app/admin]\n\n# build result locate in 'dist' directory\n```\n\n# Run\nThe sample SSL certificate is provided in the code. Please provide your own certificate when it is actually running.The certificate must be consistent with the domain name you visit.\n\n* enter the dist directory\n```\ncd dist\n````\n\n* Method 1: run server.js\n```\nnode server.js --cert ../certs/rtc.liweix.com.pem --key ../certs/rtc.liweix.com.key\n```\n\n* WiLearning get your public ip from 'https://api.ipify.org'. Alternatively, you can specify on in command line.\n```\nnode server.js --cert ../certs/rtc.liweix.com.pem --key ../certs/rtc.liweix.com.key --publicIp x.x.x.x\n```\n* ```eth0``` is used as default interface name. If you have a different interface name, you must specify it using ```--eth```\n```\nnode server.js --cert ../certs/rtc.liweix.com.pem --key ../certs/rtc.liweix.com.key --eth \u003cifname\u003e\n```\n* Or you can run start.sh with default SSL certificate\n```\n./start.sh\n```\n\n* run with pm2\n```\nnpx pm2 start start.sh\n```\n\n# enable google bbr \nrun the follow command line in server console(linux kernel \u003e 4.9):\n```\nwget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh \u0026\u0026 chmod +x bbr.sh \u0026\u0026 ./bbr.sh\n```\n\n# Access\n* Access WiLearning admin use Chrom/FireFox/Safari:\n```\nhttps://[your public ip]/admin/\n```\n* Create room in Admin, open the 'Link' of room\n* Now it has two roler, 'Speaker' and 'Attendee','Speaker' act as the adminstrator of room.\n* Login the same room , choose your roler, begin your conference, enjoy!\n\n# Support WiLearning\n* Use it, and report Bug!\n* Tell me you feeling and your want.\n* Give it a STAR\n\n![Give me a cup of coffee](res/appreciate.png)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwistingcn%2Fwilearning","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwistingcn%2Fwilearning","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwistingcn%2Fwilearning/lists"}