{"id":19478546,"url":"https://github.com/deomorxsy/vlusk-primer","last_synced_at":"2026-04-15T23:32:58.198Z","repository":{"id":210682720,"uuid":"725843130","full_name":"deomorxsy/vlusk-primer","owner":"deomorxsy","description":"[ON-HOLD] fullstack PoC monorepo for data visualization with Python/Flask and Node/Vue.js","archived":false,"fork":false,"pushed_at":"2025-09-26T05:33:11.000Z","size":676,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-18T23:02:28.976Z","etag":null,"topics":["flask","vue-js"],"latest_commit_sha":null,"homepage":"","language":"Python","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/deomorxsy.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-12-01T01:33:27.000Z","updated_at":"2024-05-07T03:20:35.000Z","dependencies_parsed_at":"2023-12-27T03:21:48.224Z","dependency_job_id":"91af4aa8-f45b-4462-91fb-2381d87d0240","html_url":"https://github.com/deomorxsy/vlusk-primer","commit_stats":null,"previous_names":["deomorxsy/florm","deomorxsy/vlusk-primer"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/deomorxsy/vlusk-primer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deomorxsy%2Fvlusk-primer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deomorxsy%2Fvlusk-primer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deomorxsy%2Fvlusk-primer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deomorxsy%2Fvlusk-primer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deomorxsy","download_url":"https://codeload.github.com/deomorxsy/vlusk-primer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deomorxsy%2Fvlusk-primer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31865067,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"ssl_error","status_checked_at":"2026-04-15T15:24:39.138Z","response_time":63,"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":["flask","vue-js"],"created_at":"2024-11-10T19:50:24.508Z","updated_at":"2026-04-15T23:32:58.077Z","avatar_url":"https://github.com/deomorxsy.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# vlusk-primer\n\u003e Simple fullstack and monorepo PoC for data visualization, using Python/Flask, Node/Vue.js and Postgres, deployed as containers handling backend, frontend and database. Test it locally with docker-compose/k3s, running the individual container images or via scripts.\n\ncontainer images at [hub]().\n\nFeaturing:\n- Backend:Python/Flask\n    - ~Session-Cookie Authentication: flask_login~\n    - PyJWT\n- Frontend: Node/Vue.js\n    - Build tooling: [Vite](https://vitejs.dev/guide/)\n    - HTTP requests: [Axios](https://axios-http.com/docs/intro)\n    - State Management: [pinia](https://pinia.vuejs.org/introduction.html)\n    - Validation: [vee-validate](https://vee-validate.logaretm.com/v4/), [yup](https://github.com/jquense/yup), “@vee-validate/yup”\n    - Routing: [vue-router](https://router.vuejs.org/)\n    - Visualization: [vue-chartjs](https://vue-chartjs.org/)\n- Database ORM: SQLAlchemy\n    - postgres for dataframe storage\n    - sqlite3 for session cache [?]\n\n\n\n## Frontend\n\u003e manually running the process\n\nScaffolding generated with create-vite@5.1.3:\n\n```sh\n; npm create vite@5.1.3 frontend/ -- --template vue-ts\n;\n; npm install vee-validate@4.12.5 yup@1.3.3 vue-router@4.2.5 vue-router@4.2.5 axios@1.6.7 pinia@2.1.7\n;\n; npm install -D '@types/node'\n;\n; npm run dev\n\n```\n## Database\n\u003e run it as a standalone container so instances of postgres aren't polluted\n\nRun the container process with the database\n```sh\npodman run -it -p=5432:5432 --name dbdrop -d \\\n    -e POSTGRES_USER=admin \\\n    -e POSTGRES_PASSWORD=Passw0rd \\\n    -v /mnt/ssd/dataStore/containers/database/pgad-pod/pgdata:/var/lib/postgresql/data:Z \\\n    docker.io/library/postgres:16.0\n```\n\nConnect psql to the process, create the schema and populate the database. The loop below reads all files under the database directory in alphanumeric order, so you can always tell that the reading respects precedence.\n```sh\n# Create schema with Raw SQL script then populate the database\n#psql -U admin -d database_name -f=file.sql\n\nfor f in *.sql;\ndo\n    psql -U admin -d dbdrop -f \"$f\"\ndone\n```\n\n\n## Backend\n\u003e manually running the process\n\nMake sure to set the virtualenv:\n```sh\n; git clone git@github.com:isi23drop/vlusk-primer.git\n; python3 -m venv venv\n```\n\nPrepare the environment:\n```sh\n; cd ./vlusk/backend/\n; source ../venv/bin/activate\n; pip3 install --upgrade pip\n; pip3 install -r ./requirements.txt\n\n```\n\nNow that all dependencies are installed, just run each process from a different terminal:\n\n1. database migration\n```sh\nflask --app app init-db\n```\n\n2. PS: now in flask 3.0 the FLASK_ENV is deprecated alongside the debug mode that goes back to the framework on the CLI call, hence the flag \"--debug\".\n```sh\ncd ./app/\nflask --debug run\n```\n\n# Deployments\n\n## Podman Service and DOCKER_HOST\n[compose](https://docs.docker.com/compose/) concentrates in orchestrating multiple containers in a single host. To do this with k8s, you would need kind, k3s (does not use virtualization) or similar. It was made to be compatible with other OCI runtimes, such as Podman, which was one of the first to enable rootless containers, and can be setup with compose using the Podman Service's systemd unit file for unix sockets.\n\nThe orchestration tool ```docker-compose``` supports Podman Service through the DOCKER_HOST environment variable. This makes it possible to run containers with podman but with the benefit of rootless.\n\nSource the [script](./scripts/podman-service-compose.sh) and run it to run compose with podman:\n\n```sh\n; source ./scripts/podman-service-compose.sh\n```\n\n\n## Running with the podman-compose script\n\n\n## Running with k8s\nKubernetes is a container orchestrator. To run this project on single host just like the Compose tool, you can use tools like kind or k3s (which don't use virtualization).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeomorxsy%2Fvlusk-primer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeomorxsy%2Fvlusk-primer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeomorxsy%2Fvlusk-primer/lists"}