{"id":28358982,"url":"https://github.com/quickcorp/qcobjects-new-app","last_synced_at":"2025-06-13T06:32:36.797Z","repository":{"id":65478839,"uuid":"302519279","full_name":"QuickCorp/qcobjects-new-app","owner":"QuickCorp","description":"The Official Quick Start App Template for QCObjects Framework","archived":false,"fork":false,"pushed_at":"2025-03-31T00:50:38.000Z","size":2846,"stargazers_count":1,"open_issues_count":4,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-04T14:44:37.578Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/QuickCorp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","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},"funding":{"github":["jeanmachuca"],"patreon":"qcobjects","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":["http://sponsorsignup.qcobjects.dev/"]}},"created_at":"2020-10-09T03:08:19.000Z","updated_at":"2024-08-03T00:39:07.000Z","dependencies_parsed_at":"2024-06-04T12:51:51.681Z","dependency_job_id":null,"html_url":"https://github.com/QuickCorp/qcobjects-new-app","commit_stats":null,"previous_names":[],"tags_count":117,"template":true,"template_full_name":null,"purl":"pkg:github/QuickCorp/qcobjects-new-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QuickCorp%2Fqcobjects-new-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QuickCorp%2Fqcobjects-new-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QuickCorp%2Fqcobjects-new-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QuickCorp%2Fqcobjects-new-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/QuickCorp","download_url":"https://codeload.github.com/QuickCorp/qcobjects-new-app/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QuickCorp%2Fqcobjects-new-app/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259594442,"owners_count":22881660,"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":"2025-05-28T09:08:37.164Z","updated_at":"2025-06-13T06:32:36.779Z","avatar_url":"https://github.com/QuickCorp.png","language":"CSS","funding_links":["https://github.com/sponsors/jeanmachuca","https://patreon.com/qcobjects","http://sponsorsignup.qcobjects.dev/"],"categories":[],"sub_categories":[],"readme":"# QCObjects New App\n\nThis is a demo of a QCObjects based front-end Progressive Web App\n\n# Deploy to Netlify\n\n[![Deploy on Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/QuickCorp/qcobjects-new-app)\n\n\n# Open Live Demo\n\nYou can view the result of this project opening [QCObjects Demo App](https://newapp.qcobjects.dev) on any browser.\n\n# Project Structure\n\nThe following is the project structure of a Progressive Web App made in QCObjects\n\n```shell\n.\n├── backend\n├── spec\n│   └── support\n└── src\n    ├── css\n    │   ├── components\n    │   │   └── hero\n    │   ├── desktop\n    │   │   └── components\n    │   ├── mobile\n    │   │   └── components\n    │   └── theme\n    │       ├── basic\n    │       ├── cyan\n    │       ├── redlight\n    │       └── xtra\n    ├── img\n    │   ├── icons\n    │   └── screenshots\n    ├── js\n    │   └── packages\n    └── templates\n        └── components\n            ├── hero\n            └── pages\n```\n\n# Entry point\n\nIn index.html file, you will find this script:\n\n```javascript\n\u003cscript type=\"module\" src=\"js/init.js\"\u003e\u003c/script\u003e\n```\n\nIn the init.js file, you will find the main front-end settings:\n\n```javascript\nCONFIG.set(\"sourceType\", \"module\");\nCONFIG.set(\"relativeImportPath\", \"js/packages/\");\nCONFIG.set(\"componentsBasePath\", \"templates/components/\");\nCONFIG.set(\"delayForReady\", 1); // delay to wait before executing the first ready event, it includes imports\nCONFIG.set(\"preserveComponentBodyTag\", false); // don't use \u003ccomponentBody\u003e\u003c/componentBody\u003e tag\nCONFIG.set(\"useConfigService\", false); // Load settings from config.json\nCONFIG.set(\"routingWay\",\"hash\"); // routingWay possible values are 'hash','pathname','search'\nCONFIG.set(\"useLocalSDK\",true); // on the frontend side you can chose whether to load the SDK from sdk.qcobjects.dev or from your local website\nCONFIG.set(\"tplextension\",\"tpl.html\"); // this is the file extension to locate the template files (if component.name = 'main' then template name will be main.tpl.html)\nCONFIG.set(\"asynchronousImportsLoad\",true); // it is recommended to load the Import declarations in an asyncronous way\nCONFIG.set(\"serviceWorkerURI\",\"/sw.js\"); //QCObjects will register an launch this service worker automatically to work offline\n\n```\n\n# Enable QCObjects from local server\n\nIn package.json file, in scripts section, you will find some common commands that need to be present in every project that works with QCObjects.\n\n# Run tests\n\nThe \"test\" script uses the \"eslint\" linter and the \"jasmine\" framework to check the code for errors and run tests. If any errors are found, the script tries to fix them automatically. If all tests pass, the script exits with code 0.\n\n```shell\n# Executes the tests of the project (see spec and coverage folders)\nnpm run test\n```\n\n# Run sync\n\nThe \"sync\" script stages and commits any changes made to the codebase. This is useful for keeping track of changes and making sure everything is up-to-date.\n\n```shell\n# Syncronizes the version between npm and git\nnpm run sync\n```\n\n# Run preversion\n\nThe \"preversion\" script runs \"npm i --upgrade\" and \"npm test\" before a new version of the package is published. This ensures that the latest version of the code is tested and ready to be released.\n\n```shell\n# This command is executed before a npm version is changed\nnpm run preversion\n```\n\n# Run postversion\n\nThe \"postversion\" script pushes the changes to the codebase and tags the new version. This helps keep track of the changes made to the code over time.\n\n```shell\n# This command is executed after a npm version is changed\nnpm run postversion\n```\n\n# Run coverage\n\nThe \"coverage\" script generates a code coverage report using the \"nyc\" library. This is useful for understanding how much of the code is being tested and where there may be gaps in test coverage.\n\n```shell\n# You can run this command to dispatch the coverage scripts (see coverage folder)\nnpm run coverage\n```\n\n# Setup ENV Variables\n\n```sh\n# Env file .env\nexport ENGINE_NAME=sqlite3\nexport DATABASE_NAME=admin.db\n# Example: admin\nexport DEFAULT_USER=admin\n# Example: admin123\nexport DEFAULT_PASSWORD=admin123\nexport MICROSOFT_API_KEY=\u003cGet the key from Azure Platform\u003e\nexport GOOGLE_API_KEY=\u003cGet the key from GCP\u003e\n```\n\n# Run start\n\nThe \"start\" script runs the \"createcert\" and \"serve\" scripts. This is useful for quickly launching the app and getting started with development.\n\n```shell\n# Start the QCObjects Server\nnpm run start\n```\n\nThe \"serve\" and \"server\" scripts launch the app using the \"qcobjects\" library. This is the main tool used in the development process.\n\n```shell\n# An alias to start the QCObjects Server\nnpm run serve\n```\n\n```shell\n# An alias to start the QCObjects Server\nnpm run server\n```\n\n# Run start DEV\n\nThe \"start:dev\" script will build, publish and start the server using npm-watch.\n\n```shell\n# Start the QCObjects Server\nnpm run start:dev\n```\n\n\n# Run QCObjects Collab\n\nThe \"collab\" script launches the collaborative coding tool \"qcobjects-collab\". This is useful for working with other developers on the same codebase.\n\n```shell\n# This command will open a shell with QCObjects Collab Tool\nnpm run collab\n```\n\n# Run QCObjects Shell\n\nThe \"shell\" script launches a shell terminal using the \"qcobjects\" library. This is useful for running commands and making changes to the codebase.\n\n\n```shell\n# This command will open a shell with QCObjects running\nnpm run shell\n```\n\n# Generate SSL certificates\n\nThe \"createcert\" script creates a certificate used for HTTPS connections. This is important for security reasons.\nIt uses letsencrypt certificate or openssl depending on settings. Default is openssl.\n\n```shell\n# This command will create a certificate for ssl\nnpm run createcert\n```\n\n# Dispatch a new version of your app\n\nThe \"v-patch\", \"v-minor\", and \"v-major\" scripts increment the version number of the package based on patch, minor or major changes. This is useful for keeping track of the changes made to the code over time.\n\n```shell\nnpm run v-patch -m \"message of commit\" --git --npm\n```\n\n# Use the CLI with local dependencies\n\nInstall QCObjects CLI in local in order to use local dependencies and local settings of your project.\n\n```shell\n# This command will install QCObjects CLI in your local project\nnpm i --save-dev qcobjects-cli\n```\n\nThe \"qcobjects\" script launches the \"qcobjects\" library command-line interface. This is the main tool used in the development process.\n\n```shell\n# This command will execute QCObjects CLI in your local project and show the version installed\nnpm run qcobjects -- --version\n```\n\n```shell\n# To learn more about CLI commands, you can use the --help option\nnpm run qcobjects -- --help\n```\n\n```shell\n# To learn more about CLI commands, you can use the --help option\nnpm run qcobjects -- create --help\n```\n\n# Launch a built-in HTTP Server \n\nThe \"http-server\" script starts an HTTP server using the \"qcobjects-cli\" library. This is useful for testing the app in a local environment.\n\n```shell\nnpm run http-server\n```\n\n# Publish your application to Google App Engine\n\nThe \"gae-server\" script starts a Google App Engine HTTP server using the \"qcobjects-cli\" library. This is useful for deploying the app to production.\n\nUse this command in the settings of your GAE Application instead of \"npm start\"\n\n```shell\nnpm run gae-server\n```\n\n# Build your application from TypeScript to JavaScript\n\nThe \"build:ts\" script compiles the TypeScript code and runs the linter to fix any issues. This is useful for ensuring that the code is properly formatted and free of errors.\n\nThe \"build:ts-types\" script generates TypeScript type declarations for the codebase. This is useful for making sure that the code is properly typed and free of errors.\n\n\n```shell\n# This command will be implemented in the future for TypeScript\nnpm run build\n```\n\n# Publish your application to test in local environment\n\nThe \"publish:local\" script publishes the package locally using the \"qcobjects\" library. This is useful for testing the app in a local environment.\n\n# Prettify your code before commit to git\n\nFinally, the \"prepare\" script installs the \"husky\" library, which is used to manage Git hooks. This is useful for automating tasks in the development process.\n\n# Docker installation\n\nTo run this app with docker, execute the following command:\n\n```shell\ndocker run -p 8080:8080 -p 8443:8443 --name qcobjects-newapp -d qcobjects/qcobjects-newapp\n```\n\nThen go to [https://127.0.0.1:8443/](https://127.0.0.1:8443/)\n\n# Configuration Instructions\n\nTo properly configure the application, please refer to the [`CONFIG.md`](CONFIG.md) file for detailed information on each configuration field. Follow these steps:\n\n1. **Open the configuration file**: The main configuration file is `config.json`. QCObjects will prioritize `config.json` if it is present. If `config.json` is not available, it will look for `config.yaml` or `config.yml`. If both JSON and YAML files are present, the YAML file will be considered, and the other files will be dismissed.\n2. **Refer to `CONFIG.md`**: For a detailed explanation of each field in the configuration file, consult the [`CONFIG.md`](CONFIG.md) file. This document provides descriptions, possible values, and examples for each configuration option.\n3. **Update the settings**: Modify the fields in the configuration file as per your requirements, using the guidance provided in [`CONFIG.md`](CONFIG.md).\n4. **Save your changes**: Ensure that all changes are saved before running the application.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquickcorp%2Fqcobjects-new-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fquickcorp%2Fqcobjects-new-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquickcorp%2Fqcobjects-new-app/lists"}