{"id":15758236,"url":"https://github.com/themihel/design-pattern-analysis-server","last_synced_at":"2025-03-31T08:47:59.800Z","repository":{"id":52382732,"uuid":"293629490","full_name":"themihel/Design-Pattern-Analysis-Server","owner":"themihel","description":"Server infrastructure for observing study participants actions from a corresponding app. Ability to adjust to the needed requirements and to do automated basic statistical analysis.","archived":false,"fork":false,"pushed_at":"2021-11-09T19:12:13.000Z","size":132,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-06T13:25:12.905Z","etag":null,"topics":["analysis","design-patterns","observational-study","server"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/themihel.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}},"created_at":"2020-09-07T20:48:32.000Z","updated_at":"2021-11-09T19:12:17.000Z","dependencies_parsed_at":"2022-08-22T11:01:30.938Z","dependency_job_id":null,"html_url":"https://github.com/themihel/Design-Pattern-Analysis-Server","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themihel%2FDesign-Pattern-Analysis-Server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themihel%2FDesign-Pattern-Analysis-Server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themihel%2FDesign-Pattern-Analysis-Server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themihel%2FDesign-Pattern-Analysis-Server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/themihel","download_url":"https://codeload.github.com/themihel/Design-Pattern-Analysis-Server/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246443527,"owners_count":20778247,"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":["analysis","design-patterns","observational-study","server"],"created_at":"2024-10-04T09:43:51.904Z","updated_at":"2025-03-31T08:47:59.768Z","avatar_url":"https://github.com/themihel.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Design Pattern Analysis - Server\nCorresponding app: https://github.com/themihel/Design-Pattern-Analysis-App\n\nPaper: https://dl.acm.org/doi/10.1145/3473856.3473987\n\n## Background\nBackground of this repository is a framework to give researchers the opportunity to have a look into closed source apps using their, mostly present, web app.\nIt is possible to run different tests, like turning specific design patterns on or off. Any change using the functionality of Javascript and CSS is possible.\nAlso you can track different groups to construct a study based on your need. Furthermore this platform can be used for any other field study using own content.\n\n## Usage\n\n### Installing dependencies\n`composer install \u0026\u0026 npm install`\n\n### Starting development server\n`docker-compose up`\n\n### Running build process\nThe build process minifies the javascript and CSS files and moves them to the corresponding directory in the public folder to be accessible through the internet.\n\n`gulp build`\n\n## Actions\n`GET /` - Method to check if the server is up and running\n\n`POST /trackaction` - Method to receive data from the app (configured already)\n\n`GET /statistics/generate` - Method to generate session data\n\n## Requirements\nRegarding the prerequisites, care was taken to ensure that they can be met with minimal resources. In the case of universities, such servers are usually provided by the data center, but also very many (almost all) external hosters with this service can be used.\n\n* Apache Server (Config is provided, in case of NGINX you have to adapt the redirect rules)\n* PHP\n* MySQL\n\n## Relevant folders\nThe following part explains the content and usage of relevant folders to adapt.\n\n### ressources/modifications\nEach folder is meant for a specific group.\n\nFor example you can configure your app that the trial group uses `modification/1` and the control group `modification/2`, other groups can be added on your choice.\nEach folder should at least include the styles.css and script.js file as the app references them by name.\n\nThe first part of the javascript indicates the version which will be send to the app. For the proof of concept study a following concept was used:\n```\nVersion 1 = Group 1 Week 1\nVersion 2 = Group 1 Week 2\nVersion 3 = Group 2 Week 1\n// ...\n```\nBut you can adapt this to your needs and only need to keep track of the association.\n\n### Migrations\nThis folder includes a SQL file for creating a initial database for tracking action which are received in the trackaction.\n\n### Config\nThe included json file needs to be adapted to your database configuration.\n\n## Session\nA session is defined by the time period between opening and closing the app, which were separate tracked event themselves. All events within this period belong to the corresponding user session. Within the session, the number of visits to certain pages and the cumulative duration of the stay on each page is stored. Although this results in a loss of information content, for example how long individual stays of certain pages were, this form of data is still sufficient to draw conclusions.\n\n## Any question?\nFeel free to contact me.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthemihel%2Fdesign-pattern-analysis-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthemihel%2Fdesign-pattern-analysis-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthemihel%2Fdesign-pattern-analysis-server/lists"}