{"id":17527120,"url":"https://github.com/nuclia/frontend","last_synced_at":"2025-04-05T02:04:50.490Z","repository":{"id":36964856,"uuid":"485817663","full_name":"nuclia/frontend","owner":"nuclia","description":"Nuclia RAG-as-a-Service, automatically indexes files and documents, from internal and external sources, to fuel diverse company use cases with LLMs. ","archived":false,"fork":false,"pushed_at":"2025-03-11T22:16:48.000Z","size":36668,"stargazers_count":47,"open_issues_count":2,"forks_count":10,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-03-12T06:01:46.078Z","etag":null,"topics":["angular","electron","front-end","low-code","react","svelte"],"latest_commit_sha":null,"homepage":"https://nuclia.com","language":"TypeScript","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/nuclia.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-26T14:18:27.000Z","updated_at":"2025-03-11T22:16:51.000Z","dependencies_parsed_at":"2023-09-26T15:13:36.861Z","dependency_job_id":"d0d939be-c288-4b73-b099-17683ce4be67","html_url":"https://github.com/nuclia/frontend","commit_stats":{"total_commits":1732,"total_committers":25,"mean_commits":69.28,"dds":0.5837182448036952,"last_synced_commit":"9c69106d515c20391b00e83ec995c20b6d2e43de"},"previous_names":[],"tags_count":152,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nuclia%2Ffrontend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nuclia%2Ffrontend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nuclia%2Ffrontend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nuclia%2Ffrontend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nuclia","download_url":"https://codeload.github.com/nuclia/frontend/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247276163,"owners_count":20912288,"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":["angular","electron","front-end","low-code","react","svelte"],"created_at":"2024-10-20T15:03:11.567Z","updated_at":"2025-04-05T02:04:50.444Z","avatar_url":"https://github.com/nuclia.png","language":"TypeScript","readme":"![CI](https://github.com/nuclia/frontend/actions/workflows/deploy.yml/badge.svg)\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fnuclia%2Ffrontend.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fnuclia%2Ffrontend?ref=badge_shield)\n\n# Nuclia frontend apps and libraries\n\n## Table of content\n\n- [Before Installation](#before-installation)\n- [Installation](#installation)\n- [Dashboard](#dashboard)\n- [Widget](#widget)\n- [SDK](#sdk)\n- [Sistema](#sistema)\n- [CI/CD Deployment](#cicd-deployment)\n- [Maintenance page](#maintenance-page)\n\n---\n\n## Prerequisites\n\nFirst you need to have NVM, NODE and YARN installed.\n\nTo install [nvm](https://github.com/nvm-sh/nvm#installing-and-updating), run:\n\n```\ncurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash\n```\n\nor\n\n```\nwget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash\n```\n\nTo check if it was installed properly, close and reopen the terminal and run `command -v nvm` and should return `nvm`. In case there is something else going on, troubleshoot with [this documentation](https://github.com/nvm-sh/nvm#troubleshooting-on-macos). To see all the commands, simply run `nvm`.\n\nTo install the latest stable version of [node](https://nodejs.org/en), run:\n\n```\nnvm install --lts\n```\n\nTo check if node and npm is properly installed, run: `node --version` and `npm --version`.\n\u003csub\u003eAny problems should be resolved with the [nvm documentation](https://github.com/nvm-sh/nvm#readme).\u003c/sub\u003e\n\nTo install [yarn](https://classic.yarnpkg.com/lang/en/docs/install/#mac-stable), run:\n\n```\nnpm install --global yarn\n```\n\nCheck if Yarn is installed by running: `yarn --version`.\n\n#### Note\n\nIn the rest of this documentation, we use commands like `nx` and `missdev`. Those can be find in `node_modules/.bin` folder. To use them directly you can add `node_modules/.bin` folder to your command line path.\nYou can also install `nx` globally:\n\n```\nnpm install -g nx\n```\n\n## Dependencies installation\n\n```\nyarn\n```\n\nPastanaga-angular installation must be done through [missdev](https://github.com/collective/mrs-developer) so `sistema-demo` can run:\n\n```\nyarn missdev\n```\n\nIf it fails for any reason, you can try to clone Pastanaga manually:\n\n```\ncd libs\ngit clone git@github.com:plone/pastanaga-angular.git\n```\n\n## Dashboard\n\nStart by creating an account with an email and password (as SSO doesn't work locally).\n\n- for Nuclia employees:\n\n  In `apps/dashboard/src/environments_config`, create a file `local-stage/app-config.json` with the correct configuration to use the stage server. \u003csub\u003eAsk a supervisor to get a proper configuration.\u003c/sub\u003e\n\n  Then you can run the dashboard locally and use the credential created previously to log in:\n\n  ```\n  nx serve dashboard\n  ```\n\n- for external developers:\n\n  You can use the production server with your real account by running:\n\n  ```\n  nx serve dashboard -c local-prod\n  ```\n\n  Note: the login page will automatically redirect you to the https://nuclia.cloud so you can login and will redirect back to http://localhost:4200 with the auth token.\n\n## Widget\n\n[Documentation](https://docs.nuclia.dev/docs/rag/advanced/widget/features)\n\nIn the demo, the knowledge box id is hardcoded in `apps/search-widget-demo/src/App.svelte`.\nBefore launching the demo, replace this id by the one for your own **public** knowledge box.\n\nRun the demo:\n\n```\nnx serve search-widget-demo\n```\n\nBuild the widget:\n\n```\nnx build search-widget\n```\n\nWhen you have some local changes to the widget you'd like to test on the dashboard, you need to:\n\n- build the widget\n- copy the resulting `nuclia-widget.umd.js` to `assets` folder of dashboard app\n- in `app.init.service.ts`, replace the line `injectWidget(config.backend.cdn);` to `injectWidget('/assets');`\n\n## SDK\n\n[Documentation](https://docs.nuclia.dev/docs/develop/js-sdk/)\n\n## Sistema\n\nSistema is Nuclia's design system. It is based on [Pastanaga](https://github.com/plone/pastanaga-angular).\n\nThe demo is available at [https://nuclia.github.io/frontend](https://nuclia.github.io/frontend).\n\nTo update the glyphs sprite:\n\n- add/remove/edit glyphs in `libs/sistema/glyphs` folder\n- run `update_icons` script:\n\n```shell\n./libs/sistema/scripts/update_icons.sh\n```\n\n## CI/CD Deployment\n\n### Scope\n\nCI/CD deployment does not cover:\n\n- the SDK as it is released in the NPM registry;\n- the NucliaDB admin app as it is released in the Python registry.\n\nIt covers:\n\n- the dashboard (not active at the time I am writing this doc, but will be soon);\n- the widget (not active at the time I am writing this doc, but will be soon);\n- the manager app\n\n### Deploying to stage\n\nWhen merging a PR, if it impacts the manager app, it is built and our `deploy_manager` job (in our `deploy` GitHub Action) will update Helm and then trigger a Repository Dispatch event to the `frontend_deploy` repo.\n\nThat's how the manager is deployed to **stage**.\n\nYou can see the deployment on [Stage ArgoCD](http://stashify.argocd.nuclia.com/applications/argocd/manager?view=tree\u0026conditions=false\u0026resource=).\n\n### Promoting to production\n\nOnce the app is deployed on stage, you can promote it to production by going to https://github.com/nuclia/stage/actions/workflows/promote-to-production.yaml and clicking on \"Run workflow\".\nThen, choose `app` or `manager` component in the list (keep the default values for the rest) and click on \"Run workflow\".\n\nIt triggers the prod promotion, and it can be monitored on [http://europe1.argocd.nuclia.com/applications/app?resource=](http://europe1.argocd.nuclia.com/applications/app?resource=) or [http://europe1.argocd.nuclia.com/applications/argocd/manager?view=tree\u0026resource=](http://europe1.argocd.nuclia.com/applications/argocd/manager?view=tree\u0026resource=).\n\nTo deploy the widget, use [https://github.com/nuclia/frontend_deploy/actions/workflows/cdn-sync.yaml](https://github.com/nuclia/frontend_deploy/actions/workflows/cdn-sync.yaml).\n\n### About ArgoCD\n\nArgoCD allows to monitor deployments and also to read the logs of the different pods.\n\n[Full documentation](https://github.com/nuclia/internal/blob/master/platform/cd-strategy.md)\n\n## Maintenance page\n\nThe maintenance page is in `./maintenance`.\nIt is deployed manually to stage using the following command:\n\n```sh\ngsutil cp -r ./maintenance gs://ncl-cdn-gcp-global-stage-1\n```\n\n\n## License\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fnuclia%2Ffrontend.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fnuclia%2Ffrontend?ref=badge_large)","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnuclia%2Ffrontend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnuclia%2Ffrontend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnuclia%2Ffrontend/lists"}