{"id":19911708,"url":"https://github.com/prazzdev/bookshelfapp","last_synced_at":"2026-06-09T08:31:14.685Z","repository":{"id":214177466,"uuid":"735529548","full_name":"prazzdev/BookshelfApp","owner":"prazzdev","description":"Bookshelf Apps - Dicoding Submission Front-End Pemula","archived":false,"fork":false,"pushed_at":"2023-12-26T11:16:58.000Z","size":10,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-01T08:45:01.487Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://prazzdev.github.io/BookshelfApp/","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/prazzdev.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":"2023-12-25T08:49:12.000Z","updated_at":"2023-12-25T08:52:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"b14c0bb1-4162-4625-a4f6-bfeb58b8c821","html_url":"https://github.com/prazzdev/BookshelfApp","commit_stats":null,"previous_names":["prazzdev/bookshelfapp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/prazzdev/BookshelfApp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prazzdev%2FBookshelfApp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prazzdev%2FBookshelfApp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prazzdev%2FBookshelfApp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prazzdev%2FBookshelfApp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prazzdev","download_url":"https://codeload.github.com/prazzdev/BookshelfApp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prazzdev%2FBookshelfApp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34098808,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-09T02:00:06.510Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-11-12T21:26:25.696Z","updated_at":"2026-06-09T08:31:14.664Z","avatar_url":"https://github.com/prazzdev.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bookshelf Apps -  Front End Pemula, Dicoding Submission\n## Kriteria Bookshelf Apps\nBuatlah aplikasi web yang dapat memasukan data buku ke dalam rak, memindahkan data buku antar rak, dan menghapus data buku dari rak. \n\nUntuk lebih jelasnya, terdapat 5 kriteria utama pada Bookshelf Apps yang harus Anda buat.\n\n\n\n### Kriteria 1: Mampu Menambahkan Data Buku\nBookshelf Apps harus mampu menambahkan data buku baru.\nData buku yang disimpan merupakan objek JavaScript dengan struktur berikut:\n```\n{\n  id: string | number,\n  title: string,\n  author: string,\n  year: number,\n  isComplete: boolean,\n}\n```\nBerikut contoh data riilnya:\n```\n{\n  id: 3657848524,\n  title: 'Harry Potter and the Philosopher\\'s Stone',\n  author: 'J.K Rowling',\n  year: 1997,\n  isComplete: false,\n}\n```\n\u003e [!NOTE]\n\u003e Untuk id buku pada tiap buku yang disimpan haruslah unik. Tips dalam menetapkan nilai untuk adalah Anda bisa memanfaatkan nilai timestamp. Untuk mendapatkan nilai timestamp di JavaScript cukup mudah, cukup dengan menuliskan expressions +new Date().\n\n### Kriteria 2: Memiliki Dua Rak Buku\nBookshelf Apps harus memiliki 2 Rak buku. Yakni, “Belum selesai dibaca” dan “Selesai dibaca”.\nRak buku \"Belum selesai dibaca\" hanya menyimpan buku jika properti isComplete bernilai false.\nRak buku \"Selesai dibaca\" hanya menyimpan buku jika properti isComplete bernilai true.\n\n### Kriteria 3: Dapat Memindahkan Buku antar Rak\nBuku yang ditampilkan pada rak, baik itu \"Belum selesai dibaca\" maupun \"Selesai dibaca\" harus dapat dipindahkan di antara keduanya.\n\n### Kriteria 4: Dapat Menghapus Data Buku\nBuku yang ditampilkan pada rak, baik itu \"Belum selesai dibaca\" maupun \"Selesai dibaca\" harus dapat dihapus.\n\n### Kriteria 5: Manfaatkan localStorage dalam Menyimpan Data Buku\nData buku yang ditampilkan pada rak, baik itu \"Belum selesai dibaca\" maupun \"Selesai dibaca\" harus dapat bertahan walaupun halaman web ditutup.\nDengan begitu, Anda harus menyimpan data buku pada localStorage.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprazzdev%2Fbookshelfapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprazzdev%2Fbookshelfapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprazzdev%2Fbookshelfapp/lists"}