This is a test project created for a skill showcase of a restful fullstack Web project
Front end: Angular & Angular material. Back-end: Spring Boot.
Additionally, Postman was used for endpoint testing.
Front End
- Angular CLI: 11.2.7
- Node: 14.16.0
Back End
- JDK: 1.8
- Spring boot: 2.4.4
- Maven: 3.6.3
- SQLite: 3.28.0
- JUnit: 4.12 (For unit tests)
The task which this project tackles is a single-page web app to display a list of phone numbers, for which a set of rules were given to check & display phone number validity (state), as defined by the country code, and the phone number regex corresponding to each country.
- Implement Filtering by phone number validity, country, or both.
- Implement Pagination & Sorting (bonus requirement).
- Add unit test for services.
- An SQLite database containting a "customer" table with the columns " name | phone ".
- A set of harcoded rules for country codes, names, and regex (to check for phone number validity).
- Adapting Angular material mat-table pagination & sorting scheme (native to FE pagination) to server-side pagination & sort operations.
- Treating the database as unmodifiable, which created transient entity fields (e.g. validity & country names) that were checked server-side.
- Lombok (for getter & setter generation).
- Google Guava (For Lists initialization).
- Using Swagger for Endpoint documentation and testing.
- Security & validation enhancements.
ng serve in /client
Run Application.java
Run CustomerInfoControllerTests.java
- Find all
- Pagination
- Sorting
- Filtering by Country
- Filtering by Validity
- Filtering by both Country & Validity