# Badgewell Angular Task This task is to assess your skills using **Angular** and it's core libraries along with other core 3rd party libraries like **NGRX** and **Angular Material**. ## Requirements A simple application that **search** github public repositories on typing and provides a custom detailed view on clicking one of the results. 1. View One: **Search and List**: - Searchbox, that searches github repositories upon typing anything in the inside of it. - list of items, that shows the search results in any fashion of your choice. - **required parameters** to be displayed are: ```json { full_name, owner: { avatar_url }, description, stargazers_count } ``` - Adding extra parameters to complement your UI is up to you, and is welcomed. - Clicking on one of the results will open **View Two: Repo Details** 2. View Two: **Repo Details** - This view will show the details of the clicked repository. - **required parameters** to be displayed are: ```json { full_name, owner: { avatar_url }, description, stargazers_count, // Extra Parameters forks_counts, size, language } ``` - Again adding extra parameters to complement your UI is up to you, and is welcomed. - Provide a link to the original github website page for this repoistory. This can be achieved in multiple ways, and it is completely up to you. 3. **All data should be provided through NgRx Store**. 4. Responsive Design for both views. 5. Each view should have it's own route. 6. Neatness and Readability of written code. ## Info Using **Github Public API** you can search the repositories using `https://api.github.com/search/repositories?q={search_string}`, here is the link for Github documentation for this API [Search Documentation](https://developer.github.com/v3/search/#search-repositories). You can also use the public API to get the details of repository using `https://api.github.com/repos/{owner}/{repository_name}`, Please note that **{owner}/{repository_name}** is equivalent to the repository **full_name** parameter. _Use of other external third party libraries is allowed_ ## Task Evaluation | Criteria | Weight | Required | | ----------------------------- | --------- | -------- | | Use of Angular Core Libraries | 10 | `true` | | Use of RxJS | 6 | `true` | | Responsiveness | 4 | `true` | | Routed Views | 2 | `true` | | App Size & Performance | 6 (bonus) | `false` | | Storing data in NgRx Store | 6 (bonus) | `false` | | Use of Angular Material | 3 (bonus) | `false` | | UI design | 3 (bonus) | `false` | | Unit Testing | 5 (bonus) | `false` | ### How to get help Feel free to ask any questions about the task using this email `ahmed.halawa@badgewell.com`