leetchat是一个聊天的webApp
分类 | 技术 |
---|---|
前端 | Angular 5 |
后端 | SpringBoot, Spring WebSocket |
安全 | Spring Security + JWT |
PROJECT
│ README.md
│ pom.xml
│ build.gradle
└──[src]
│ └──[main]
│ └──[java]
│ └──[resources]
│ │ application.properties #contains springboot cofigurations
│ │ schema.sql # Contains DB Script to create tables that executes during the App Startup
│ │ data.sql # Contains DB Script to Insert data that executes during the App Startup (after schema.sql)
│ └──[public] # keep all html,css etc, resources that needs to be exposed to user without security
│
└──[target] #Java build files, auto-created after running java build: mvn install
│ └──[classes]
│ └──[public]
│ └──[webui] #webui folder is created by (maven/gradle) which copies webui/dist folder
│ #the application.properties file list webui as a resource folder that means files can be accesses http://localhost/<files_inside_webui>
│
└──[webui]
│ package.json
│ angular-cli.json #ng build configurations)
└──[node_modules]
└──[src] #frontend source files
└──[dist] #frontend build files, auto-created after running angular build: ng -build
- Java 8
- Maven 3.3.9
- Node 6.0
- npm 5
- Angular-cli 1.6.3
This is an RESTfull implementation of an order processing app based on Northwind database schema from Microsoft. The goal of the project is to
- Highlight techniques of making and securing a REST full app using SpringBoot
- How to consume an RESTfull service and make an HTML5 based Single Page App using Angular 4+
-
Backend
- Token Based Security (using Spring security)
- API documentation and Live Try-out links with Swagger
- In Memory DB with H2
- Using JPA and JDBC template to talk to relational database
- How to request and respond for paginated data
-
Frontend
- Organizing Components, Services, Directives, Pages etc in an Angular App
- How to chain RxJS Observables (by making sequntial AJAX request- its different that how you do with promises)
- Techniques to Lazy load Data (Infinite Scroll)
- Techniques to load large data set in a data-table but still keeping DOM footprint less
- Routing and guarding pages that needs authentication
- Basic visulaization
-
Build
- How to build all in one app that includes (database, sample data, RESTfull API, Auto generated API Docs, frontend and security)
- Portable app, Ideal for dockers, cloud hosting.