{"id":15566478,"url":"https://github.com/hyperloop-rails/panorama-docker","last_synced_at":"2026-01-27T15:33:24.348Z","repository":{"id":68680272,"uuid":"167435052","full_name":"hyperloop-rails/panorama-docker","owner":"hyperloop-rails","description":null,"archived":false,"fork":false,"pushed_at":"2019-01-25T03:19:50.000Z","size":1054,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-05-30T16:30:31.772Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hyperloop-rails.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}},"created_at":"2019-01-24T20:45:59.000Z","updated_at":"2019-01-25T03:19:52.000Z","dependencies_parsed_at":"2023-03-08T16:15:45.653Z","dependency_job_id":null,"html_url":"https://github.com/hyperloop-rails/panorama-docker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hyperloop-rails/panorama-docker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperloop-rails%2Fpanorama-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperloop-rails%2Fpanorama-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperloop-rails%2Fpanorama-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperloop-rails%2Fpanorama-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hyperloop-rails","download_url":"https://codeload.github.com/hyperloop-rails/panorama-docker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperloop-rails%2Fpanorama-docker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28815413,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-27T12:25:15.069Z","status":"ssl_error","status_checked_at":"2026-01-27T12:25:05.297Z","response_time":168,"last_error":"SSL_read: 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-10-02T17:02:12.195Z","updated_at":"2026-01-27T15:33:24.333Z","avatar_url":"https://github.com/hyperloop-rails.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\nThe artifact has been published as a [docker image](https://cloud.docker.com/u/panorama/repository/docker/panorama/chrome) on Docker Hub.\n\nThis artifact for our companion paper “View-Centric Performance Optimization for\nDatabase-Backed Web Applications (#273)” includes both the Panorama framework we developed and some raw data produced by our user study. We hope this artifact can demonstrate the use of Panorama to reviewers and potential users.\n\nIn this artifact, we deploy Panorama in two forms, a Rubymine IDE plugin and a command line tool. In both forms, Panorama provides a view-centric and database-aware development environment for web developers through its two key components 1) Panorama profiler that helps developers understand the data-processing costs of HTML tags on a web page, 2) Panorama optimizer that helps developers identify optimizing opportunities and carry out code refactoring to improve the performance of a web page.  \n\nAlso we provide code and data used to evaluate Panorama in the paper: 1) the source code of 12 open-source applications used as benchmarks in our paper; 2) synthesized workload for each of these 12 applications; 3) the questionnaires and results of our user study. Detailed instructions to reproduce our experiments are also included.\n\n### Reproduce experiments in Section VII.\n* RQ1: how many opportunities does Panorama identify?\n\t```\n\t $ cd /home/panorama-static-analyzer/controller_model_analysis/\n\t $ ./run_RQ1.sh\n\t ```\n\tThe detected optimized opportunities will be generated and found in folder ```/home/panorama-static-analyzer/controller_model_analysis/opportunities```.\n\tThe generated patches can be found ```/home/panorama-static-analyzer/controller_model_analysis/patches```\n\n* RQ2: how much performance benefits?\n\t ```\n\t cd /home/panorama-static-analyzer/controller_model_analysis/\n\t ./run_RQ2.sh\n\t ```\n\t The results are genearted from applications' running logs including end to end time and server time, which are stored under   ```/home/panorama-static-analyzer/controller_model_analysis/RQ2``` in both ```eoe``` and ```server```.\n\n\n* RQ3: are alternate view designs worthwhile?\u003cbr/\u003e\n  * Questionnaire can be found [here](https://uchicago.co1.qualtrics.com/jfe/preview/SV_3HNaVHXVyhsdDZr?Q_SurveyVersionID=\u0026Q_CHL=preview).\u003cbr/\u003e\n  * The raw-data of answers from participants can be found [here](https://docs.google.com/spreadsheets/d/1EAq7ZhROnu2BCQkXYpV9XcrYSkna5FVxy2-WgOg5r2M/edit?usp=sharing), which are all de-identified. \n\n* RQ4: how accurate is Panorama profiler?\n\t ```\n\t $ cd /home/panorama-static-analyzer/controller_model_analysis/\n\t $ ./run_RQ4.sh\n\t ```\n\t The complexity of tags will be printed out. And the end-to-end time for each design will be printed out, which comes from our previous running logs. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyperloop-rails%2Fpanorama-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhyperloop-rails%2Fpanorama-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyperloop-rails%2Fpanorama-docker/lists"}