# 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`