All Projects → mgechev → real-world-bazel

mgechev / real-world-bazel

Licence: other
The real world Angular example app moved to Bazel

Programming Languages

typescript
32286 projects
HTML
75241 projects
python
139335 projects - #7 most used programming language
javascript
184084 projects - #8 most used programming language
CSS
56736 projects

Projects that are alternatives of or similar to real-world-bazel

ReplayKitDemo
A simple demo for ReplayKit in iOS
Stars: ✭ 25 (-72.53%)
Mutual labels:  demo-app
bazel worker
Dart integration for Bazel build system
Stars: ✭ 18 (-80.22%)
Mutual labels:  bazel
demo-api
www.yiiframework.com/
Stars: ✭ 23 (-74.73%)
Mutual labels:  demo-app
tensorflow-builds
Tensorflow binaries and Docker images compiled with GPU support and CPU optimizations.
Stars: ✭ 15 (-83.52%)
Mutual labels:  bazel
Flashcards-Demo
This is a source code for a demo app.
Stars: ✭ 18 (-80.22%)
Mutual labels:  demo-app
monorepo-base
A Bazel monorepo with an example service using gRPC + Go + Protobuf, deployable to GCP via Kubernetes.
Stars: ✭ 49 (-46.15%)
Mutual labels:  bazel
SpreadsheetInput Feedback Tut
Demo App - Send Feedback From Android App To Spreadsheet
Stars: ✭ 35 (-61.54%)
Mutual labels:  demo-app
food-ordering-demo
Demo application focusing on the Food Ordering domain - Used in our video series
Stars: ✭ 28 (-69.23%)
Mutual labels:  demo-app
circularProgressBar
This repo contains a demo app for circularProgressBar.swift
Stars: ✭ 17 (-81.32%)
Mutual labels:  demo-app
purescript-pop
😃 A functional reactive programming (FRP) demo created with PureScript events and behaviors.
Stars: ✭ 33 (-63.74%)
Mutual labels:  demo-app
birdchain-mvp
Decentralized application (Dapp) similar to instant messenger. The BIG difference is that it will allow its users to make a monthly passive income, while providing companies with higher quality and better-priced services.
Stars: ✭ 25 (-72.53%)
Mutual labels:  demo-app
BlogDemoRepository
来自博客27house.cn中使用的Demo
Stars: ✭ 25 (-72.53%)
Mutual labels:  demo-app
react-native-css-modules-with-typescript-example
A simple example app that shows how you can use CSS modules + Typescript with React Native and React (for browser)
Stars: ✭ 17 (-81.32%)
Mutual labels:  demo-app
containers by bazel
Container images created with Bazel
Stars: ✭ 32 (-64.84%)
Mutual labels:  bazel
rules verilator
Bazel build rules for Verilator
Stars: ✭ 14 (-84.62%)
Mutual labels:  bazel
rules elm
Bazel rules for building web applications written in Elm
Stars: ✭ 22 (-75.82%)
Mutual labels:  bazel
delimeal
The Android template app for restaurant or booking item.
Stars: ✭ 26 (-71.43%)
Mutual labels:  demo-app
laravel-realworld-example-app
Exemplary RealWorld backend API built with Laravel PHP framework.
Stars: ✭ 34 (-62.64%)
Mutual labels:  demo-app
OFOBike
A demo app like OFO Bike in Swift.
Stars: ✭ 18 (-80.22%)
Mutual labels:  demo-app
rules scala
Robust and featureful Bazel rules for Scala
Stars: ✭ 62 (-31.87%)
Mutual labels:  bazel

Angular Example App Using Bazel

Angular codebase containing real world examples (CRUD, auth, advanced patterns, etc) that adheres to the RealWorld spec and API. The application is built using Bazel.

The testing part is under development.

This 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 & best practices. The application is using Bazel as its build system.

Making requests to the backend API

For 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 which contains all routes & responses for the server.

The source code for the backend server (available for Node, Rails and Django) can be found in the main RealWorld repo.

If 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)

Getting started

Make sure you have the Angular CLI installed globally. We use Yarn to manage the dependencies, so we strongly recommend you to use it. you can install it from Here, then run yarn install to resolve all dependencies (might take a minute).

Run ng serve for a dev server. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.

Building the project

Run ng build to build the project. The build artifacts will be stored in the dist/ directory. Use the -prod flag for a production build.

If you want to run the production build on your local machine use:

./node_modules/.bin/bazel run //src:prodserver

Functionality overview

The 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

General functionality:

  • Authenticate users via JWT (login/signup pages + logout button on settings page)
  • CRU* users (sign up & settings page - no deleting required)
  • CRUD Articles
  • CR*D Comments on articles (no updating required)
  • GET and display paginated lists of articles
  • Favorite articles
  • Follow other users

The general page breakdown looks like this:

  • Home page (URL: /#/ )
    • List of tags
    • List of articles pulled from either Feed, Global, or by Tag
    • Pagination for list of articles
  • Sign in/Sign up pages (URL: /#/login, /#/register )
    • Uses JWT (store the token in localStorage)
    • Authentication can be easily switched to session/cookie based
  • Settings page (URL: /#/settings )
  • Editor page to create/edit articles (URL: /#/editor, /#/editor/article-slug-here )
  • Article page (URL: /#/article/article-slug-here )
    • Delete article button (only shown to article's author)
    • Render markdown from server client side
    • Comments section at bottom of page
    • Delete comment button (only shown to comment's author)
  • Profile page (URL: /#/profile/:username, /#/profile/:username/favorites )
    • Show basic user info
    • List of articles populated from author's created articles or author's favorited articles

Thanks to thinkster for the great example app, which let me demonstrate how to use Bazel to build your Angular applications.

Brought to you by Thinkster

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].