The domain models a simple CRM with Users, Customers, Products, Orders and Order Items.
Angular 8 spa that uses the following practices:
- The core/shared/features folder structure
- The Smart Container > View Component way of creating components
- BEM naming with SASS
- No css frameworks
- Angular lazy loading for smaller bundles
- Interceptors for jwt token
- Immutable data structures
Spring Boot 2 API with :
- Spring Security with JWT tokens, OAuth2 social login and html login form
- Controller > Service > Repository structure
- JPA and Postgres
- Users with Roles for authorization
All modules are tested with Cypress e2e tests.
for API docs
This project uses oauth2 for social login To have an overview of the authentication flow , see these diagrams
- Login
- Register
- Reset Password
- Account Overview with monthly and quarterly sales and customers
- Last Orders
- Create
- Update
- Delete
- Search
- Create
- Update
- Delete
- Search
- Update user's name and image
- Add and Remove roles for authorization
- Create Order
- Add Item
- Remove Item
- Calculate Order
- Send Notification of order shipped