{"id":18310043,"url":"https://github.com/wilsonsergio2500/fogo-cms","last_synced_at":"2026-05-10T19:09:35.452Z","repository":{"id":45263020,"uuid":"441567029","full_name":"wilsonsergio2500/fogo-cms","owner":"wilsonsergio2500","description":"A Headless CMS build on top of Angular and Firebase","archived":false,"fork":false,"pushed_at":"2022-02-27T19:06:55.000Z","size":2431,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-15T05:43:14.205Z","etag":null,"topics":["angular","angularfire","angularmaterial","blog","cms","firebase","firebase-auth","firebase-authentication","firebase-firestore","firebase-functions","flex-layout","headless-cms","ngx-formly","ngxs","single-page-app","spa"],"latest_commit_sha":null,"homepage":"https://fogo-cms.web.app/","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/wilsonsergio2500.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}},"created_at":"2021-12-24T22:49:28.000Z","updated_at":"2022-02-27T03:48:13.000Z","dependencies_parsed_at":"2022-09-21T09:02:46.570Z","dependency_job_id":null,"html_url":"https://github.com/wilsonsergio2500/fogo-cms","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/wilsonsergio2500%2Ffogo-cms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wilsonsergio2500%2Ffogo-cms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wilsonsergio2500%2Ffogo-cms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wilsonsergio2500%2Ffogo-cms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wilsonsergio2500","download_url":"https://codeload.github.com/wilsonsergio2500/fogo-cms/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248033349,"owners_count":21036776,"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","angularfire","angularmaterial","blog","cms","firebase","firebase-auth","firebase-authentication","firebase-firestore","firebase-functions","flex-layout","headless-cms","ngx-formly","ngxs","single-page-app","spa"],"created_at":"2024-11-05T16:13:04.552Z","updated_at":"2026-05-10T19:09:35.386Z","avatar_url":"https://github.com/wilsonsergio2500.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1\u003e\n🔥 Fogo Cms\n\u003c/h1\u003e\n\n[![Firebase Hosting](https://github.com/wilsonsergio2500/fogo-cms/actions/workflows/firebase-hosting-merge.yml/badge.svg)](https://github.com/wilsonsergio2500/fogo-cms/actions/workflows/firebase-hosting-merge.yml)\n[![Firebase PR workflow](https://github.com/wilsonsergio2500/fogo-cms/actions/workflows/firebase-hosting-pull-request.yml/badge.svg)](https://github.com/wilsonsergio2500/fogo-cms/actions/workflows/firebase-hosting-pull-request.yml)\n[![GitHub](https://img.shields.io/github/license/wilsonsergio2500/fogo-cms?style=flat-square)](https://github.com/wilsonsergio2500/fogo-cms/blob/main/LICENSE)\n[![npm](https://img.shields.io/badge/demo-online-brightgreen.svg)](https://fogo-cms.web.app/)\n\nThis project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 11.x\n\n## The Idea\nA responsive and simple to use Headless Content Management System (CMS) developed using dream team angular paradigms - Firebase, @ngxs, @angular/fire, @ngx-formly, @angular/flex-layout, @angular/material. The goal was to create a project that could be pivot into an MVP or a getting started.\n\n## The Demo\n👾 More Than Just Comic =\u003e https://fogo-cms.web.app/\n\nUser: editor@mtc.com\nPass: editor123\n\n\n## Prelude to Getting Started\nFogo is fire in portuguese. The name is not an incidental :blush:, Firebase is central ingridient of this project and as such the project utilizes items such as Firebase authorization via custom claims and Firebase functions. Given this requirement, you must utilize a Firebase account that would enable for this core services i.e Blaze Account.\n\nTo get started you will have to go thru the normal flow or setup that is part of the Firebase ecosystem.\n\n- Create a new Firebase Application\n- Enable Firebase Authentication\n- Enable Email/Password Provider\n- Enable Firestore Database\n- Enable Firebase Function\n- Enable Firebase Storage\n- Register a new Application on Firebase =\u003e Web\n\nAfter registering a new web application update your angular enviroment(s) file with your firebase values\n\n```javascript\nexport const environment = {\n    production: false,\n    firebase: {\n      apiKey: \"xxxxx\",\n      authDomain: \"xxxxx\",\n      projectId: \"xxxxxx\",\n      storageBucket: \"xxxxxx\",\n      messagingSenderId: \"xxxxx\",\n      appId: \"xxxxxx\"\n    }\n};\n```\n\nRoles and Authorization\n| Admin Views                         | blogger  | editor | admin | superuser\n| ------------------------------------|:--------:|:------:|:-----:| :--------:|\n| Posts and Blog Posts                | ✓ | |✓ |✓ |\n| Image Gallery                       |✓  | ✓| ✓ |✓ |\n| Pages                               |   | ✓| ✓ |✓ |\n| Navigation Creation                 |   | ✓| ✓ |✓ |\n| Manage Roles                        |   |   |   |✓ |\n\n### Create your superuser acount\n\nYou could add a few users to get started, enter the user information into the file **./admin-tasks/src/user.ts** There is a script in **admin-tasks** that facilitates the creation of the first users.\n\n**Note**: You must at least create a superuser role in order to get started\n\nSince this is a tiny fireabase application we will need a service account file under **./admin-tasks/service-account** rename the file sa.json\n\nIn order to obtain the service account go into Project Overview =\u003e Project Settings =\u003e Service Accounts =\u003e Do Generate New Private Key (These are Firebase steps, hence should be familiar to Firebase Users 😎)\n\n```cmd\nnpm run install:admin-tasks\n```\n```cmd\nnpm run do:admin-tasks\n```\n\nAlternatively you could cd into the folder and run the commands 😂\n\nIntialize firebase via firebase cli, subsequently deploy Firebase rules and Firebase Functions\n\n```cmd\nnpm install -g firebase-tools\n....\nfirebase deploy --only functions\nfirebase deploy --only firestore:rules\n```\n\n## Getting Started\n\nFinallly here we are \n\n```cmd\nng serve\n```\nApplication Paths\n\n| Views             | Route  |\n| ------------------------|--------|\n| Main Site               | http://localhost:4200/ | \n| Login                   | http://localhost:4200/login | \n| Page(s)                 | http://localhost:4200/[page-url]  | \n| Blogs                   | http://localhost:4200/blogs  | \n| Blog Site               | http://localhost:4200/blog/[blog-url]  | \n| Admin                   | http://localhost:4200/admin  |  \n\n## Demo UI\n### Admin Dashboard\nFirebase Auth Guarded list of authorized resources\n\n![Admin Page](resources/screenshots/admin-page.PNG?raw=true \"Admin Page\")\n### Image Gallery\nA centralized image management system that integrates with Firebase Storage.\n\n![Image Gallery](resources/screenshots/image-gallery-site.PNG?raw=true \"Image Gallery\")\n### Blog Post\n![Blog Post](resources/screenshots/blog-post-site.PNG?raw=true \"Blog Post\")\n### Navigation Builder\nA curated site navigaton builder\n\n![Navigation Builder](resources/screenshots/navigation-builder-page.PNG?raw=true \"Navigation Builder\")\n\n### Mobile Views\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"300\"  src=\"resources/screenshots/mobile-view-1.png?raw=true\"\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"300\"  src=\"resources/screenshots/mobile-view-2.png?raw=true\"\u003e\n\u003c/p\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilsonsergio2500%2Ffogo-cms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwilsonsergio2500%2Ffogo-cms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilsonsergio2500%2Ffogo-cms/lists"}