{"id":21822756,"url":"https://github.com/ntonbala/items-comments","last_synced_at":"2026-04-07T18:32:54.326Z","repository":{"id":100287755,"uuid":"103640393","full_name":"NtonBala/items-comments","owner":"NtonBala","description":"Items \u0026 comments is a client app allowing user to add items and comment them. State is stored in Redux store. Data is stored in Local Storage, interaction with it is provided by Redux Thunk. For variant with routing and data fetching due to URL changes look for master branch. For variant without routing look for redux branch.","archived":false,"fork":false,"pushed_at":"2022-12-15T20:01:41.000Z","size":7133,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-01-03T16:27:56.720Z","etag":null,"topics":["babel","eslint","lodash","qs","react","react-dom","react-hot-loader","react-redux","react-router","redux","redux-devtools","redux-thunk","webpack","webpack-dev-server"],"latest_commit_sha":null,"homepage":"https://NtonBala.github.io./items-comments","language":"JavaScript","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/NtonBala.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-09-15T09:36:23.000Z","updated_at":"2022-12-15T19:59:01.000Z","dependencies_parsed_at":"2023-05-13T11:45:49.637Z","dependency_job_id":null,"html_url":"https://github.com/NtonBala/items-comments","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/NtonBala/items-comments","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NtonBala%2Fitems-comments","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NtonBala%2Fitems-comments/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NtonBala%2Fitems-comments/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NtonBala%2Fitems-comments/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NtonBala","download_url":"https://codeload.github.com/NtonBala/items-comments/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NtonBala%2Fitems-comments/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31524525,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["babel","eslint","lodash","qs","react","react-dom","react-hot-loader","react-redux","react-router","redux","redux-devtools","redux-thunk","webpack","webpack-dev-server"],"created_at":"2024-11-27T17:17:25.202Z","updated_at":"2026-04-07T18:32:54.312Z","avatar_url":"https://github.com/NtonBala.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Items \u0026 Comments\n\nItems \u0026 Comments is Empeek test task. The app allows user to add items and comment them, storing data in browser's\nLocal Storage.\n\nTechnologies used: Loacal Storage API, React, ReactDOM, React Router, Redux, Redux Thunk, React Redux and Lodash with QS as helpers.\n\n## Architecture\n\nApp is written with `class` components. App component is wrapped by React-Router. Page data fetching is provided by `prepareData` function that gathers route's data. Business logic is held in HOCs (`ItemsContainer` \u0026 `CommentsContainer`). \n\nRedux store holds the App's state. The state's structure looks like:\n```\n{\n    items: [\n        {\n            id: number,\n            name: string,\n            comments: number\n        }\n    ],\n    activeItem: {\n        id,\n        name,\n        comments: ['string']\n    }\n}\n```\n\nData structure is held in browser's Local Storage and looks like array of object oriented documents:\n```javascript\n[\n    {\n        id,\n        name,\n        comments\n    }\n]\n```\nInteraction with Local Storate API is provided by Redux Thunk middleware.\n\n## Development Environment\n\nThere's only Development Environment available up to now. It is configured using Webpack, Babel and React Hot Loader.\nWebpack Dev Server is used as development server. There're Redux Dev Tools added to control app's state in development\n(is in invisible mode by default, use Ctrl+H to open Dev Tools monitor). ESLint is used as a linter.\n\n## Running\n\nPull master branch and run npm install to install all dependencies.\nTo launch the app run npm start and go to http://localhost:3000.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fntonbala%2Fitems-comments","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fntonbala%2Fitems-comments","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fntonbala%2Fitems-comments/lists"}