{"id":25823353,"url":"https://github.com/saada/thoth","last_synced_at":"2025-08-14T08:05:38.651Z","repository":{"id":73889214,"uuid":"8231997","full_name":"saada/Thoth","owner":"saada","description":null,"archived":false,"fork":false,"pushed_at":"2015-01-07T04:30:32.000Z","size":10588,"stargazers_count":4,"open_issues_count":0,"forks_count":3,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-03T01:23:59.665Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/saada.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-02-16T05:34:58.000Z","updated_at":"2018-07-09T23:27:18.000Z","dependencies_parsed_at":"2023-02-26T14:46:05.563Z","dependency_job_id":null,"html_url":"https://github.com/saada/Thoth","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/saada/Thoth","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saada%2FThoth","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saada%2FThoth/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saada%2FThoth/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saada%2FThoth/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/saada","download_url":"https://codeload.github.com/saada/Thoth/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saada%2FThoth/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270385467,"owners_count":24574556,"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","status":"online","status_checked_at":"2025-08-14T02:00:10.309Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2025-02-28T11:53:34.454Z","updated_at":"2025-08-14T08:05:38.567Z","avatar_url":"https://github.com/saada.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"#Thoth: A Multimedia-enabled Virtual Education Platform with Live Interaction and Collaboration\n\n![THOTH](http://www.crystalinks.com/thothdaynight.jpg \"Thoth\")\n\n##Summary\nWhat is Thoth, what is the overall goal of this project?\n\n##What does 'Thoth' mean?\nSince I'm from Egypt, the team decided to pick something related to my background. Le proposed Thoth and we liked it.  \nIn Ancient Egypt, Thoth was the name of the mythical God of Knowledge. The name also rhymes with the word 'thought', think, **Thoth!**\n\n##What problems are you intending to solve?\n\nExisting remote education platforms usually allow online students to watch a pre-recorded lecture, which discourages students from interacting with the instructor and other peers. \nFor students who cannot attend the real-time class session, they will have access to a fully-recorded lecture including the live questions and their answers during the lecture. Our system can be used by not only professors, but also teaching assistants for live Q\u0026A sessions.\nLack of a modern virtual classroom with real-time video conferencing and multiple remote desktop sharing based on cloud virtual resources.\nHigh expense and complexity for establishing a physical laboratory for hands-on educational experiments. Lack of flexibility to re-configure and manage the physical resources. (space, time, management restrictions for physical lab)\nCurrent online education platforms lack the management of student groups within a class which is crucial to a productive, successful learning experience in group projects as well as building layered communications for the classroom. (Personalized/customizable, reconfigurable, collaborative...)\nCurrent online education platforms lack role-based access control on student activities and educational resources.\n\n##What is the technological approach, or development roadmap?\n\n###Technologies used in the project:\nWeb platform:\nNodeJS\nWebsockets (node-ws)\nHTML5\nCSS3\njQuery\nTwitter Bootstrap\nmxGraph\nVideo conferencing:\nWebRTC\nVirtual resource allocation and management:\nXenServer\nXenAPI\nRemote desktop control/sharing:\nnoVNC, VNC proxy\n\n###Timeline\nDecember 2012: Design and feasibility study;\nJanuary 2013: Implementation for back-end;\nFebruary 2013: Implementation for front-end;\nMarch 2013: First working demo;\nApril 3rd 2013: Enhanced, more thorough demonstration.\n\n###Completed Features:\nV-Lab ID and user management\nV-Lab VM resource management APIs and Web interface\nV-Lab Virtual Network resource management APIs and Web interface\nWeb-based virtual resource management tool jGraph (validation, animation, dynamic loading, XML parsing, Configuration storage)\nNode.js Web server that integrates both Http and WebSocket servers. \nHTML5 \u0026 CSS3: Single-page \u0026 Responsive Web application design\nP2P video / audio streaming via WebRTC\nRemote VNC control of virtual resources with the ability to share view / control with online users in the group.\n\n###In-Progress:\nP2P file sharing via WebRTC.\nChatting system\nAutomatic volume control to show currently speaking user in the middle of a group conference\nFuture Work:\nUser Desktop Sharing\nFace-detection and camera animation support\nReal-time dynamic adjustments on the video quality and the number of concurrent video streams according to the user’s network conditions (bandwidth / delay) and hardware capacity.\nIn addition to using XenServer for virtual computing, we plan to integrate OpenFlow switch to control the data flow and network quality based on user privilege and real-time conditions.\nAugmented Reality features.\n\n\n##How will end users interact with it, and how will they benefit? \nThe project follows a pedagogical model with virtual classrooms, hands-on laboratories, and live interaction between students and instructors. There will also be features like a classroom management system, interactive online lecturing, mentoring, Q/A, tutoring, and assessments. Our main goal for the app's users is to provide an online social classroom environment with community-based knowledge sharing. You can imagine students, TAs, and professors discussing, learning, and solving sophisticated problems using our platform.\nThe main interface runs on a modern browser using technologies like HTML5, WebRTC, and Websockets. The result is a web-based classroom where students and professors can see their own Virtual Machines concurrently in real-time and control them as they please. The users can also share these machines' screen with others and choose to allow control or not.\nMobile remote education, field study\n\n##How will your app leverage the 1Gbps, sliceable and deeply programmable network? (required)\n\nOur platform will take advantage of such high bandwidth to achieve real-time HD video-conferencing between a large number of online students, professors, teaching assistants, and tutors. \nIn every classroom, each student is provided multiple virtual machines with remote control and screen sharing to other participants in the class. This requires a high throughput and low delay network with programmable capacity.\nIncorporate our system with GENI’s resource allocation API and use Internet 2 to build virtual network system.\n\n##Describe yourself and your Team (if applicable) (required)\n\nMahmoud Saada: Lead architect for web design, video conferencing implementation, and remote desktop control/sharing implementation. Le Xu: Lead architect for system design, back-end XenAPIs and database development. Qingyun Li: Front-end development. Wenxian Yang: Front-end graphic design. Dr. Dijiang Huang: Project Mentor.\nVideo demo:\nFigure 1: Web-based remote desktop sharing and control via VNC\nFigure 2: Video Conference\n\n\n##Current stage:\n1) We have a couple of features in the beta stage. We currently have our own cloud server that we maintain on campus.\nWe are now able to have multiple users in a conference with audio and video. We can also give users the ability to control virtual machine desktops from their browser simultaneously. For example, you can have eight people controlling the same desktop. This is of course not a common use case, but we wanted just a proof of concept. The real advantage to this would be to share this remote desktop screen with others with access control. That is what we are currently working on. We want to allow the users to \"share\" control with others on demand.\n\n2) Among other things we are working on is a graph web application that users can design their virtual networks on. Users can draw and design virtual resources, networks, and physically create them on thee cloud. We hope to have this experience to be shared a-la Google Doc; a collaborative application.\n\nThe combination of #1 and #2 is our goal to release this app for students at ASU for this coming Fall semester 2013.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaada%2Fthoth","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsaada%2Fthoth","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaada%2Fthoth/lists"}