{"id":16618462,"url":"https://github.com/andreasonny83/friday-tech-talks-pwa","last_synced_at":"2026-04-28T16:35:24.621Z","repository":{"id":79086459,"uuid":"120783426","full_name":"andreasonny83/friday-tech-talks-pwa","owner":"andreasonny83","description":null,"archived":false,"fork":false,"pushed_at":"2018-02-20T16:09:36.000Z","size":406,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-11T05:44:20.099Z","etag":null,"topics":["angular","cypress","firebase","pwa"],"latest_commit_sha":null,"homepage":null,"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/andreasonny83.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}},"created_at":"2018-02-08T16:01:20.000Z","updated_at":"2020-10-03T14:28:08.000Z","dependencies_parsed_at":"2023-05-31T13:45:27.231Z","dependency_job_id":null,"html_url":"https://github.com/andreasonny83/friday-tech-talks-pwa","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/andreasonny83/friday-tech-talks-pwa","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreasonny83%2Ffriday-tech-talks-pwa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreasonny83%2Ffriday-tech-talks-pwa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreasonny83%2Ffriday-tech-talks-pwa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreasonny83%2Ffriday-tech-talks-pwa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andreasonny83","download_url":"https://codeload.github.com/andreasonny83/friday-tech-talks-pwa/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreasonny83%2Ffriday-tech-talks-pwa/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32390049,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T14:34:11.604Z","status":"ssl_error","status_checked_at":"2026-04-28T14:32:37.009Z","response_time":56,"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":["angular","cypress","firebase","pwa"],"created_at":"2024-10-12T02:20:07.498Z","updated_at":"2026-04-28T16:35:24.577Z","avatar_url":"https://github.com/andreasonny83.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Friday Tech Talk PWA\n\n[![CircleCI](https://circleci.com/gh/andreasonny83/friday-tech-talks-pwa/tree/master.svg?style=svg)](https://circleci.com/gh/andreasonny83/friday-tech-talks-pwa/tree/master)\n\nThis project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.6.7.\n- [Friday Tech Talk PWA](#friday-tech-talk-pwa)\n  - [Setup](#setup)\n    - [Configure the Environment](#configure-the-environment)\n  - [Development server](#development-server)\n  - [Build](#build)\n  - [Deployment](#deployment)\n    - [Deploying from your local machine](#deploying-from-your-local-machine)\n    - [Continuous Deployment](#continuous-deployment)\n  - [Multiple environments](#multiple-environments)\n  - [Firebase setup for multiple projects](#firebase-setup-for-multiple-projects)\n  - [Running unit tests](#running-unit-tests)\n  - [Running end-to-end tests](#running-end-to-end-tests)\n  - [Contributing](#contributing)\n  - [License](#license)\n\n## Setup\n\nA Firebase account is required for deploying the app and using the real-time\ndatabase.\n\nCreate a free Firebase account if you don't have one already, then set up a new\nproject from [console.firebase.google.com](https://console.firebase.google.com/).\n\nOnce done run `npm run firebase:login` to login into your Firebase account,\nthen `npm run firebase:add` in your terminal from inside this\nproject's root directory and select your new project from the list and name it `production`.\n\nNavigate to your [Firebase console](https://console.firebase.google.com/),\nselect your project from the list - then enter inside the RealTime Database tab.\nClick on the drop-down menu on the top right - then select `Import JSON` and\nselect the `db-setup.json` file present in this repo's main directory.\n\n### Configure the Environment\n\nYour Firebase details need to be stored in our app - rename the `.env.sample` file\nto become `.env` and replace the Firebase variables according to your\nnew prject's configuration.\n\n```sh\n$ npm run firebase:info\n```\n\nRun this command in your terminal to retreive all the details you need.\n\nOne last step is running\n\n```sh\n$ npm run config\n```\n\nThis will generate a `firebase.ts` file inside your `src/enviroment` folder\ncontaining your local Firebase configuration.\n\n## Development server\n\nRun `nmp start` for a dev server.\nNavigate to `http://localhost:4200/`.\nThe app will automatically reload if you change any of the source files.\n\n## Build\n\nRun `nmp run build` to build the project.\nThe build artifacts will be stored in the `dist/` directory.\n\n## Deployment\n\nBefore deploying this app - you will need to have a Firebase configuration\nfile in this project.\n\n```sh\n$ npm run config\n```\n\nRead the [Configure the Environment](#configure-the-environment) for more information\nabout this task.\n\nIf you want to deploy this app from a CI/CD tool, you can set you automation\ntool to run `npm run deploy:cd` task. Read more in the\n[Continuous Deployment](#continuous-deployment) section.\n\n### Deploying from your local machine\n\n```sh\n$ npm run firebase:deploy\n```\n\nThis will deploy your code live and set up the database rules according\nto the `database.rules.json` file present in this project.\n\n### Continuous Deployment\n\n```sh\n$ npm run deploy:cd\n```\n\nThis task will:\n\n* Generate a Firebase configuration file according to your environment variables configuration\n* Generate a distribution version of the app\n* Deploy the app using `firebase-tool`\n\nIf you want to automate the deployment process you will need to store your\nFirebase configuration inside your automation tool's environment variables.\n\nYou will also need to generate a firebase:ci token to be store inside a\n`FIREBASE_TOKEN` environment variable.\n\n```sh\n$ npm run firebase:login:ci\n```\n\nTo get the token on your local machine.\n\nThis project already contains an automatic deployment configuration using CircleCI.\nYou can see our configuration inside the `.circleci` folder.\n\n## Multiple environments\n\nYou may want to use different Firebase projects for running the automated E2E\ntests during the deployment pipeline.\nThis project already supports a Staging environmet implementation out-of-the-box.\n\n## Firebase setup for multiple projects\n\nTo link a new Firebasse project to this app, make sure you have already configured\nyour production project with the instructions listed in the [Setup](#setup) section.\n\nThen create add a new Staging project with the following steps:\n\n1. Run `npm run firebase:add` to add a new Firebase project\n1. Select your staging Firebase project from the list\n1. Name it `staging`\n\nNow your local `` file should looks like the following\n\n```json\n{\n  \"projects\": {\n    \"production\": \"your-production-firebase-project\",\n    \"staging\": \"your-staging-firebase-project\"\n  }\n}\n```\n\nNow, you need to generate a new `firebase.ts` file to be used in your staging\nproject.\nTo do that, just run `npm run config:staging`.\n\nNow, you can switch between the 2 project with `npm run firebase:use:production`\nand `npm run firebase:use:staging`.\n\n## Running unit tests\n\nRun `nmp test` to execute the unit tests via [Karma](https://karma-runner.github.io).\n\n## Running end-to-end tests\n\nRun `npm run e2e` to execute the end-to-end tests via [Cypress.io](https://www.cypress.io/).\n\n## Contributing\n\nPlease read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.\n\n1.  Fork it!\n1.  Create your feature branch: `git checkout -b my-new-feature`\n1.  Add your changes: `git add .`\n1.  Commit your changes: `git commit -am 'Add some feature'`\n1.  Push to the branch: `git push origin my-new-feature`\n1.  Submit a pull request :sunglasses:\n\n## License\n\n[MIT License](https://andreasonny.mit-license.org/2018) © Andrea SonnY\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreasonny83%2Ffriday-tech-talks-pwa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandreasonny83%2Ffriday-tech-talks-pwa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreasonny83%2Ffriday-tech-talks-pwa/lists"}