{"id":17951757,"url":"https://github.com/joshwcomeau/uncover","last_synced_at":"2025-03-25T00:31:34.624Z","repository":{"id":66128963,"uuid":"81731534","full_name":"joshwcomeau/Uncover","owner":"joshwcomeau","description":"📚 Aggregate new releases from your favourite authors. Built with Vuejs and Node","archived":false,"fork":false,"pushed_at":"2017-03-17T13:02:21.000Z","size":368,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-18T05:11:55.801Z","etag":null,"topics":["amazon-product-advertising","authors","books","goodreads","nodejs","vue","vuejs"],"latest_commit_sha":null,"homepage":"","language":"Vue","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/joshwcomeau.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":"2017-02-12T14:25:55.000Z","updated_at":"2023-09-04T10:26:36.000Z","dependencies_parsed_at":"2023-02-22T20:30:38.023Z","dependency_job_id":null,"html_url":"https://github.com/joshwcomeau/Uncover","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/joshwcomeau%2FUncover","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshwcomeau%2FUncover/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshwcomeau%2FUncover/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshwcomeau%2FUncover/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joshwcomeau","download_url":"https://codeload.github.com/joshwcomeau/Uncover/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245377920,"owners_count":20605374,"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":["amazon-product-advertising","authors","books","goodreads","nodejs","vue","vuejs"],"created_at":"2024-10-29T09:50:51.130Z","updated_at":"2025-03-25T00:31:34.610Z","avatar_url":"https://github.com/joshwcomeau.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📚 Uncover\n\n\u003e Find your next new book in 1 step.\n\nUncover is a new-release aggregator that helps you discover when your favourite authors release new books. The goal is to provide a single page that you can bookmark, and check whenever you want to find a new book.\n\nThe feature-set is incredibly simple: a single page that shows you the newest books published by authors you choose. I do have features I plan on adding, but the core concept will remain the same: a simple, quick way to find new stuff you'll like.\n\n\n### Technical Details\n\nUncover is a full-stack application, running Node/Express on the server and Vue.js (with vue-router, vuex) on the client.\n\nMost of the logic happens on the client. The server, at the time of writing, is mostly just a thin wrapper around the Goodreads and Amazon Product Advertising APIs.\n\nI wanted to avoid implementing an accounts system. This is both because I don't believe it's necessary (at least, not yet), and because I like the idea of not collecting potentially personally-identifiable information. While it sounds silly, we all have [guilty pleasures](https://books.google.ca/books?id=HlbyMWKuQQUC\u0026printsec=frontcover\u0026dq=isbn:9780345518569\u0026hl=en\u0026sa=X\u0026ved=0ahUKEwjAsfjXuMDSAhUS92MKHXLOCSkQ6AEIHDAA#v=onepage\u0026q\u0026f=false), and that data should be kept private!\n\nInstead, your list of authors and related settings are all stored in local storage. If you need to, you can copy that data to a new device or browser using the Import/Export functionality. I recognize that this is a tedious process; in the future I may introduce an \"email me a link to copy the data\" feature. Or maybe anonymously store data on a server and simply have a passkey to access it.\n\nFinally, this was my first time using Vue, so it should not be taken as an authoritative source on writing Vue apps.\n\n\n### Running Locally\n\nRunning locally is, to be honest, a pain. The reason is that you'll need to supply your own API keys for Goodreads and Amazon Product Advertising. The latter requires a fairly lengthy sign-up, _and_ you need to make sales every few months, otherwise they'll close your account.\n\nIf that hasn't discouraged you, you'll need to provide the following data, in a file located at `config/server.env.js`:\n\n```js\nmodule.exports = {\n  AWS_KEY: 'XXX',\n  AWS_SECRET: 'XXX',\n  ASSOCIATE_TAG: 'XXX',\n  GOODREADS_KEY: 'XXX',\n  GOODREADS_SECRET: 'XXX',\n};\n```\n\nYou can launch a local instance with these two scripts (I know, I should really use webpack-hot-middleware and combine them, but I haven't found the time):\n\n```js\nnpm run start:client:dev\nnpm run start:server:dev\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoshwcomeau%2Funcover","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoshwcomeau%2Funcover","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoshwcomeau%2Funcover/lists"}