{"id":28789844,"url":"https://github.com/lemoncode/angular-exercise","last_synced_at":"2025-08-24T17:47:29.217Z","repository":{"id":38618034,"uuid":"163834644","full_name":"Lemoncode/angular-exercise","owner":"Lemoncode","description":"Repository to get hands on with Angular basics","archived":false,"fork":false,"pushed_at":"2023-01-07T14:19:52.000Z","size":2824,"stargazers_count":4,"open_issues_count":52,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2023-12-17T05:50:39.297Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Lemoncode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-01-02T11:51:33.000Z","updated_at":"2023-12-17T05:50:39.297Z","dependencies_parsed_at":"2023-02-07T09:45:57.538Z","dependency_job_id":null,"html_url":"https://github.com/Lemoncode/angular-exercise","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"purl":"pkg:github/Lemoncode/angular-exercise","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lemoncode%2Fangular-exercise","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lemoncode%2Fangular-exercise/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lemoncode%2Fangular-exercise/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lemoncode%2Fangular-exercise/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lemoncode","download_url":"https://codeload.github.com/Lemoncode/angular-exercise/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lemoncode%2Fangular-exercise/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260447715,"owners_count":23010562,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-17T22:11:42.626Z","updated_at":"2025-08-24T17:47:29.206Z","avatar_url":"https://github.com/Lemoncode.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Intro\n\nThe goal of this sample is to get started with Angular.\n\nWe will get as starting point an application that displays a list of github members that\nbelongs to an organization (in the starting excercise is hardcoded to _lemoncode_), and \nwe will add an input element to let the user choose another organization to query.\n\n# Excercise\n\n- Start with the starting implementation that is located under the folder *00_start*.\n\n- Let's install the needed dependencies.\n\n```bash\nnpm install\n```\n\n- And start the application to check that everything is working as expected.\n\n```bash\nnpm start\n```\n\n- If we check the current implementation we are getting a list of members belonging to lemoncode\norganization, that's nice but we would like to let the user to be able to type the name of the \norgnization he wants, hit ok and display the list of members for that organization.\n\n- Hints:\n\n  - Create a new property on MembersTableComponent with the current organization name (_lemoncode_ by default).\n  - Create an input to hold the organization member name.\n  - Tie up organization property change. Use ngModel (two way binding) directive to achieve this goal.\n  - Use the organization property before running the query.\n\n# Optional\n\nAs optional part of this exercise you can migrate it to ngrx. Just for simplicity, just handle in ngrx the input changes and read the new state on component. Do not handle load data side effect.\n\n- Hints\n\n    - Install @ngrx/store\n    - Link store to app module (use forRoot)\n    - Link store to feature module (use forFeature)\n    - Create action for input organization changes\n    - Create reducer\n    - Dispatch action from component\n    - Read the new state provide by ngrx\n\n# About Basefactor + Lemoncode\n\nWe are an innovating team of Javascript experts, passionate about turning your ideas into robust products.\n\n[Basefactor, consultancy by Lemoncode](http://www.basefactor.com) provides consultancy and coaching services.\n\n[Lemoncode](http://lemoncode.net/services/en/#en-home) provides training services.\n\nFor the LATAM/Spanish audience we are running an Online Front End Master degree, more info: http://lemoncode.net/master-frontend\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flemoncode%2Fangular-exercise","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flemoncode%2Fangular-exercise","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flemoncode%2Fangular-exercise/lists"}