{"id":13594710,"url":"https://github.com/KlausSchaefers/quant-ux","last_synced_at":"2025-04-09T07:33:51.215Z","repository":{"id":36998319,"uuid":"182806722","full_name":"KlausSchaefers/quant-ux","owner":"KlausSchaefers","description":"Quant-UX - Prototype, Test and Learn","archived":false,"fork":false,"pushed_at":"2025-03-30T19:39:54.000Z","size":169024,"stargazers_count":2111,"open_issues_count":107,"forks_count":220,"subscribers_count":44,"default_branch":"master","last_synced_at":"2025-04-02T05:01:35.679Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Vue","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/KlausSchaefers.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"code_of_conduct.md","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-04-22T14:38:56.000Z","updated_at":"2025-04-01T15:53:22.000Z","dependencies_parsed_at":"2024-06-22T21:29:46.186Z","dependency_job_id":"d5bdcfed-0e3d-48e0-ad5a-8b6d6bfcdd74","html_url":"https://github.com/KlausSchaefers/quant-ux","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/KlausSchaefers%2Fquant-ux","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KlausSchaefers%2Fquant-ux/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KlausSchaefers%2Fquant-ux/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KlausSchaefers%2Fquant-ux/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KlausSchaefers","download_url":"https://codeload.github.com/KlausSchaefers/quant-ux/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247987181,"owners_count":21028891,"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":"2024-08-01T16:01:38.108Z","updated_at":"2025-04-09T07:33:51.207Z","avatar_url":"https://github.com/KlausSchaefers.png","language":"Vue","funding_links":[],"categories":["Vue","置顶"],"sub_categories":["1、AI应用生态"],"readme":"[![Docker Image Build and Push to Dockerhub - CI/CD](https://github.com/KlausSchaefers/quant-ux/actions/workflows/docker.yml/badge.svg)](https://github.com/KlausSchaefers/quant-ux/actions/workflows/docker.yml)\n\n# Quant-UX - Prototype, Test and Learn\n\nQuant UX is a research, usability and prototyping tool to quickly test your designs and get data driven insights. \nThis repo contains the front end. You can find a working demo at https://quant-ux.com/#/\n\n![Alt text](docs/release.png?raw=true \"Quant-UX preview\")\n\n## Develpment setup\n### Prerequisite\n```\nnpm install\n```\n\n\n### Running Locally on the Host Machine\n\n#### Compiles and hot-reloads for development\n```\nnpm run serve\n```\n\n#### Compiles and minifies for production\n```\nnpm run build\n```\n\n#### Run your unit tests\n```\nnpm run test:unit\n```\n\n#### Lints and fixes files\n```\nnpm run lint\n```\n\n### Developing inside a Docker Container\nIf you wish to develop by running the service exclusively through Docker, you can build a development image using:\n```bash\nmake build-dev\n```\nThis will create a Docker Image tagged under `quant-ux`. You can then replace the `klausenschaefersinho/quant-ux` inside your docker-compose file with the newly build `quant-ux` image. Don't forget to mount the source code after replacing the image.\n\nIf you're using the provided `docker/docker-compose.yml`, you can simply add the following volume mount to the qux-fe service:\n```yml\n    volumes:\n      - ../src:/home/node/src\n```\n\nYou can then make use of the following Makefile rules for quick docker environment setup and teardown:\n```bash\n# docker compose up - targets docker/docker-compose.yml\nmake up\n\n# docker compose down - targets docker/docker-compose.yml\nmake down\n```\n\n# Installation\n\nThe easiest way to get your own installation up and running is using the prebuild Docker images by [Brian McGonagill](https://github.com/bmcgonag).  You can find the repo and instructions at https://github.com/bmcgonag/quant-ux-docker/\n\n\n## Manual Installation\n\nQuant-UX has two components. A front-end (this package) and a backend (qux-java). The front-end needs Node.js (\u003e 12) installed. The backend needs a Mongo DB, a Mail Server (SMTP) and Java (\u003e 1.8). The front-end comes with it's own mini web server, which also include a proxy that redirects all request to the correct backend.\n\n## Docker\n\nThe easiest way to get your own Quant-UX installation running is using the Docker images. \n\n1) Create a docker compose file (`docker-compose.yaml`) and set the environment variables.\n\n```yaml\nversion: '3'\n\nservices:\n  mongo:\n    restart: always\n    container_name: quant-ux-mongo\n    image: mongo\n    volumes:\n      - ./data:/data/db        # pth for the data to be stored and kept on your host machine is on the left side of the \":\"\n  qux-fe:\n    restart: always\n    container_name: quant-ux-frontend\n    image: klausenschaefersinho/quant-ux\n    environment:\n      - QUX_PROXY_URL=http://quant-ux-backend:8080        # this is the path the front end uses to talk tot he backend\n      - QUX_AUTH=qux\n      - QUX_KEYCLOAK_REALM=\n      - QUX_KEYCLOAK_CLIENT=\n      - QUX_KEYCLOAK_URL=\n      - QUX_WS_URL=ws://127.0.0.1:8086        # change to where the websocket server is deployed for external access\n    links:\n      - mongo\n      - qux-be\n    ports:\n      - 8082:8082        # change the left side port if your host machine already has 8082 in use\n    depends_on:\n      - qux-be\n  qux-be:\n    restart: always\n    container_name: quant-ux-backend\n    image: klausenschaefersinho/quant-ux-backend\n    volumes:\n      - ./quant-ux-data:/app-data\n    environment:\n      - QUX_HTTP_HOST=http://quant-ux-frontend:8082   # this is the URL included in the mails, e.g. password resets\n      - QUX_HTTP_PORT=8080  # This is the port the backend will use\n      - QUX_MONGO_DB_NAME=quantux  # the database / collection name in mongodb\n      - QUX_MONGO_TABLE_PREFIX=quantux  # table / document prefix in mongodb\n      - QUX_MONGO_CONNECTION_STRING=mongodb://quant-ux-mongo:27017 # this assumes your mongodb container will be called \"quant-ux-mongo\" in the docker-compose file\n      - QUX_MAIL_USER=mail_admin@example.com        # this should be your smtp email user\n      - QUX_MAIL_PASSWORD=sTr0ngPa55w0Rd        # this should be your smtp email password\n      - QUX_MAIL_HOST=mail.example.com        # this should be your smtp host address\n      - QUX_JWT_PASSWORD=some-long-string-of-mix-case-chars-and-nums        # you should change this to a real JWT secret\n      - QUX_IMAGE_FOLDER_USER=/app-data/qux-images        # this folder should mapped in the volume\n      - QUX_IMAGE_FOLDER_APPS=/app-data/qux-image-apps        # this folder should mapped in the volume\n      - TZ=America/Chicago        # change to your timezone\n      - QUX_AUTH_SERVICE=qux\n      - QUX_KEYCLOAK_SERVER= # just the keycloak host \u0026 port\n      - QUX_KEYCLOAK_REALM=\n      - QUX_USER_ALLOW_SIGNUP=true # set the false to not allow users to signup\n      - QUX_USER_ALLOWED_DOMAINS=* # comma separated list of domains, e.g. 'my-server.com' or '*' for all\n    depends_on:\n      - mongo\n  qux-ws:\n    restart: always\n    container_name: quant-ux-websocket-server\n    image: klausenschaefersinho/quant-ux-websocket\n    environment:\n      - QUX_SERVER=http://quant-ux-backend:8080/\n      - QUX_SERVER_PORT=8086\n    ports:\n      - 8086:8086\n    links:\n      - qux-be\n    depends_on:\n      - qux-be\n\n```\n\nMake sure to update `QUX_JWT_PASSWORD` the ENV variable to make sure your installation is secure.\nUpdate `QUX_HTTP_HOST`, `QUX_MAIL_USER`, `QUX_MAIL_PASSWORD` and `QUX_MAIL_HOST` to sure correct mail handling\n\n\n2) Start the containers with the following command\n\n```bash\ndocker compose up\n```\n\n## One-Click deployment\n\n### Elestio\nYou can deploy an instance of Quant UX with few clicks and minimal configuration on cloud service provider of your choice.\n \n[![Deploy on Elestio](https://elest.io/images/logos/deploy-to-elestio-btn.png)](https://elest.io/open-source/quant-ux)\n\n### RepoCloud.io\nYou can deploy an instance of Quant UX with one click on RepoCloud.\n \n[![Deploy](https://d16t0pc4846x52.cloudfront.net/deploylobe.svg)](https://repocloud.io/details/?app_id=302)\n\n## Kubernets\n\nYou can find a kubernets configuration here https://github.com/engmsilva/quant-ux-k8s/tree/master/k8s\n\n### Backend\n\n- Install Mongo DB (\u003e 4.4)\n\n- Install Java (1.8)\n\n- Checkout the backend\n\n```\ngit clone https://github.com/KlausSchaefers/qux-java.git\n```\n\n- This contains already a compiled version of the backend in the release folder\n\n- Edit the matc.conf file to setup the correct mongo and mails server details. More details can be found here: https://github.com/KlausSchaefers/qux-java\n\n- Start the server, or install as a service in Linux. \n\n```\njava -jar release/matc.jar -Xmx2g -conf matc.conf -instances 1\n```\n\n\n### Front-end\n\n- Install Node.js (\u003e 12)\n\n- Clone repo\n\n```\ngit clone https://github.com/KlausSchaefers/quant-ux.git\n```\n\n- Install all dependecies:\n\n```\nnpm install\n```\n\n- Build \n```\nnpm run build\n```\n\n### Config front-end\n- Set the proxy server url as an ENV variable\n\n```\nexport QUX_PROXY_URL=https://your.quant-ux.server.com // backend host\n\nexport QUX_WS_URL= wss.quant-ux.server.com // web socket server\n\n```\n\n- Start\n```\nnode server/start.js\n```\n\n### Reverse Proxy\n\nNow you should have a running system. It is not secure yet. The best is to put both behind a NGINX reverse proxy, which handles SSL.\n\n- https://www.scaleway.com/en/docs/tutorials/nginx-reverse-proxy/\n\nYou can use https://letsencrypt.org/ to create SSL certificates\n\n\n\n\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FKlausSchaefers%2Fquant-ux","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FKlausSchaefers%2Fquant-ux","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FKlausSchaefers%2Fquant-ux/lists"}