{"id":13933082,"url":"https://github.com/hantsy/angular-spring-reactive-sample","last_synced_at":"2025-04-09T06:10:21.073Z","repository":{"id":28003959,"uuid":"115850355","full_name":"hantsy/angular-spring-reactive-sample","owner":"hantsy","description":"RESTful API demos with Spring 6 WebFlux, Spring Boot 3, Spring Data Mongo, Spring Security, Spring Session and Angular (upgraded to v16)","archived":false,"fork":false,"pushed_at":"2024-10-01T22:53:20.000Z","size":925,"stargazers_count":251,"open_issues_count":6,"forks_count":156,"subscribers_count":18,"default_branch":"master","last_synced_at":"2024-10-10T18:44:08.336Z","etag":null,"topics":["angular","reactive","reactor","spring-boot","spring-data-mongodb-reactive","spring-security","spring-session"],"latest_commit_sha":null,"homepage":"https://medium.com/@hantsy/build-a-reactive-application-with-spring-boot-2-0-and-angular-de0ee5837fed","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hantsy.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":"2017-12-31T07:48:32.000Z","updated_at":"2024-09-05T03:49:12.000Z","dependencies_parsed_at":"2023-02-19T04:31:12.387Z","dependency_job_id":"1db9895d-8518-4edc-9dcc-b09c60759ec3","html_url":"https://github.com/hantsy/angular-spring-reactive-sample","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/hantsy%2Fangular-spring-reactive-sample","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hantsy%2Fangular-spring-reactive-sample/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hantsy%2Fangular-spring-reactive-sample/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hantsy%2Fangular-spring-reactive-sample/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hantsy","download_url":"https://codeload.github.com/hantsy/angular-spring-reactive-sample/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247987285,"owners_count":21028895,"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","reactive","reactor","spring-boot","spring-data-mongodb-reactive","spring-security","spring-session"],"created_at":"2024-08-07T21:01:34.065Z","updated_at":"2025-04-09T06:10:21.058Z","avatar_url":"https://github.com/hantsy.png","language":"TypeScript","readme":"![Build Client](https://github.com/hantsy/angular-spring-reactive-sample/workflows/Client/badge.svg)\r\n![Build Server Side](https://github.com/hantsy/angular-spring-reactive-sample/workflows/Server/badge.svg)\r\n\r\n\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\r\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\r\n**Table of Contents**  *generated with [DocToc](https://github.com/thlorenz/doctoc)*\r\n\r\n- [Angular Spring Reactive Sample](#angular-spring-reactive-sample)\r\n  - [Project structure](#project-structure)\r\n  - [Build](#build)\r\n    - [Server](#server)\r\n    - [Client](#client)\r\n  - [Contribute](#contribute)\r\n\r\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\r\n\r\nI've also created a series of  projects to demo Angular and Spring WebFlux using other protocols:\r\n\r\n* [Angular and Websocket sample](https://github.com/hantsy/angular-spring-websocket-sample)\r\n* [Angular and Server Sent Event  sample](https://github.com/hantsy/angular-spring-sse-sample)\r\n* [Angular and RSocket  sample](https://github.com/hantsy/angular-spring-rsocket-sample)\r\n\r\n# Angular Spring Reactive Sample\r\n\r\nThis application demonstrate building backend RESTful APIs with the newest Reactive stack introduced in Spring 5, and creating the frontend SPA with Angular 5.\r\n\r\n**Read the [comprehensive step by step guide](GUIDE.md) to get more details**.\r\n\r\n## Project structure\r\n\r\n* client - The client application built with Angular CLI.\r\n* server - The backend RESTful APIs.\r\n\r\n\r\n## Build and Run\r\n\r\nClone the source codes into your local system.\r\n\r\n```\r\ngit clone https://github.com/hantsy/angular-spring-reactive-sample\r\n```\r\n\r\n### Server \r\n\r\nThe backend is a Spring Boot based application, make sure you have installed the following software:\r\n\r\n* Apache Maven\r\n* Oracle JDK 8\r\n* Docker \u0026 Docker Compose \r\n\r\nThere is a *docker-compose.yml* file in the project root folder. \r\n\r\nStarts up required MongoDb and Reids service in the background by executing the following command.\r\n\r\n```\r\ndocker-compose up\r\n```\r\n\r\n\u003e NOTE: You can also install a local MongoDb and Redis instead of using Docker.\r\n\r\nThen run the application by Spring boot maven plugin directly.\r\n\r\n```\r\nmvn spring-boot:run\r\n```\r\n\r\n### Client\r\n\r\nThe **client** application is generated by Angular CLI. \r\n\r\nEnter **client** folder, execute the following command to run the frontend UI.\r\n\r\n```\r\nnpm install\r\nnpm run start\r\n```\r\n\r\nOpen your favorite browser, and navigate to http://localhost:4200.\r\n\r\n## CORS\r\n\r\nBy default, I do not use a CORS config to run the Server side in this sample application. \r\n\r\nBut if you do not like to use a `proxy.conf.js` in the Angular config, follow the following steps to enable **cors** support in the backend, and connect to the backend directly in the client side.\r\n\r\n### Server\r\n\r\nActivate the **cors** profile when running the Spring Boot application.\r\n\r\n```bash\r\njava -jar target/app.jar --spring.profiles.active=cors\r\n```\r\n\r\n### Client\r\n\r\nThere is a standalone configuration **cors** added in the Angular config to connect to the backend directly.\r\n\r\n```bash\r\nnpm run start:cors\r\n```\r\n\r\n## Contribute\r\n\r\nWelcome to contribute this project.  If you have some ideas do not hesitate to file an issue or send a PR directly.\r\n","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhantsy%2Fangular-spring-reactive-sample","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhantsy%2Fangular-spring-reactive-sample","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhantsy%2Fangular-spring-reactive-sample/lists"}