oliverjam / bookmarkd Goto Github PK
View Code? Open in Web Editor NEWA React PWA for reading ebooks
Home Page: https://bookmarkd-app.surge.sh
A React PWA for reading ebooks
Home Page: https://bookmarkd-app.surge.sh
If there is more than one creator in the XML, then the object put out from node script has no author.
I raise this issue more as a point of disucssion that as a critcisim.
In your app.js file, you have defined what looks very much like a normal css file in your javascript.
I understand the appeal of styled components use case if you want to apply unique styling to individual small component. But I don't think this use case holds and benefits, and it adds a lot of noise to your App.js file - you could just import a file for app wide css files.
Thoughts?
We need to initialise our service worker!
Your function declarations vary from parentheses free arrow functions with implicit returns x => x
to traditional javascript declarations function(x) { return x }
.
Ideally you should be consistent throughout the project - as this makes it a lot easier to parse the code in future, and avoids confusion about which JS features are available.
We've set up react with create-react-app but we need to get Redux set up as well.
☝️
when reopened the book should render the last viewed page.
At the moment index is hardcoded
Currently we have some impure functions, we need to make the all of our functions (as much as they can be) pure, so that they are testable and predictable.
It's not obvious from your README what this app does.
A big part of our app being offline ready is going to be saving the state offline and updating it whenever we get a glimpse of network connection, this can be done through a combination of redux-offline and our service worker.
☝️
We are basing the background image of hte book cards on the first letter of the Author's name, so we need 26 backgounds to account for each potential author's name.
Use const.
or sometimes let - but probably not let, unless you REALLY need to.
We need to sort out our plan for what the initial state is going to look like (and thus ongoing state).
We need to do #35 before doing this because we need that info for setting our initial state.
In bookrows you extend class but then don't use any of the features of a class.
I've seen you using functional components else where - and I think it's good practice to write as many components as possible in that style.
We need ot change the copy on the app to reflect the changes we have made functionally.
This line bookInfo = bookInfo.sort((a, b) =>
is dangerous.
calling .sort on an array mutates the original array. This means that reassigning bookInfo to a sorted version of itself is a redundant.
More importantly this could cause very weird and hard to track down bugs if you later expand this piece of code.
☝️
We have our service worker set up to cache all of our front end files, but now we need to make it cache any epub files that are served from our remote amazon storage.
We need to get some epubs up and hosted so that we can make our app actually works!
Initially we need around 100 books, we can update the library of books at a later date.
We need to add differnt colours to our books cards so they look pretty.
We need to initialise the structure of our application, we have used create-react-app but need to tailor it to our particular use case.
We need to change this to credentials: 'cors'
to ensure our books are served from the cache properly.
We want to add a blurb and genre to our book objects so that we can filter and give the user more info about each book.
The metadata in the ebook doesn't give us this so we'll need to use an API in the back end to get more info about the books.
This is a bit of personal preference but here:
const expectedTheme = 'green';
const expectedThemeAction = {
type: types.CHANGE_THEME,
theme: expectedTheme,
};
I can't see any benefit to defining expectedTheme
we need an action which will show a temporary message for lots of reasons (displaying that book is available offline, letting the user know they can refresh to get more info, etc)
We need a component to render books by category
we need to clone the stream of our fetch requests for the epubs so that we can feed one stream straight the the browser and one stream directly into the cache otherwise "the body will already be consumed" 🤘
Here - don't do it kids.
We need to finalise design before we can properly work on #29 so we need to decide on a design.
☝️
Snapshot tests are quick and easy to set up - and they give you quite a lot of information when you are making changes. Do it :)
We need to add styles to our app, particularly the navbars, we need to make sure they're accessible too.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.