{"id":18483600,"url":"https://github.com/ksharma67/myreads_a_book_tracking_app","last_synced_at":"2026-04-24T16:03:25.860Z","repository":{"id":127465283,"uuid":"148748809","full_name":"ksharma67/myreads_a_book_tracking_app","owner":"ksharma67","description":"Udacity--\u003emyreads_a_book_tracking_app","archived":false,"fork":false,"pushed_at":"2023-03-15T07:10:02.000Z","size":951,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-13T20:32:38.237Z","etag":null,"topics":["booktracker","react"],"latest_commit_sha":null,"homepage":"https://ksharma67.github.io/myreads_a_book_tracking_app","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/ksharma67.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}},"created_at":"2018-09-14T07:00:47.000Z","updated_at":"2022-07-25T14:36:31.000Z","dependencies_parsed_at":"2023-08-16T13:07:04.770Z","dependency_job_id":null,"html_url":"https://github.com/ksharma67/myreads_a_book_tracking_app","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ksharma67/myreads_a_book_tracking_app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ksharma67%2Fmyreads_a_book_tracking_app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ksharma67%2Fmyreads_a_book_tracking_app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ksharma67%2Fmyreads_a_book_tracking_app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ksharma67%2Fmyreads_a_book_tracking_app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ksharma67","download_url":"https://codeload.github.com/ksharma67/myreads_a_book_tracking_app/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ksharma67%2Fmyreads_a_book_tracking_app/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32230421,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T13:21:15.438Z","status":"ssl_error","status_checked_at":"2026-04-24T13:21:15.005Z","response_time":64,"last_error":"SSL_read: 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":["booktracker","react"],"created_at":"2024-11-06T12:36:32.745Z","updated_at":"2026-04-24T16:03:25.834Z","avatar_url":"https://github.com/ksharma67.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1\u003eMyReads Project\u003c/h1\u003e\n\u003cp\u003eThis project is a part of the final assessment for Udacity's React Fundamentals course. The goal of this project is to create a personal book tracker app to track the books which you are \"Currently Reading\", \"Want to read\", and \"Already read\"\u003c/p\u003e\n\u003cp\u003eUse \u003ca href=\"https://github.com/facebookincubator/create-react-app\"\u003eCreate React App\u003c/a\u003e to bootstrap the project.\u003c/p\u003e\n\u003ch2\u003e\u003ca id=\"user-content-tldr\" class=\"anchor\" aria-hidden=\"true\" href=\"#tldr\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003eTo get started developing right away:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003einstall all project dependencies with \u003ccode\u003enpm install\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003estart the development server with \u003ccode\u003enpm run start\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca id=\"user-content-what-youre-getting\" class=\"anchor\" aria-hidden=\"true\" href=\"#what-youre-getting\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003eWhat You're Getting\u003c/h2\u003e\n\u003cdiv class=\"highlight highlight-source-shell\"\u003e\u003cpre\u003e├── README.md - This file.\n├── SEARCH_TERMS.md \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e The whitelisted short collection of available search terms for you to use with your app.\u003c/span\u003e\n├── package.json \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e npm package manager file. It's unlikely that you'll need to modify this.\u003c/span\u003e\n├── public\n│   ├── favicon.ico \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e React Icon, You may change if you wish.\u003c/span\u003e\n│   └── index.html \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e DO NOT MODIFY\u003c/span\u003e\n└── src\n    ├── App.css \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e Styles for your app. Feel free to customize this as you desire.\u003c/span\u003e\n    ├── App.js \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e This is the root of your app. Contains static HTML right now.\u003c/span\u003e\n    ├── App.test.js \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e Used for testing. Provided with Create React App. Testing is encouraged, but not required.\u003c/span\u003e\n    ├── BooksAPI.js \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e A JavaScript API for the provided Udacity backend. Instructions for the methods are below.\u003c/span\u003e\n    ├── icons \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e Helpful images for your app. Use at your discretion.\u003c/span\u003e\n    │   ├── add.svg\n    │   ├── arrow-back.svg\n    │   └── arrow-drop-down.svg\n    ├── components\n    \u003cspan class=\"pl-k\"\u003e|\u003c/span\u003e\t├── AddBook.js\n    \u003cspan class=\"pl-k\"\u003e|\u003c/span\u003e\t├── Book.js\n    \u003cspan class=\"pl-k\"\u003e|\u003c/span\u003e\t├── ErrorPage404.js\n    \u003cspan class=\"pl-k\"\u003e|\u003c/span\u003e\t├── Main.js\n    \u003cspan class=\"pl-k\"\u003e|\u003c/span\u003e\t├── Search.js\n    \u003cspan class=\"pl-k\"\u003e|\u003c/span\u003e\t├── Shelf.js\n    \u003cspan class=\"pl-k\"\u003e|\u003c/span\u003e\t├── ShelfRow.js\n    \u003cspan class=\"pl-k\"\u003e|\u003c/span\u003e\t└── Title.js\n    ├── img\n    \u003cspan class=\"pl-k\"\u003e|\u003c/span\u003e\t└── no_cover_thumb.gif\n    ├── index.css \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e Global styles. You probably won't need to change anything here.\u003c/span\u003e\n    └── index.js \u003cspan class=\"pl-c\"\u003e\u003cspan class=\"pl-c\"\u003e#\u003c/span\u003e You should not need to modify this file. It is used for DOM rendering only.\u003c/span\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003ch2\u003e\u003ca id=\"user-content-backend-server\" class=\"anchor\" aria-hidden=\"true\" href=\"#backend-server\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003eBackend Server\u003c/h2\u003e\n\u003cp\u003eTo simplify your development process, we've provided a backend server for you to develop against. The provided file \u003ca href=\"/prabhuvashwin/my-reads-book-app/blob/master/src/BooksAPI.js\"\u003e\u003ccode\u003eBooksAPI.js\u003c/code\u003e\u003c/a\u003e contains the methods you will need to perform necessary operations on the backend:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"#getall\"\u003e\u003ccode\u003egetAll\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#update\"\u003e\u003ccode\u003eupdate\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#search\"\u003e\u003ccode\u003esearch\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003ca id=\"user-content-getall\" class=\"anchor\" aria-hidden=\"true\" href=\"#getall\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003ccode\u003egetAll\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eMethod Signature:\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-js\"\u003e\u003cpre\u003e\u003cspan class=\"pl-en\"\u003egetAll\u003c/span\u003e()\u003c/pre\u003e\u003c/div\u003e\n\u003cul\u003e\n\u003cli\u003eReturns a Promise which resolves to a JSON object containing a collection of book objects.\u003c/li\u003e\n\u003cli\u003eThis collection represents the books currently in the bookshelves in your app.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003ca id=\"user-content-update\" class=\"anchor\" aria-hidden=\"true\" href=\"#update\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003ccode\u003eupdate\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eMethod Signature:\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-js\"\u003e\u003cpre\u003e\u003cspan class=\"pl-en\"\u003eupdate\u003c/span\u003e(book, shelf)\u003c/pre\u003e\u003c/div\u003e\n\u003cul\u003e\n\u003cli\u003ebook: \u003ccode\u003e\u0026lt;Object\u0026gt;\u003c/code\u003e containing at minimum an \u003ccode\u003eid\u003c/code\u003e attribute\u003c/li\u003e\n\u003cli\u003eshelf: \u003ccode\u003e\u0026lt;String\u0026gt;\u003c/code\u003e contains one of [\"wantToRead\", \"currentlyReading\", \"read\"]\u003c/li\u003e\n\u003cli\u003eReturns a Promise which resolves to a JSON object containing the response data of the POST request\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003ca id=\"user-content-search\" class=\"anchor\" aria-hidden=\"true\" href=\"#search\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003ccode\u003eSearch\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eMethod Signature:\u003c/p\u003e\n\u003cdiv class=\"highlight highlight-source-js\"\u003e\u003cpre\u003e\u003cspan class=\"pl-en\"\u003esearch\u003c/span\u003e(query, maxResults)\u003c/pre\u003e\u003c/div\u003e\n\u003cul\u003e\n\u003cli\u003equery: \u003ccode\u003e\u0026lt;String\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003emaxResults: \u003ccode\u003e\u0026lt;Integer\u0026gt;\u003c/code\u003e Due to the nature of the backend server, search results are capped at 20, even if this is set higher.\u003c/li\u003e\n\u003cli\u003eReturns a Promise which resolves to a JSON object containing a collection of book objects.\u003c/li\u003e\n\u003cli\u003eThese books do not know which shelf they are on. They are raw results only. You'll need to make sure that books have the correct state while on the search page.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca id=\"user-content-important\" class=\"anchor\" aria-hidden=\"true\" href=\"#important\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fksharma67%2Fmyreads_a_book_tracking_app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fksharma67%2Fmyreads_a_book_tracking_app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fksharma67%2Fmyreads_a_book_tracking_app/lists"}