{"id":24978192,"url":"https://github.com/davidcreador/react-story","last_synced_at":"2025-03-29T09:15:25.906Z","repository":{"id":39134309,"uuid":"262415177","full_name":"Davidcreador/react-story","owner":"Davidcreador","description":null,"archived":false,"fork":false,"pushed_at":"2023-01-05T20:04:43.000Z","size":4422,"stargazers_count":1,"open_issues_count":20,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-03T23:51:35.874Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"CSS","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/Davidcreador.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":"2020-05-08T19:50:00.000Z","updated_at":"2023-03-07T17:02:11.000Z","dependencies_parsed_at":"2023-02-04T14:02:16.041Z","dependency_job_id":null,"html_url":"https://github.com/Davidcreador/react-story","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Davidcreador%2Freact-story","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Davidcreador%2Freact-story/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Davidcreador%2Freact-story/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Davidcreador%2Freact-story/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Davidcreador","download_url":"https://codeload.github.com/Davidcreador/react-story/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246162150,"owners_count":20733357,"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-02-03T23:51:42.205Z","updated_at":"2025-03-29T09:15:25.882Z","avatar_url":"https://github.com/Davidcreador.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Scenario\r\n\r\nYou are working on a new feed to promote the company social network activity, you are\r\nprovided with access to the account’s posts and comments, your job is to integrate that activity\r\ninto the website.\r\n\r\n## Task\r\n\r\nBuild a ReactJS project that fetches from the posts and comments API’s, presents a list of\r\nposts and when any of the items is clicked show the list of comments that are associated with\r\nthat specific post.\r\n\r\n### You are responsible for:\r\n\r\n- Fetching the data from the API.\r\n- Presenting the data in the view.\r\n- Relate comments to posts.\r\n\r\n### Stretch goals\r\n\r\n- Set up project to use redux\r\n- Test your components\r\n- Allow the user to comment on a post and save the comment on state/redux.\r\n\r\n### Document any assumptions and design decisions you have made.\r\n\r\n- Posts API: https://jsonplaceholder.typicode.com/posts\r\n- Comments API: https://jsonplaceholder.typicode.com/comments\r\n\r\n---\r\n\r\n## Tech stack\r\n\r\n- CRA\r\n- Redux \u0026 Redux Toolkit\r\n- Typescript\r\n- Testing-library/react\r\n- Axios\r\n\r\n## Assumptions\r\n\r\n- User already logged in and with the right credentials\r\n- Already have an existing Database running and Rest API\r\n\r\n## Details\r\n\r\nThe app works using Redux store/actions/reducers. Where on initialization the app fetches for the posts available and renders them in the DOM. Each Post has the option to read the comments that belongs to it and it has the ability to create a comment (not yet implemented). \u003cbr\u003e\r\nThe way it works is as follows, on click the action to fetch the comments is triggered and hits the API endpoint and it fetches the comments for specific postId. After that I manipulate the data received and match it with the corresponding postId and add it to that post's data object, after that I re-render the DOM and toggles the view to show the post's comments.\r\n\r\n## Not yet implemented\r\n\r\n- Proper unit testing\r\n- Create comment for each post\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidcreador%2Freact-story","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidcreador%2Freact-story","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidcreador%2Freact-story/lists"}