{"id":20150192,"url":"https://github.com/alpha037/atlas-orion","last_synced_at":"2025-07-21T09:02:56.220Z","repository":{"id":124014414,"uuid":"384754199","full_name":"alpha037/atlas-orion","owner":"alpha037","description":"A two-in-one platform that showcases two major features. One is Atlas-Kanban which keeps track of all your tasks separated by boards. The other is Atlas-SSR which generates a server-side rendered about page for you.","archived":false,"fork":false,"pushed_at":"2021-07-18T12:39:19.000Z","size":1364,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-09T20:11:17.994Z","etag":null,"topics":["angular","angular9","atlas","cloud","cloud-run","container-registry","docker","expressjs","gcr","nguniversal","orion","server-side-rendering","ssr","typescript"],"latest_commit_sha":null,"homepage":"https://orion.shubhranil.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alpha037.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2021-07-10T17:28:18.000Z","updated_at":"2022-05-20T14:29:51.000Z","dependencies_parsed_at":"2023-07-24T02:53:26.145Z","dependency_job_id":null,"html_url":"https://github.com/alpha037/atlas-orion","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/alpha037/atlas-orion","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alpha037%2Fatlas-orion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alpha037%2Fatlas-orion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alpha037%2Fatlas-orion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alpha037%2Fatlas-orion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alpha037","download_url":"https://codeload.github.com/alpha037/atlas-orion/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alpha037%2Fatlas-orion/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266270369,"owners_count":23902731,"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","angular9","atlas","cloud","cloud-run","container-registry","docker","expressjs","gcr","nguniversal","orion","server-side-rendering","ssr","typescript"],"created_at":"2024-11-13T22:48:49.475Z","updated_at":"2025-07-21T09:02:56.214Z","avatar_url":"https://github.com/alpha037.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca href=\"https://atlas.shubhranil.com\" target=\"\\_blank\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/Developed%20and%20Maintained%20by-Atlas%20Inc-blue\"\u003e\n\u003c/a\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"src/assets/orion.png\" width=200\u003e\n\u003c/div\u003e\n\n\u003ch1 align=\"center\"\u003e\u003ca href=\"https://orion.shubhranil.com\"\u003eAtlas Orion\u003c/a\u003e\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n    \u003cstrong\u003e\n      A two-in-one platform which showcases two major features. One is \u003ca href=\"https://orion.shubhranil.com/kanban\" target=\"_blank\"\u003eAtlas-Kanban\u003c/a\u003e which keeps track of all your tasks separated by boards. The other is \u003ca href=\"https://orion.shubhranil.com/customers\" target=\"_blank\"\u003eAtlas-SSR\u003c/a\u003e which generates a server-side rendered about page for you.\n    \u003c/strong\u003e\n   \u003cbr /\u003e\u003cbr /\u003e\n   \u003ca href=\"https://github.com/alpha037/atlas-orion#readme\"\u003e\u003cstrong\u003eExplore the docs »\u003c/strong\u003e\u003c/a\u003e\n   \u003cbr /\u003e\n   \u003cbr /\u003e\n   \u003ca href=\"https://github.com/alpha037/atlas-orion/issues\"\u003eReport Bug\u003c/a\u003e\n   ·\n   \u003ca href=\"https://github.com/alpha037/atlas-orion/issues\"\u003eRequest Feature\u003c/a\u003e\n\u003c/p\u003e\n\n## Table of Contents\n\n- [About](#about)\n- [Built With](#built-with)\n- [Getting Started](#getting-started)\n  - [Building The Project](#building-the-project)\n  - [Docker Instructions](#docker-instructions)\n- [Functionality Overview](#functionality-overview)\n- [Contributing](#contributing)\n- [Current Issues](#current-issues)\n- [License](#license)\n- [Contact](#contact)\n\n# About\n\nThis codebase was created to demonstrate a fully fledged two-in-one application built with [Angular 9](https://angular.io) that interacts with a Cloud Firestore database to handle CRUD operations to manage your tasks and boards in Atlas Kanban, authentication, routing, and also renders content using the Server-Side Rendering paradigm with the help of [Angular Universal](https://angular.io/guide/universal) for Atlas-SSR.\n\n# Built With\n\nThis project has been built with:\n\n- [Angular 9](https://v9.angular.io)\n- [Cloud Firestore](https://firebase.google.com/docs/firestore)\n- [Angular Universal](https://github.com/angular/universal)\n- [Docker](https://www.docker.com/)\n- [Google Cloud Run](https://cloud.google.com/run)\n- [GCR](https://cloud.google.com/container-registry)\n\n# Getting started\n\nMake sure you have the [Angular CLI](https://github.com/angular/angular-cli#installation) installed globally. We use [npm](https://npmjs.com) to manage the dependencies, so we strongly recommend you to use it. After that, run `npm install` to resolve all dependencies (might take one minute or thirty depending on your network speed).\n\nRun `npm run build:ssr` to build the application. After that, run `npm run serve:ssr` to serve your application. Then, navigate to `http://localhost:8080/` to see the application in action.\n\n### Building the project\n\nWhen you run `npm run build:ssr` , the build artifacts for the client application will be stored under the `dist/atlas-orion/browser` directory and the build artifacts for the server application will be stored under `dist/atlas-orion/server`.\n\n### Docker Instructions\n\nIf you haven't installed [Docker](https://www.docker.com/products/docker-desktop) already, then you can get it from [here](https://www.docker.com/products/docker-desktop). After installing it, create an account in Docker and copy the username.\n\nThis application is already dockerized. You can pull the image directly from [docker hub](https://hub.docker.com/u/alpha037):\n\n```bash\ndocker pull alpha037/atlas-orion:latest\n```\n\n**OR**\n\nYou can create your own by following the given steps.\n\nTo run the app in a docker container, follow the given steps:\n\n- Clone this repository\n\n  ```bash\n  git clone https://github.com/alpha037/atlas-orion\n  ```\n\n- Navigate to the project directory\n  ```bash\n  cd atlas-orion\n  ```\n- Replace \u003cstrong\u003eUSERNAME\u003c/strong\u003e with your own username and build the docker image\n  ```bash\n  docker build -t \u003cUSERNAME\u003e/atlas-orion:1.0 .\n  ```\n- Open up the terminal at the project directory, replace \u003cstrong\u003eUSERNAME\u003c/strong\u003e with your own username and run the following command:\n  ```bash\n  docker run -p 8080:8080 \u003cUSERNAME\u003e/atlas-orion:1.0\n  ```\n\n# Functionality overview\n\nThere are mainly two major features in this application. In a nutshell, **Atlas-Kanban** is an oversimplified clone of [Trello](https://trello.com/en), and, **Atlas-SSR** is just some server sending you a page when you ask for it. (jokes apart)\n\n**The general route breakdown looks like this:**\n\n- Home page (URL: **/** )\n  - About Atlas Orion\n  - About Atlas-Kanban and Atlas-SSR\n  - Justification of the name Atlas \u003ci\u003eOrion\u003c/i\u003e\n- Sign in/Login page (URL: **/login** )\n  - Authentication and signing in/out users\n- Kanban page (URL: **/kanban** )\n  - Manage your tasks and boards as per your requirements\n- Customer page (URL: **/customers** )\n  - List of all the customers (or, users, if you will) who generated their about page with the help of our platform\n  - Create your own about page\n- Customer Detail page (URL: **/customers/:id** )\n  - The actual server-side rendered about page of a customer (or, a user, if you will)\n\n**Some important points:**\n\n- All the feature modules are being [lazy loaded](https://angular.io/guide/lazy-loading-ngmodules).\n- [Progressive Web App (PWA)](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps) support is enabled for lower [First Contentful Paint (FCP)](https://developer.mozilla.org/en-US/docs/Glossary/First_contentful_paint) and of course, caching.\n\n# Contributing\n\nContributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are **greatly appreciated**. For more details, check out the [contributing guidelines](CONTRIBUTING.md).\n\n1. Fork the Project.\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`).\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`).\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request.\n\n# Current Issues\n\nAlthough this project works perfectly fine, however, there's a small caveat present. Currently, server-side rendering with [@nguniversal/express-engine](https://www.npmjs.com/package/@nguniversal/express-engine) and Angular 9 (or, server-side rendering in general with dynamic content) is a bit problematic because developers all around the globe are facing various [issues](https://github.com/angular/universal/issues) while injecting dynamic meta tags to make pages SEO friendly. Some of the fixes (or, hacks) suggested are working for some of the developers, but not for all. \u003cbr\u003e\n\nNeedless to say, any help on this matter is highly appreciated. I'll even buy you a cup of coffee as a small token of appreciation! Thanks!\n\n# License\n\nDistributed under GNU AGPL 3.0. See [LICENSE](https://github.com/alpha037/atlas-orion/blob/main/LICENSE) for more information.\n\n\u003c!-- CONTACT --\u003e\n\n# Contact\n\nShubhranil Dutta - contact@shubhranil.com\n\nProject Link: [https://github.com/alpha037/atlas-orion](https://github.com/alpha037/atlas-orion)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falpha037%2Fatlas-orion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falpha037%2Fatlas-orion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falpha037%2Fatlas-orion/lists"}