{"id":28390908,"url":"https://github.com/blikvm/blikvm-web-server","last_synced_at":"2025-06-25T16:32:12.534Z","repository":{"id":247777396,"uuid":"803567604","full_name":"blikvm/blikvm-web-server","owner":"blikvm","description":null,"archived":false,"fork":false,"pushed_at":"2025-06-16T11:10:01.000Z","size":74830,"stargazers_count":3,"open_issues_count":0,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-16T12:23:55.378Z","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":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/blikvm.png","metadata":{"files":{"readme":"README.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-05-21T01:18:58.000Z","updated_at":"2025-05-16T04:00:09.000Z","dependencies_parsed_at":"2024-07-15T13:13:10.469Z","dependency_job_id":"8e66294c-0873-47b8-af10-3e8b5676ed97","html_url":"https://github.com/blikvm/blikvm-web-server","commit_stats":null,"previous_names":["thomasvon2021/blikvm-web-server","blikvm/blikvm-web-server"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/blikvm/blikvm-web-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blikvm%2Fblikvm-web-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blikvm%2Fblikvm-web-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blikvm%2Fblikvm-web-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blikvm%2Fblikvm-web-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/blikvm","download_url":"https://codeload.github.com/blikvm/blikvm-web-server/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blikvm%2Fblikvm-web-server/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261909205,"owners_count":23228760,"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":[],"created_at":"2025-05-31T07:09:19.570Z","updated_at":"2025-06-25T16:32:12.527Z","avatar_url":"https://github.com/blikvm.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Table of Contents\n\n- [1. Project Structure](#1-project-structure)\n- [2. Call Hierarchy](#2-call-hierarchy)\n- [3. Code Logic](#3-code-logic)\n- [4. To-Do Items](#4-to-do-items)\n- [5. Naming Conventions](#5-naming-conventions)\n- [6. Commit Guidelines](#6-commit-guidelines)\n\n\n## 1. Project Structure\n\nThe file and directory structure of the project is as follows:\n\n- src: Source code\n- test: Test code\n- lib: Dependency libraries and Dependency scripts\n- doc: Documentation\n- config: Configuration files\n- scripts: Script files\n- release: Release versions\n- README.md: Project overview\n- package.json: Project configuration\n\n## 2. Call Hierarchy\n\nThe call hierarchy is divided into six layers, where upper layers can call lower layers, but lower layers cannot call upper layers.\n\n| Layer | Contents |\n|---------|---------|\n| 1 | index.js |\n| 2 | server |\n| 3 | modules |\n| 5 | common |\n| 6 | lib, config |\n\n## 3. Code Logic\n\n(1) The core code consists of four objects: HTTP server object, HTTP API object, video stream API object, and log object.\n\n(2) All four objects are implemented using the singleton design pattern to ensure uniqueness.\n\n(3) The HTTP server object and log object start when the KVM is powered on.\n\n(4) The HTTP API object, and video stream API object start only when the service is started.\n\n## 4. Naming Conventions\n\nIn programming, there are several common naming conventions:\n\nCamel Case: The first word starts with a lowercase letter, and the first letter of each subsequent word is capitalized. Example: firstName.\n\nPascal Case: The first letter of each word is capitalized. Example: FirstName.\n\nSnake Case: Words are connected with underscores (_), and all letters are lowercase. Example: first_name.\n\nKebab Case: Words are connected with hyphens (-), and all letters are lowercase. Example: first-name.\n\nConstant Case: All letters are capitalized, and words are connected with underscores (_). Example: FIRST_NAME.\n\n| Naming Content | Naming Convention | Example |\n|--|--|--|\n| Enum Type | Pascal Case | Direction |\n| Enum Value | Constant Case | UP_LEFT |\n| Constant | Constant Case | MATH_VALUE |\n| Class | Pascal Case | HttpServer |\n| Class Property | Camel Case with underscore prefix | _value |\n| Class Getter/Setter | Camel Case | value |\n| Class Private Method | Camel Case with underscore prefix | _test() |\n| Class Public Method | Camel Case | test() |\n| Class Private Static Property | Camel Case with underscore prefix | _value |\n| Class Public Static Property | Camel Case | value |\n| Class Private Static Method | Camel Case with underscore prefix | _test() |\n| Class Public Static Method | Camel Case | test() |\n| Global Variable | Camel Case | value |\n| Local Variable | Camel Case | value |\n| Function Name | Camel Case | runServer() |\n| File Name | Snake Case | http_server.js |\n\n## 5. Commit Guidelines\n\nThe recommended format is as follows:\n```\n\u003ctype\u003e: \u003csubject\u003e\n```\n`type` is the change category, with the following options:\n\n- `feature` or `feat`: new function\n- `fix`: fix bug\n- `docs`: Documentation changes\n- `style`: format (changes that do not affect code operation)\n- `refactor`: Refactoring (that is, code changes that are not new features or bug fixes)\n- `test`: add test\n- `merge`: code merge\n- `revert`: roll back to a certain commit\n- `build`: used to update build configurations, development tools, etc.\n- `chore`: Miscellaneous, other non-functional changes\n\n`subject` is a short description of the commit, which is recommended to be no more than 50 characters.\n\n## 6. How to build\nYou need to build client first, then cp dist to server, then build server.\n```\n# build client\ncd web_client\nnpm install\nnpm run build\ncp -r dist ../web_server\ncd ../\n\n# build server\ncd ./web_server\nnpm install\nnpm run clean\nnpm run build\n```\n\n## License\nCopyright (C) 2018-2024 by blicube info@blicube.com\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program.  If not, see https://www.gnu.org/licenses/.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblikvm%2Fblikvm-web-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblikvm%2Fblikvm-web-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblikvm%2Fblikvm-web-server/lists"}