Rogue Scholar

Visit Site

Rogue Scholar is designed for readers who want to know everything about what they are reading. The site allows users to search for a specific book. If it is part of the Guten Project, which provides the full texts of books in the public domain, the site will return the book's cover, a link to the entire text, and generate any associated reviews that have been published by the New York Times.

Rogue Scholar is designed for readers who want to know everything about what they are reading. The site allows users to search for a specific book. ...If it is part of the Guten Project, which provides the full texts of books in the public domain, the site will return the book's cover, a link to the entire text, and generate any associated reviews that have been published by the New York Times.

Read more

Role

This project was developed independently. Front-end design and development and API routing.

Goals

My primary aim while building this project was to practice routing multiple APIs, with one relying on the other to provide results.

Challenges

I learned a lot about passing information from one API to another. While the user is entering the book's title for the Guten Project API, the New York Times API worked best with the author's name. Since both API's had the author's names in different orders, it was a fun challenge to get the author's names into the right order and format so that the second API would yield search results.

Future Plans

I'm particularly excited about this project because I have tons of ideas of how to add to it. I hope to connect to other API's to generate other resources such as scholarly articles, interviews, and podcasts about the user's book, as well as the ability to save books of interest.

let formattedAuthor=author.split(" ");
if(formattedAuthor.length > 2){
formattedAuthor =
formattedAuthor[1].trim().replace(",", "")+ "+" + formattedAuthor[2].trim().replace(",", "")+ "+" + formattedAuthor[0].trim().replace(",", "");
console.log(formattedAuthor);
}
else{
formattedAuthor = formattedAuthor[1].trim().replace(",","")+ "+" + formattedAuthor[0].trim().replace(",", "");
console.log(formattedAuthor);
}
GetNYTData(formattedAuthor);
}
else{
console.log("Unfortunately this book is not available via the Guten Project");
let sorryMessage = document.createElement('p');
gutenSorry.append(sorryMessage);
sorryMessage.className="sorryMessage"
sorryMessage.innerText= "Unfortunately the book or author you entered is not available."
}
}