{"id":15638733,"url":"https://github.com/mgechev/real-world-bazel","last_synced_at":"2025-04-30T06:27:55.322Z","repository":{"id":66062705,"uuid":"178276574","full_name":"mgechev/real-world-bazel","owner":"mgechev","description":"The real world Angular example app moved to Bazel","archived":false,"fork":false,"pushed_at":"2019-03-28T23:48:24.000Z","size":218,"stargazers_count":91,"open_issues_count":1,"forks_count":10,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-25T11:57:27.123Z","etag":null,"topics":["angular","bazel","demo-app"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mgechev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2019-03-28T20:23:16.000Z","updated_at":"2025-01-08T07:52:28.000Z","dependencies_parsed_at":"2023-03-26T02:02:12.411Z","dependency_job_id":null,"html_url":"https://github.com/mgechev/real-world-bazel","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/mgechev%2Freal-world-bazel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mgechev%2Freal-world-bazel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mgechev%2Freal-world-bazel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mgechev%2Freal-world-bazel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mgechev","download_url":"https://codeload.github.com/mgechev/real-world-bazel/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251653391,"owners_count":21622115,"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","bazel","demo-app"],"created_at":"2024-10-03T11:22:55.167Z","updated_at":"2025-04-30T06:27:55.301Z","avatar_url":"https://github.com/mgechev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ![Angular Example App Using Bazel](logo.png)\n\n\u003e ### Angular codebase containing real world examples (CRUD, auth, advanced patterns, etc) that adheres to the [RealWorld](https://github.com/gothinkster/realworld-example-apps) spec and API. The application is built using **Bazel**.\n\n*The testing part is under development*.\n\nThis codebase was created to demonstrate a fully fledged application built with Angular that interacts with an actual backend server including CRUD operations, authentication, routing, pagination, and more. We've gone to great lengths to adhere to the [Angular Styleguide](https://angular.io/styleguide) \u0026 best practices. The application is **using Bazel** as its build system.\n\n### Making requests to the backend API\n\nFor convenience, we have a live API server running at https://conduit.productionready.io/api for the application to make requests against. You can view [the API spec here](https://github.com/GoThinkster/productionready/blob/master/api) which contains all routes \u0026 responses for the server.\n\nThe source code for the backend server (available for Node, Rails and Django) can be found in the [main RealWorld repo](https://github.com/gothinkster/realworld).\n\nIf you want to change the API URL to a local server, simply edit `src/environments/environment.ts` and change `api_url` to the local server's URL (i.e. `localhost:3000/api`)\n\n# Getting started\n\nMake sure you have the [Angular CLI](https://github.com/angular/angular-cli#installation) installed globally. We use [Yarn](https://yarnpkg.com) to manage the dependencies, so we strongly recommend you to use it. you can install it from [Here](https://yarnpkg.com/en/docs/install), then run `yarn install` to resolve all dependencies (might take a minute).\n\nRun `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.\n\n### Building the project\n\nRun `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `-prod` flag for a production build.\n\nIf you want to run the production build on your local machine use:\n\n```\n./node_modules/.bin/bazel run //src:prodserver\n```\n\n\n## Functionality overview\n\nThe example application is a social blogging site (i.e. a Medium.com clone) called \"Conduit\". It uses a custom API for all requests, including authentication. You can view a live demo over at https://angular.realworld.io\n\n**General functionality:**\n\n- Authenticate users via JWT (login/signup pages + logout button on settings page)\n- CRU* users (sign up \u0026 settings page - no deleting required)\n- CRUD Articles\n- CR*D Comments on articles (no updating required)\n- GET and display paginated lists of articles\n- Favorite articles\n- Follow other users\n\n**The general page breakdown looks like this:**\n\n- Home page (URL: /#/ )\n    - List of tags\n    - List of articles pulled from either Feed, Global, or by Tag\n    - Pagination for list of articles\n- Sign in/Sign up pages (URL: /#/login, /#/register )\n    - Uses JWT (store the token in `localStorage`)\n    - Authentication can be easily switched to session/cookie based\n- Settings page (URL: /#/settings )\n- Editor page to create/edit articles (URL: /#/editor, /#/editor/article-slug-here )\n- Article page (URL: /#/article/article-slug-here )\n    - Delete article button (only shown to article's author)\n    - Render markdown from server client side\n    - Comments section at bottom of page\n    - Delete comment button (only shown to comment's author)\n- Profile page (URL: /#/profile/:username, /#/profile/:username/favorites )\n    - Show basic user info\n    - List of articles populated from author's created articles or author's favorited articles\n\n\n\u003cbr /\u003e\n\n**Thanks to thinkster for the great example app, which let me demonstrate how to use Bazel to build your Angular applications**.\n\n[![Brought to you by Thinkster](https://raw.githubusercontent.com/gothinkster/realworld/master/media/end.png)](https://thinkster.io)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmgechev%2Freal-world-bazel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmgechev%2Freal-world-bazel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmgechev%2Freal-world-bazel/lists"}