This is the seventh required project on the Udacity Front End Nanodegree.
The goal of this project was to build a web application using React.js. It should also use an API server and client in order to persist information as the user interacts.
MyReads is a web application that allows you to select and categorize books. The main page displays a list of "shelves" (categories), each of which contains a number of books. The three shelves are:
- Currently Reading
- Want to Read
- Read
A book can be changed from a shelf to another one by selecting the new state (arrow icon). If "none" is selected, the book will disappear from the main page.
The application also has a search page that allows users to find books. This search may have some limitations (see notes section).
The following scheme shows how React components are structured:
<App/>
βββ <MainPage/>
βββ <SearchPage/>
<MainPage/>
βββ <BookShelf />
βββ <BookShelf />
βββ <BookShelf />
<BookShelf />
βββ <Book />
βββ <Book />
βββ <Book />
β ...
βββ <Book />
<SearchPage/>
βββ <SearchBar />
βββ <Book />
βββ <Book />
β ...
βββ <Book />
- Download β¬ or clone this repository.
git clone https://github.com/BycorSanchez/my-reads.git
- Install project dependencies with
npm install
. - Start the server with
npm start
. - Visit
http://localhost:3000
.
- React.js
- react-router
- prop-types
- sort-by
- Books API (provided by Udacity)
The backend API uses a fixed set of cached search results and is limited to a particular set of search terms, which can be found in SEARCH_TERMS.md.
Most of the code in this project has been written to the ES6 JavaScript specification for compatibility with modern web browsers and future proofing JavaScript code.