{"id":20671494,"url":"https://github.com/hopson97/mall-map-dashboard","last_synced_at":"2026-02-06T03:31:55.315Z","repository":{"id":37030419,"uuid":"167804684","full_name":"Hopson97/Mall-Map-Dashboard","owner":"Hopson97","description":"Configurable dashboard for a mall map","archived":false,"fork":false,"pushed_at":"2024-12-05T05:49:41.000Z","size":510,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-19T20:24:05.859Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Hopson97.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":"2019-01-27T12:10:43.000Z","updated_at":"2024-12-05T05:49:39.000Z","dependencies_parsed_at":"2024-12-05T06:35:56.190Z","dependency_job_id":null,"html_url":"https://github.com/Hopson97/Mall-Map-Dashboard","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/Hopson97/Mall-Map-Dashboard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hopson97%2FMall-Map-Dashboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hopson97%2FMall-Map-Dashboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hopson97%2FMall-Map-Dashboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hopson97%2FMall-Map-Dashboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Hopson97","download_url":"https://codeload.github.com/Hopson97/Mall-Map-Dashboard/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hopson97%2FMall-Map-Dashboard/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29148141,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-06T02:39:25.012Z","status":"ssl_error","status_checked_at":"2026-02-06T02:37:22.784Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":"2024-11-16T20:27:41.026Z","updated_at":"2026-02-06T03:31:55.297Z","avatar_url":"https://github.com/Hopson97.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dashboard\n\n[WEBSCPT] Configurable remote display, 76% achieved.\n\nDemo: https://i.imgur.com/L3iP4WO.gifv\n\n## The idea\n\nThe information is designed to be shown in multiple public spaces in a shopping center called \"Twin Pines Mall\". From the display, the public is able to see a map of the shopping center, and the locations of all of the shops. On top of this, they are also able to view any running promotions/commercials of the shops, as well as a shop legend.\n\n## The Input\n\nThe input is spit across multiple pages:\n\n* Map Input, where the user is able to input information about the map\n\n* Shop input, where the user is able to add and remove shops\n\n* Commercial Input, where the user is able to add and remove commercials about the shops\n\n### Map Editor\n\nThis page displays a top-down map of the shopping centre.\n\nYou are able to press WASD to pan around, or use the arrow buttons above the map to move. The + and - buttons can be used to zoom in and out of the map respectively.\n\nIf you click on a room, you are able to change what shop the room is. (Which will also automatically update the dashboard in real-time).\n\n### Shop Editor\n\nThis page displays the list of shops that you are able to add to the shopping centre rooms.\n\nIt will display the name, category, and the date the shop was added.\n\nYou are also able to add shops using the form at the bottom. You can also delete shops by clicking the respective bin icon. Doing do will also remove any commercials or shops from the shopping centre map which had that as their associated shop. This will also update the dashboard in real time.\n\n### Commercial Editor\n\nThis page displays the list of commercials that are currently running on the dashboard\n\nIt will display the name, category, and the date the shop was added.\n\nYou are also able to add shops using the form at the bottom. You can also delete shops by clicking the respective bin icon. Doing do will also remove any commercials or shops from the shopping centre map which had that as their associated shop. This will also update the dashboard in real time.\n\n## The Dashboard\n\nThe dashboard displays 3 separate pieces of information, on 3 panels. \n\nThe main panel is the 3D render of the shopping center, which continuously rotates, allowing for a full 360 view of the shopping center. This also displays billboards, which says the name of each shop, as well as the category of the shop (Eg food, toys, etc).\n\nThe left panel is a basic information panel. This displays two pieces of information:\n\n1. The time and the date, which is updated regularly to be accurate as possible\n\n2. A legend, mapping the category names to their colours.\n\nThe bottom and final panel displays commercials. When there are more than 4 commercials, this panel will infinitely scroll, as to show the user every advert currently being ran through the shopping center.\n\nThese panels use the JSON files in the `/server/data/` directory. I have also provided sample data, which can be found in the `sample-data` directory at the project root, which can be used to replace some of the server data. \n\n## Libraries Used\n\n### Backend\n\n#### Normal Dependencies\n\n##### Express\n\nUsed to create the HTTP server.\n\nhttps://expressjs.com\n\n___\n\n##### express-ws\nUsed to add websocket functionality on top of the express server application.\n\nhttps://www.npmjs.com/package/express-ws\n\n___\n\n#### Dev Dependencies\n\n##### QUnit\n\nUsed for unit testing the API\n\nhttps://qunitjs.com\n\n___\n\n##### node-fetch\n\nUsed for interacting with the server API from the unit test files\n\nhttps://www.npmjs.com/package/node-fetch\n\n___\n\n##### cross-env\n\nUsed for cross-platform npm scripts\n\nhttps://www.npmjs.com/package/cross-env\n\n___\n\n\n### Frontend\n\ngl-matrix: To assist with the matrix maths operations that are needed to effectively use WebGL\n\nhttp://glmatrix.net/\n\n___\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhopson97%2Fmall-map-dashboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhopson97%2Fmall-map-dashboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhopson97%2Fmall-map-dashboard/lists"}