291 Commits

Author SHA1 Message Date
Yubraj
2844c5ad5e added something in the readme for the better understanding 2024-11-09 17:06:27 +00:00
richk21
40024c5945 Update README.md
Added - And the Mountains Echoed by Khaled Hosseini
2024-10-02 22:21:25 +01:00
Vishnu Ks
4a44d35985 Delete .github/workflows/updatejson.yml 2024-10-02 22:18:37 +01:00
coool9
dd9807a929 Remove credits and license from books category
And give them their own heading
2024-06-26 23:33:20 +01:00
La5u
11822842f0 Spelling and grammar in CONTRIBUTING.md 2024-06-19 20:13:42 +01:00
yashviradia
dafefcf6b3 added 'Limitless', 'Brain Food' and 'Super Human' in README 2023-10-10 23:17:27 +01:00
Love sonkar
07f1f66360 fixes goodread button link not opening in new tab 2023-09-30 20:45:53 -07:00
Darshit Domadiya
56ef6eecd0 corrected 'Ryan Holding' to 'Ryan Holiday'
edited README.md file.
=> corrected 'Ryan Holding' to 'Ryan Holiday'.
2023-09-22 10:34:59 +01:00
XanderRubio
650d9ba116 Adding book into the Autobiography and biographies section 2023-09-02 16:33:40 +01:00
Vishnu Ks
af2c3309fc Update CONTRIBUTING.md 2023-08-28 19:44:14 +01:00
Unknown
5a1a11d461 Added The Age of Em 2023-08-28 18:42:41 +01:00
Martin Suja
240aa60cbe Add books by Jorgenson and Snyder 2023-08-28 18:41:14 +01:00
Kushantha Charuka
35e0e76220 Added new design book 2023-08-28 18:39:37 +01:00
Abhishek Srivastav
962d13ba02 Added "The Magic of Thinking Big" book 2023-08-28 18:36:34 +01:00
Mari
897e916f62 add book: Of Fire and Stars 2023-08-28 18:36:17 +01:00
Daniel Teske
76b4feef0d ignore .DS_Store files 2023-08-28 18:35:50 +01:00
Daniel Teske
cb0f09f359 .DS_Store file dropped 2023-08-28 18:35:50 +01:00
Muhammad Saeed
bf88bcfaeb Add "The Millionaire Fastlane" to Startups and Business 2023-08-28 18:34:55 +01:00
Vytautas Kasparavičius
7a7505ac5e Added Roadside Picnic by Strugatsky brothers 2023-08-28 18:34:26 +01:00
AmOL-PiNGALE
a30a93569c feat: Add Crucial Conversations book 2023-08-28 18:30:55 +01:00
Aditya Muzumdar
41b4e47494 Added Man without Fear by Rajat Gupta
Life of this man is an outright expression of leadership, success and Indian ethos. A must read for all budding professionals.
2023-08-28 18:30:21 +01:00
Soumik8114
a18f7a23cf Added "The Way of the Monk" 2023-08-28 18:28:32 +01:00
Taylor
a5ecb7dab3 Added a book to the horror category in READ.ME 2023-08-28 18:26:56 +01:00
YorLecaros
32deebdcf6 Added a new book, Angels & Demons by Dan Brown 2023-08-28 18:26:43 +01:00
Hanee-Solanki
73efa4443c modified bookcard.js 2023-08-28 18:25:02 +01:00
jessb
9a55f9ab1e Added Project Hail Mary to Science Fiction 2023-08-28 18:24:51 +01:00
Mason Firman
357e72a887 Added "Breath: The New Science of a Lost Art" to Health 2023-08-28 18:24:42 +01:00
renjithjoseph87
d29ce7d24c Added Contact to the list of science fiction books 2023-08-28 18:24:24 +01:00
Evan C
76858735ed Fixed Soul of a New Machine Formatting
Fixed the formatting for Soul of a New Machine to match the sorting by rating.
2023-08-28 18:23:01 +01:00
Evan C
90959ff6c4 Added The Soul of a New Machine
Added The Soul of a New Machine to the history section.
2023-08-28 18:23:01 +01:00
Snimerjot Singh
0c4450a4a5 Update README.md 2023-08-28 18:22:02 +01:00
Snimerjot Singh
436a3e149a Update README.md 2023-08-28 18:20:48 +01:00
Charlie Sabino
046d0330be Added The Stormlight Archive
One of the most loved series in the fantasy community
2023-08-28 18:17:39 +01:00
Misha Klopukh
66737e2aab Add Thinking Forth 2023-08-28 18:17:10 +01:00
Vishnu Ks
42a1065c48 Update CONTRIBUTING.md 2023-08-28 18:14:17 +01:00
Vishnu Ks
483e534fcd Update README.md 2023-08-28 18:02:26 +01:00
Vishnu Ks
98f39c0ecf Update README.md 2023-08-28 18:01:23 +01:00
Vishnu Ks
402c8ce7ed Update README.md 2023-08-28 17:45:40 +01:00
Vitalii Voloshyn
febd71338f The Unix Haters Handbook 2023-08-28 12:02:47 +01:00
Varad Rane
bc5075dc80 Added Back to top buttons 2023-08-28 12:01:20 +01:00
Varad Rane
9eb334bf85 Update README.md 2023-08-28 12:01:20 +01:00
Vishnu Ks
8d02dbfd60 Remove website link 2023-03-05 19:11:57 +00:00
Rauros
e2d431d67d Creativity Inc book added
The book is a journey that tries to portray a healthy, creative and effective business culture. Based on real examples from companies like Pixar or Apple. A delight to put into practice in any company, large, small or teams.
2023-03-05 19:11:05 +00:00
Hélio Correia
6c42389d72 Add 'Principles: Life and Work' by 'Ray Dalio' 2022-08-07 20:10:50 +01:00
fk00750
a7f12ac7e5 this commit fixes Small typo #419 2022-08-07 20:09:23 +01:00
Nathan-Abegaz
52747a1b76 Added Prodigy to Science Fiction 2022-01-19 17:37:32 +00:00
Hiyab-Abegaz
90f9bc88f5 Update README.md 2022-01-19 17:36:50 +00:00
Chris Szczechowicz
0566905e42 Add Grain Brain health book 2022-01-19 17:35:58 +00:00
Miguel Sozinho Ramalho
13bbce624f fixing bad markdown in link 2022-01-19 17:35:14 +00:00
loyeleye
a9a7440ed3 Update README.md
Added "The Giver" to Fiction - Classics
2022-01-19 17:34:52 +00:00
loyeleye
3a41378d29 Update CONTRIBUTING.md
Small typo fix :)
2022-01-19 17:34:12 +00:00
tiago-nogueira
751a16ca3e Update README.md 2021-08-08 10:59:58 +05:30
Vishnu KS
ab70c2764b Use promise in gatsby-node. 2021-06-07 00:10:21 +05:30
Shweta Ranjan Anand
5ddeafb2fb Update for book cover of "The Discoverers"
Fix: #371
2021-06-04 12:52:14 +05:30
TLZ
53e2941d4a Add The Uninhabitable Earth by David Wallace-Wells 2021-03-19 01:16:24 +05:30
Jeremy Gautama
fe916127e2 Startups and Business update
Updated ratings
2021-02-25 22:31:32 +05:30
Derek OKeeffe
bef88206ae Fix goodreads link for Educated
Removed a stray comma
2020-12-24 11:51:37 +05:30
Vishnu KS
d898b99562 Check if Google Books API key is present. 2020-11-30 00:15:17 +05:30
PhilipWright96
e86b26a72e Make book reviews up to date (#321)
* Fix import typo

* Fix import typo

* Add yml file to schedule github action

* Undo import changes

* Formatting

* Fix imports

* Imports

* Add file extension

* Kick on branch

* Try using py

* Attempt adding semicolons

* Temporarily remove python call

* Remove space

* Leave only one line in

* Refactor syntax

* Update yml syntax

* Test

* Test

* Test

* Test

* Add import

* Add bs4 module

* Refactor yml

* Add missing quotation marks

* Cat newly created file for testing purposes

* Sort indents

* Properly sort indents

* Add extra import

* Update import

* Update JSON files

* Use secrets for API keys

* Update json

* Update JSON files

* Reorganize workflow

* Move into right directory

* Fix order

* Update JSON files

* Attempt to change account which makes commits

* Kick job

* Update JSON files

* Attempt commit with new bot email

* Kick

* Attempt new kick

* Update JSON files

* Attempt removing email

* Change for kick

* Update JSON files

* Re-add email

* Update JSON files

* Check pwd of github VM

* Update JSON files

* Attempt copying updating books.json to app data

* Update JSON files

* Remove the onpush setting

* Update install method

* Replace touch with just echo call

* Update JSON files

* Remove cat

* Rename email

* Stage individual files instead of all

* Update JSON files

Co-authored-by: Philip Wright <wrightphilip4@gmail.com.github.com>
Co-authored-by: Mind Expanding Books Bot <mindexpandingbooks@gmail.com.github.com>
Co-authored-by: mindexpandingbooksbot <runner@fv-az70-910.gpy01byny0buvbolry2rpgzvkd.bx.internal.cloudapp.net>
Co-authored-by: mindexpandingbooksbot <mindexpandingbooksbot@users.noreply.github.com>
2020-11-30 00:06:31 +05:30
Saurontm
48b16e1c8d added Slaughterhouse-Five by Kurt Vonnegut (#360) 2020-11-05 11:36:11 +05:30
Saurontm
ba8bd2f045 Update README.md
fixed book position
2020-11-05 11:34:44 +05:30
Sarah Almahmid
569741d47c added Factfullness 2020-11-05 11:34:44 +05:30
seemaj201274
923ef1ee9d Update README.md 2020-11-02 22:17:33 +05:30
seemaj201274
7a162b1f04 Update README.md 2020-10-31 11:06:37 +05:30
seemaj201274
a81ac25651 Update README.md 2020-10-31 11:06:37 +05:30
Sergio Baldo Junior
33efad1281 Added a new book Blindness - José Saramago 2020-10-31 11:05:31 +05:30
Sergio Baldo Junior
52918bae4d Book Blindness - Jose Saramado (Original Title - Ensaio sobre a cegueira) 2020-10-31 11:05:31 +05:30
Terrence Keane
a989ca1b6a add The Body 2020-10-31 11:04:35 +05:30
Jenni Macklin
e6382aa88a add the middle finger project 2020-10-31 11:02:16 +05:30
someshium
3890f96456 Added a new Book ' Karma Yoga' by Swami Vivekanand
sometimes a thought comes in mind to give up everything, there is so much attachment and suffering in this world. so should one leave everything a become a Sadhu? one should not move away from his responsibilities and one doesn't have to become the sadhu to get the peace. one can find peace in most noisy place in universe and in utmost silence. the book is somewhat different from normal self- help books.  it tells to not be attached to the work  which you are doing. 
it nicely explains the concept of religion and karma, work, why one needs to do the karma.
I feel this is the best book i have ever read.
2020-10-31 01:48:59 +05:30
seemaj20
add51b7e82 Added book to nature section. (#343)
* Update README.md

* Update README.md
2020-10-31 01:47:36 +05:30
Rehman Arshad
cc0515d66c added gatsby-plugin-manager which fixed the errors 2020-10-31 01:15:14 +05:30
Rehman Arshad
1632af7b67 added a dark mode class in global.css, and Fixed a ton of security vulnerabilities!!! 2020-10-31 01:15:14 +05:30
Jr Miranda
b405c7a806 Added the book The Disappearing Spoon 2020-10-31 01:12:26 +05:30
Kwame Violet Taylor
26656bafa9 Add Thus Spoke Zarathustra
This is one of my favorite books in general, and definitely my favorite philosophy book. I've read and re-read this book at pivotal moments in my life. Nietzsche is one of the first to spread the philosophy of "God is dead!" that now resembles Satanic beliefs, and is still a widely read book amongst Nihilists of all flavors. This book is not merely a critique on Christianity and organized religion; it is a manifesto of free will that people still read to this day. I highly recommend it as a mind-expanding book.
2020-10-31 01:04:13 +05:30
Cooper Hollmaier
9c966cc21e Added footer styles via footer-text 2020-10-29 12:48:44 +05:30
snehaj27
a39e38c580 Update README.md 2020-10-29 12:43:37 +05:30
Lucas Alves
2d71afbf5e Include everything beautiful by Jenna Bush Hager 2020-10-28 23:15:54 +05:30
seemaj20
6c43a5f56d Update README.md 2020-10-28 23:14:40 +05:30
Darko Bozhinovski
8c80de361c Fixes data entries for said books 2020-10-28 23:06:10 +05:30
Darko Bozhinovski
a893ef1171 Adds art as a category; Adds three book to art category; 2020-10-28 23:06:10 +05:30
Natalia Banasiewicz
b125c6e705 Fix typo in link to Goodreads 2020-10-28 23:03:40 +05:30
Natalia Banasiewicz
7fc9dca26e Added "Outnumbered" in Logic and Problem solving 2020-10-28 23:03:40 +05:30
Sebastian Sotavalta
de3b3db21e Added Data visualization handbook 2020-10-28 23:01:47 +05:30
Keerat Singh
9e415f4c73 fixed link formatting for "The Innovators" by Walter Isaacson 2020-10-28 13:56:17 +05:30
Keerat Singh
0e9f96be27 added "The Innovators" by Walter Isaacson 2020-10-28 13:56:17 +05:30
Shubham Ghimire
73058d651f Update README.md 2020-10-28 13:55:39 +05:30
Shubham Ghimire
fb0cba56bb Update README.md 2020-10-28 13:55:39 +05:30
Shubham Ghimire
5214f0cbba Update README.md 2020-10-28 13:55:39 +05:30
Dami
9d944378c8 Update CONTRIBUTING.md 2020-10-28 13:52:43 +05:30
tiagowutzke
7af707a571 adding data driven 2020-10-27 18:37:22 +05:30
Shubham Ghimire
9a821212bd Update README.md 2020-10-27 14:31:29 +05:30
Shubham Ghimire
f78852620c Update README.md 2020-10-27 14:31:29 +05:30
Kate Morf
e0c1230289 Add "AI Superpowers: China, Silicon Valley, and the New World Order" to Startups and Business 2020-10-27 13:38:09 +05:30
Yunus Kiper
283ddf3ced fix the name of Profiles of the Future 2020-10-27 00:54:15 +05:30
Yunus Kiper
bf4fda7318 Added Profiles of the Future by Arthur C. Clarke 2020-10-27 00:54:15 +05:30
amitesh03
2ac25fdbfb Added Autobiography of a Yogi 2020-10-26 22:57:04 +05:30
Celine
f8fe3e8953 Added 'Waters of the World' by Sarah Dry (#315) 2020-10-26 15:29:55 +05:30
Jenna Koslowski
10aa58a3ed edit for mobile and small screen readability 2020-10-26 12:34:19 +05:30
lapohjan
faa40a2130 about one mans journey to enlightenment but also about life itself 2020-10-25 23:08:01 +05:30
Saqib Ameen
3e9c89c4bc Update the order 2020-10-25 22:52:43 +05:30
Saqib Ameen
7a9b648e58 Add The Kite Runner by Khaled Hosseini 2020-10-25 22:52:43 +05:30
Sammy D
fee2000ed2 Added Brave New World by Aldous Huxley 2020-10-25 12:54:43 +05:30
a-thread
3e1fd761e8 removing extra parameters from book urls 2020-10-25 12:46:43 +05:30
a-thread
a284140772 adding cemetary boys, becoming a man, and paul takes the form of a mortal girl 2020-10-25 12:46:43 +05:30
yash016
4b192c8108 Added a book in Startup and Business section (#317)
* Added a new book in Startups and Business section

* Added a new book in Startups and Business section

Co-authored-by: Vishnu Ks <yo@vishnuks.com>
2020-10-25 12:46:00 +05:30
ariesthio
2bea8f1e1d Update books description 2020-10-25 12:43:36 +05:30
ariesthio
3c998f94fc Add google book api 2020-10-25 12:43:36 +05:30
Jonathan Martin
48ea125eba added a book under Science and Medicine
The Gene: An Intimate History by Siddhartha Mukherjee. 4.35 on Goodreads! A brilliant book that takes fascinating historical, social and scientific perspectives on genetics. Mukherjee discusses his own journey dealing with his family's genetics for Schizophrenia alongside the science he presents. This book is nothing if not mind expanding.
2020-10-25 12:31:14 +05:30
Jenna Schultz
9816ab055c Adding 2 new books (#311)
* Adding a book under Mystery

* Added a book under Science Fiction

Co-authored-by: Vishnu Ks <yo@vishnuks.com>
2020-10-25 12:30:14 +05:30
Troels Agergaard
55387bc554 Add space between nav-button and nav-item 2020-10-25 12:25:50 +05:30
Troels Agergaard
6648b56181 Add noreferrer to external link 2020-10-25 12:25:50 +05:30
Pravitha P
a3fa4726d7 updated year of publication
some of the year ofpublications were not in the table. that has been updated
2020-10-25 12:25:00 +05:30
YashAmin-01
5d5d90a20a added new book in mystery 2020-10-23 00:07:43 +05:30
YashAmin-01
700bfb7c9f Update README.md 2020-10-23 00:07:43 +05:30
YashAmin-01
275b1bcc97 added new science fiction book 2020-10-23 00:07:43 +05:30
Troels Agergaard
c13a65aeb2 Add alt attribute to Card.Img component 2020-10-23 00:07:15 +05:30
PrivateHank2
ee180c8068 Update README.md 2020-10-23 00:05:30 +05:30
Bhupendrapt5
0deea97ec6 updated Publish year of Classic fiction 2020-10-21 23:46:10 +05:30
YashAmin-01
cf43ea3086 Update README.md 2020-10-21 23:45:08 +05:30
YashAmin-01
5dcc780fc8 added new science fiction book 2020-10-21 23:45:08 +05:30
Sanket
0793edee1d Business book addition 2020-10-21 23:44:06 +05:30
Jackson Isaac
075a221392 Generalize nophoto url, update setting openlibrary URL 2020-10-21 23:42:02 +05:30
Jackson Isaac
4ec82e5448 Use openlibrary api when goodreads returns nophoto 2020-10-21 23:42:02 +05:30
Vagif
40eafd8623 Update README.md 2020-10-21 21:53:15 +05:30
Vagif
8615477f0c addded Deep work by Cal Newport to Education 2020-10-21 21:53:15 +05:30
snehaj27
4a8b11a5cc Update README.md 2020-10-21 21:52:38 +05:30
snehaj27
5117828a9d Update README.md 2020-10-21 21:52:38 +05:30
Samisha
e74a6e1ec0 fixed the text clashing pf reading list and filter 2020-10-20 23:03:14 +05:30
ana-vela
c9b56c3a4f Adding Bird by Bird 2020-10-20 23:00:43 +05:30
Bhupendrapt5
5c56e8540f Added One Day In Life Of Ivan denisovich 2020-10-20 23:00:06 +05:30
Bhupendrapt5
33d545a26b Added Thousands splendid Suns 2020-10-20 23:00:06 +05:30
Bhupendrapt5
3489f3d5c3 Updated publish year of The Book Thief & The Help 2020-10-20 23:00:06 +05:30
Sanket
28c6f9eaf8 Business book addition 2020-10-20 22:58:47 +05:30
Jackson Isaac
ce30d8b8b4 Fix typo in sample config file 2020-10-20 22:51:21 +05:30
Jackson Isaac
2656b43f51 Add new book: How Google Works 2020-10-20 22:50:25 +05:30
Jackson Isaac
50b542189c README.md: Add info about goodreads api 2020-10-20 00:51:51 +05:30
Sanket
3a0b94c846 Economics bood addition 2020-10-20 00:27:52 +05:30
Vladimir Tasic
2412ec36f9 Add react key for nav items 2020-10-20 00:26:59 +05:30
Vladimir Tasic
c2aae6dbd5 Remove react-native prop from react project (dev console error) 2020-10-20 00:26:32 +05:30
syd645
c03eab472b Added Educated by Tara Westover 2020-10-20 00:26:06 +05:30
Sanket
4bde8e6f0f Autobiography added 2020-10-18 23:01:27 +05:30
Vishnu KS
6bac7895ac Remove requirements.txt. 2020-10-18 16:29:03 +05:30
Vishnu KS
3bbc985ea3 utils: Include instructions on installing requirments. 2020-10-18 16:15:07 +05:30
Vishnu KS
a226450410 utils: Update requirments.txt. 2020-10-18 16:10:29 +05:30
veerbhadrasolanki
d5c6cd0be6 Add a book in Logic and Problem Solving 2020-10-18 11:42:40 +05:30
Irsyad Rahman
97522a0332 Improve bookcard UI responsiveness (#231)
* Improve bookcard responsive UI

* Hamburger menu

* Resolved conflict, mergin to upstream

* fix missing bookmark button
2020-10-18 11:39:57 +05:30
Deborah
d656841cb3 Edited the title of the book The Slight Edge 2020-10-17 23:06:54 +05:30
Deborah
f62088d411 Added The Slight Edge in Philosophy and Psychology 2020-10-17 23:06:54 +05:30
Eshan Agarwal
c85124cc55 Added a book Never Split the Difference in Startups and Business 2020-10-17 23:03:30 +05:30
Matteo Ruggiero
1489b1359e Adding a book (#262)
* Update README.md

Added The little prince, a classic book for children and old people, very educational

* Update README.md

* Update README.md
2020-10-17 01:17:57 +05:30
palak
e9e9b6755c changes to the sidebar, cards and footer (#237)
* added responsiveness to sidebar and sticky footer

* remobed unused vars

* added functionality to read more button

* a minor logical error fixed

* removed footer
2020-10-17 01:14:03 +05:30
Miguel Martín-Maestro López
18cc21b60d Update README.md
Add book The Sixth Extinction: An Unnatural History
2020-10-15 23:50:27 +05:30
Nickerchen
050ad48cd8 Added superforecasting (#265)
* Added The Language Instinct

* Added Superforecasting 


Removed extra book

Co-authored-by: Vishnu Ks <yo@vishnuks.com>
2020-10-15 23:49:06 +05:30
Sarrthak
eedf0ba7f1 Corrected Seq in Logic and Problem solving 2020-10-15 23:46:28 +05:30
Sarrthak
819ce9ba7c New book added to problem solving 2020-10-15 23:46:28 +05:30
Oleg Semenov
fe5aefd2c6 Added a book to Science and Medicine section 2020-10-15 23:37:54 +05:30
The Dude..io
30141d31f3 Smaller sidebar, visible header (#250) 2020-10-15 23:35:04 +05:30
Vishnu KS
1bfb3321a3 Add link to diff.blog. 2020-10-15 23:34:01 +05:30
Hrithik Singh
69d0848ed5 Added "My Inventions"
Added My Inventions: The Autobiography of Nikola Tesla into " Autobiographies and Biographies "
2020-10-15 01:52:56 +05:30
Unknown
43345db743 Added author of Passions within reason 2020-10-15 01:41:38 +05:30
Unknown
4daab218a0 Add passions within reason 2020-10-15 01:41:38 +05:30
Unknown
b3982bd426 Added The Language Instinct 2020-10-15 01:41:12 +05:30
Unknown
f258bea951 Added the elephant in the brain 2020-10-15 01:39:09 +05:30
ale2157
5163baa13b Added Gift of Fear
Added the book The Gift of Fear, a psychological and self-help book.
2020-10-15 01:35:33 +05:30
Hyunsujk
cd2c9ee334 ignore package-lock 2020-10-15 01:33:00 +05:30
Hyunsujk
8dbfeb1059 added key to FIELDS_TO_SORT_BY.map to resolve warning 2020-10-15 01:31:33 +05:30
Carl Dungca
9f2a822a54 Feature added: Mark to read (#252)
* Rendered a static reading list button to each bookcard component

* Attached click listener to bookmark button to log book data

* Clicking bookmark button saves book information to a localStorage array

* Updated card height to account for button

* Updated saveBookToLocalStorage function to use objects instead of arrays

* Can now toggle books in and out of localStorage

* Reverted previous 4 commits so that data isn't directly written to localStorage

* Created a sidebar link to reading list

* Added placeholder bookmarks page

* Bookmark button now updates state in index.js

* Initialized context API

* Wrote a reducer function to handle bookmark state changes

* Configured reducer to add books in and out of state

* Reading list is now preserved between state AND localStorage when changing categories

* Fixed some code format issues

* Rendered saved books in reading list component

* Toggle apperance of bookmark button

* Hacky fix for positioning of reading list sidebar link

* Adjusted style and alignment of bookmark button

* Added check to determine if window is defined in useEffect

* Exported the gatsby-ssr API
2020-10-15 01:30:46 +05:30
Elysia Ong
ef9fc03843 Style book card 2020-10-12 14:33:43 +05:30
Elysia Ong
454ada1ee6 Use goodreads icon 2020-10-12 14:33:43 +05:30
Elysia Ong
e2264c0eeb Fix typo in method name 2020-10-12 14:33:43 +05:30
Elysia Ong
695d92f465 Revert "Revert "Include goodreads image.""
This reverts commit f4446aff07.
2020-10-12 14:33:43 +05:30
Vishnu Ks
549b560748 Update CONTRIBUTING.md 2020-10-12 14:24:28 +05:30
Vishnu Ks
7bd8e6682b Update CONTRIBUTING.md 2020-10-12 14:23:22 +05:30
Vishnu KS
f4446aff07 Revert "Include goodreads image."
This reverts commit 872b09fe52.
2020-10-12 13:28:54 +05:30
Vishnu KS
fbec5ca04a Move when to run script to top. 2020-10-12 13:00:07 +05:30
Vishnu KS
c8634462fc Remove uncessary comment on the location of utils. 2020-10-12 12:57:51 +05:30
Vishnu KS
eee53f2f60 Fix books.json path in README. 2020-10-12 12:56:03 +05:30
Vishnu KS
c527547008 Include documentation on website and utils. 2020-10-12 12:53:50 +05:30
Vishnu KS
44c779acb5 Include race in index. 2020-10-12 11:46:30 +05:30
Vishnu KS
96d806ed6d Update description and mention app directory. 2020-10-12 11:45:39 +05:30
Vishnu KS
872b09fe52 Include goodreads image. 2020-10-12 11:44:57 +05:30
Taylor Johnston
fb36c7cde8 Added category "race" and book title 2020-10-12 11:34:49 +05:30
Samisha
5df6370439 Added And Then There Were None 2020-10-12 11:33:08 +05:30
Gal Elmalah
f36a9615a7 Update feed.js 2020-10-12 11:32:08 +05:30
Gal Elmalah
8cd6ba59d7 add useMemo and 3 more sortBy options 2020-10-12 11:32:08 +05:30
Gal Elmalah
e1962883f6 Update feed.js
to prevent books to be displayed out of order when the loading more books
2020-10-11 16:53:45 +05:30
Gal Elmalah
193f06bb21 Update feed.js 2020-10-11 16:53:45 +05:30
Gal Elmalah
68e0dbe1cb Update index.js 2020-10-11 16:53:45 +05:30
Gal Elmalah
dd7b9b6efb remove console.log form feed.js 2020-10-11 16:53:45 +05:30
Gal Elmalah
a1fa7011cd fix sorting by year and rating bug 2020-10-11 16:53:45 +05:30
Gal Elmalah
e50712e5bc remove console.logs 2020-10-11 16:53:45 +05:30
Gal Elmalah
c94bd9f3b3 sort by functionallity 2020-10-11 16:53:45 +05:30
Triin
de1bba855f Improved accessibility according to WCAG 2020-10-11 00:21:09 +05:30
testname
fbfd6d8384 Update PULL_REQUEST_TEMPLATE.md 2020-10-11 00:16:59 +05:30
testname
08ba2f9cbd Update PULL_REQUEST_TEMPLATE.md 2020-10-11 00:16:59 +05:30
Vishnu Ks
6bc3393293 Fix typo in installation instructions. 2020-10-11 00:05:57 +05:30
Vishnu Ks
04cc460bb5 Add instructions on setting up development environment. 2020-10-11 00:05:22 +05:30
Maureen Landgraf
3abe7db364 Added It by Stephen King
You can't have a list of horror books with Stephen King. 'It' will always be one of my favorite King books. The book effectively uses not only Pennywise as a horror element, but also real life threats such as Henry Bowers and his gang of school bullies and Bev's abusive father. While the book is plenty chilling, you also fall in love with the tight-knit group of misfits who are able to band together and defeat a monster that has existed since the beginning of time itself. The book is not only about monsters, but the power of friendship, which makes it so much more than your typical horror novel.
2020-10-09 23:40:23 +05:30
Vishnu KS
1a70bf665e readme: Include link to website. 2020-09-30 01:42:02 +05:30
Vishnu KS
5dc79eeca6 app: Use OutboundLink for Amazon links. 2020-09-27 22:39:41 +05:30
Vishnu KS
52e63d7c1d app: Include analytics. 2020-09-27 22:32:33 +05:30
Vishnu KS
c6197e9646 app: Include amazon links. 2020-09-27 16:02:12 +05:30
Samisha
18ef998136 app: Remove unused bookcard import. 2020-09-23 23:27:53 +05:30
Michelle Mei-Ling Sandford
64d9be9221 Update README.md 2020-09-19 16:33:49 +05:30
Lasse Schultebraucks
6e251e0699 Update README.md
added The Forever War
2020-09-17 13:27:31 +05:30
Michelle Mei-Ling Sandford
de9a3d4040 add Mismatch
add Mismatch: How Inclusion Shapes Design |  Kat Holmes
2020-09-16 21:38:31 +05:30
Vishnu KS
02148006ae Sort books by rating. 2020-08-23 23:46:26 +05:30
Vishnu KS
76f2f431c1 app: Update emoji in sidebar. 2020-08-23 23:37:13 +05:30
Vishnu KS
5bb6865ba6 utils: Run black. 2020-08-23 23:11:05 +05:30
Vishnu KS
9fe8505ea4 utils: Store only text as description. 2020-08-23 23:10:26 +05:30
Vishnu KS
52285301d1 utils: Update books.json. 2020-08-23 20:55:07 +05:30
Vishnu KS
843ed75db7 utils: Create basic tool to generate json files. 2020-08-23 16:07:56 +05:30
Vishnu KS
d723ec905b Install black. 2020-08-23 15:34:58 +05:30
Vishnu KS
3bd0ce9bd6 utils: Fix the REDAME input file name. 2020-08-23 15:27:44 +05:30
Vishnu KS
828a68fa75 Fix the category names. 2020-08-23 13:26:16 +05:30
Vishnu KS
1593c00620 Make category page work without errors 2020-08-23 12:49:02 +05:30
Vishnu KS
4d81bf3fe1 Configure eslint. 2020-08-23 00:58:19 +05:30
Vishnu KS
f985c157d9 Install eslint and prettier. 2020-08-23 00:57:54 +05:30
Vishnu KS
defa5cb196 Refactor feed into a component. 2020-08-23 00:28:09 +05:30
Vishnu KS
b4cde4c777 Make category pages work. 2020-08-22 23:06:37 +05:30
Vishnu KS
b8b957805e Bring back stars. 2020-08-22 16:50:14 +05:30
Vishnu KS
d620d9d08b Make basic version work using bootstrap. 2020-08-22 16:48:13 +05:30
Vishnu KS
0f3d13c58a Install react bootstrap. 2020-08-22 15:36:09 +05:30
Vishnu Ks
63633fcf57 Remove website. 2020-08-07 12:13:14 +05:30
SurajKhayamali
98013de897 Fix: Doesn't recognize scroll when html & body height are 100% 2020-06-17 22:14:46 +05:30
Suraj Khayamali
40d8e36880 Implemented infinite scroll 2020-06-17 22:14:46 +05:30
CEUK
302806920c Add "Happy" to Philosophy and Psychology 2020-02-24 18:46:56 +05:30
Eric Wehrmeister
629c6ef9d2 Fix ordering and update contribution guide 2020-01-27 12:17:46 +05:30
Eric Wehrmeister
6da704d06a Add Wheel of Time to Fiction/Fantsay 2020-01-27 12:17:46 +05:30
Igor Tarasenko
7cbabf11c3 Add "Behave" to "Evolution, Science and Medicine"
Add "Behave: The Biology of Humans at Our Best and Worst" by Robert M. Sapolsky
2020-01-24 13:29:52 +05:30
Parvathysubramanian
ad6e84654e Update the rating of The third Door
This is in reference to update the rating of The third door rating from 4.3 to 4.28, where I did mention as 4.3 in my previous pull request.
2019-12-21 00:05:04 +05:30
Parvathysubramanian
edad683fac Add The third door 2019-12-20 23:56:53 +05:30
Vishnu KS
a821f2a23d Remove BMC logo. 2019-12-06 20:05:15 +05:30
Bartłomiej Jacak
4e2f55598f Add "Homo Deus: A History of Tomorrow" to History 2019-11-04 00:31:19 +05:30
Liel Fridman
f50bdf9006 Improving the UI of book cards 2019-10-19 12:19:45 +05:30
Vishnu KS
edd2eef7f4 readme: Mention about the website. 2019-10-18 19:45:11 +05:30
Vishnu KS
3d24c54a6c src: Use shoe dog book as cover photo. 2019-10-18 19:43:07 +05:30
Denni Bevilacqua
b4b005460f Fix css class attribute in BookCard 2019-10-18 19:34:45 +05:30
Roberto Almeida
1e00c3442c Adds the book Illusions by Richard Bach 2019-10-18 19:21:11 +05:30
Josh RosenHanst
fb6e2e8b5d React error fixes (#180)
* fix className errors by replacing class= with className= in templates; remove unused imports

* fix component key warning by adding the node.id key to the component
2019-10-17 11:51:25 +05:30
Josh PC
89cdab6ad2 fix <div> inside <p> warning 2019-10-17 11:47:20 +05:30
Josh PC
bba3cfe578 add and implement react-star-ratings library 2019-10-17 11:47:20 +05:30
Josh PC
b9e8ae5bbf add year and ratings text display 2019-10-17 11:47:20 +05:30
Fred Adams
1acc7c9007 Fix order of books 2019-10-13 21:05:02 +05:30
xtrp
8022843544 add new book 2019-10-13 21:05:02 +05:30
Vishnu KS
15c5cd8505 app: Create basic app. 2019-10-13 20:19:56 +05:30
Vishnu KS
c2e244f784 utils: Add bunch of files to .gitignore. 2019-10-13 20:19:56 +05:30
Vishnu KS
49763eecd2 utils: Set book category in book object before storing. 2019-10-13 20:19:56 +05:30
Vishnu KS
63350a60a3 utils: Fix store_json dest. 2019-10-13 20:19:56 +05:30
Vishnu KS
5e02e59123 utils: Add flag to store json. 2019-10-13 20:19:56 +05:30
Vishnu KS
08b11eb478 utils: Add force option to always hit endpoint. 2019-10-13 20:19:56 +05:30
Vishnu KS
c619ae91f6 utils: Rename file_type to input_file_type. 2019-10-13 20:19:56 +05:30
Aditi Ahuja
a65474a397 Added an Oliver Sacks favourite 2019-10-09 14:43:17 +05:30
dzammit
3eb0b5b129 Added The Art of Deception
The world's most infamous hacker offers an insider's view of the low-tech threats to high-tech security
Kevin Mitnick's exploits as a cyber-desperado and fugitive form one of the most exhaustive FBI manhunts in history and have spawned dozens of articles, books, films, and documentaries.
2019-10-09 14:42:05 +05:30
dzammit
e8a127c823 Excellent exploration of the mind across different perspectives
A roller-coaster ride through the unpredictable, exciting, and challenging universe of computers, games, puzzles, mazes, and computer art. "Pickover's dazzling array of tortuous mind-benders and arcane minutiae delights and surprises. It's easy to get trapped in his enticing labyrinth of seductive mind games".--Science News.
2019-10-09 14:42:05 +05:30
Ashish Shenoy
b1b22e5a1f add George Orwell's 1984 to Classics 2019-10-09 14:41:31 +05:30
Prathamesh
98ebe2ffd9 Update the recent changes. 2019-10-04 13:51:36 +05:30
Prathamesh
45d98c7e39 Add Atomic Habits 2019-10-04 13:51:36 +05:30
Vishnu Ks
dcc0c64aea Add link to diff.blog. 2019-06-01 16:43:55 +05:30
Vishnu Ks
e66fb6c054 Remove PRs welcome badge.
It's obvious that PRs are welcome in a GitHub repositary.
2019-06-01 16:42:07 +05:30
Vishnu Ks
2989f26919 Remove link to books.zulipchat.com. 2019-06-01 16:42:07 +05:30
Sam Jeeves
5029549e2c Added The Martian to Science Fiction 2019-04-10 18:01:20 +05:30
Sam Jeeves
bbb331f0fa Added date for Hitchhiker's Guide to the Galaxy 2019-04-10 18:01:20 +05:30
Sean Campbell
c581cc1dfb updated ordering 2019-03-23 13:01:53 +05:30
Sean Campbell
708e20ba85 natac13 added Atlas Shrugged by Ayn Rand to Fiction/Classics 2019-03-23 13:01:53 +05:30
Sean Campbell
d34d8d49af Add 2 Napoleon Hill books 2019-03-23 02:31:37 +05:30
Daniele Ascione
810c497558 Added Einstein biography by Isaacson 2019-03-23 02:15:40 +05:30
Vishnu Ks
834854a36c Add link to zulip organization. 2019-02-22 23:07:36 +05:30
Vishnu Ks
066d05c0af Fix Lord of The Rings date. 2019-01-29 20:26:24 +05:30
bschlagel
9bf3627795 Add Cosmicomics
This is lesser-known Calvino, but actually my favorite of his works that I've read. It's just so weird! — a collection of stories about the deep history of the universe, featuring decidedly atypical protagonists (particles, formulae, evolving organisms, etc.) and a range of witty magical realism… Reads like vignettes from a strange alternate history of the cosmos…
2019-01-29 11:49:59 +05:30
bschlagel
2b92156cc1 Add Origins of Form
All about form and structure — how things are made, and how they're constrained, from the structural efficiencies and limitations of natural materials, to differences in building/manufacturing practices we might consider in light of what we want to optimize for… It's not only well-written, but graced with lovely illustrations on almost every page, of things ranging from cell structures to ancient tools to the various ways things can break. It also works up to some interesting conclusions…moving from elements of form and structure, to historical and evolutionary influences, the "dictates of chance" on what things exist, and unifying principles of the physical world.
2019-01-29 11:49:12 +05:30
bschlagel
4d0e21a999 Add Bolo'bolo
* Added "Bolo'bolo"

Weird and wonderful little book that proposes a whole societal structure of radical autonomous communities — complete with an invented language to describe the parts of this new community vision, and their machinations. Very eye-opening; in some ways it's a strange and impractical utopian dream; in others it's a sobering and critical plea for reorganizing society along lines of greater sustainability and social cohesion. Very interesting whichever way you look at it!
2019-01-29 11:48:29 +05:30
Vishnu Ks
7de464fa23 Added: Life at the Speed of Light (#132)
It covers the developments of synthetic biology through 2012, and the creation of the first synthetic lifeform by J. Craig Venter.
2019-01-28 12:09:17 +05:30
bschlagel
46feb27687 Added "Le Ton beau de Marot" (#150)
An incredible book about the art of translation, and a million other very welcome tangents. Hofstadter spins endless threads of ideas around a fascinating central premise: that a specific favorite poem of his, by a fairly obscure 16th century French poet, can spark an infinite variety of translations. There are 80+ of these translations sprinkled throughout the book, from friends and family, students and colleagues, noted translators and computer programs (and many by Hofstadter himself). Among them, a feast of academic lessons and personal reflections interwoven into a testament to the complexity and magic of translation and a whole lot of fascinating problems posed by language, literature, cognition and more. I've owned Hofstadter's infamous Gödel, Escher, Bach for a few years now, and still haven't finished swashbuckling my way through it — but I found this one thematically related yet more accessible, a great entrance point to a capacious and curious mind.
2019-01-28 12:08:18 +05:30
Utkarsh Gupta
9a2318c00c [Added] A book in the Autobiographies & Biographies Section. 2019-01-28 12:05:04 +05:30
lupeidi
8b982eb061 Added The Immortal Life of Henrietta Lacks 2019-01-28 12:03:13 +05:30
bschlagel
4e8712a154 Added "Pilgrim at Tinker Creek"
Really wonderful book about nature, the passage of time, and really paying attention to the world around you. The whole book could almost be categorized as prose poetry; it's not a large volume but took me a while to get through just due to the sheer density of lush and sensitive description. It chronicles a year in which both nothing and everything seems to happen; Dillard mostly hangs out around her home and its backyard creek (or at least, the book is constrained mostly to these experiences) but manages to evoke transcendent beauty and spirituality, capturing cycles of predator and prey, weather, and her own reactions to the unfolding of life in its infinite forms.
2019-01-28 12:01:14 +05:30
Solomon H
f741582866 Add Shoe Dog 2019-01-28 11:58:09 +05:30
Peter Pelberg
32e21b16ad Changing position to conform w/ Goodreads Rating rank 2019-01-24 13:02:48 +05:30
Alexander Weiher
37f4220178 update book to the correct position as suggested by @hackerid 2018-12-30 21:53:04 +05:30
defel
75f0f09275 add: Overcoming Gravity: A Systematic Approach to Gymnastics and Bodyweight Strength 2018-12-30 21:53:04 +05:30
Julien Chien
3c92a18525 capitalization + year for Jane Eyre 2018-12-05 00:11:57 +05:30
Ah-dri-Anna
71974a19fb Update README.md
Author's name is Ian MORRIS not "Morrisage"
https://www.amazon.com/Ian-Morris/e/B001IQZPSC
2018-06-12 23:36:49 +05:30
Ron Suhodrev
7ba90048f7 Add Mistborn by Brandon Sanderson
All of his Cosmere books are amazing, and I suggest people start with "The Final Empire" - the first book of the Mistborn trilogy.
2018-03-26 10:57:57 +05:30
Franciosi
896c165222 Update README.md 2018-03-12 15:44:54 +05:30
Vishnu Ks
91d197c82e fix odering of books in philisophy section. 2018-03-12 15:42:30 +05:30
Andre LaFleur
d056b55fc9 Fix Brene Brown link and add Meditations by Marcus Aurelius 2018-03-12 15:36:31 +05:30
Vishnu Ks
87198913ea Add link to BMAC account. 2018-03-04 15:08:21 +05:30
Vishnu Ks
3b70e71567 Use markdown for buy me a coffee. 2018-03-04 15:06:06 +05:30
Vishnu Ks
e865b1f12b readme: Add buy me a coffee badge. 2018-03-04 14:57:00 +05:30
61 changed files with 65794 additions and 511 deletions

View File

@@ -1,3 +1,5 @@
(todo:please remove this todo and the sections you did not check below before you make your pull request.
If you are unsure, please check other PRs like this one: https://github.com/hackerkid/Mind-Expanding-Books/pull/207#issue-377268434)
## In this pull request
- [ ] I am adding a new book.

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
.DS_Store

View File

@@ -1,10 +1,24 @@
# Contribution Guidelines
Please ensure your pull request adheres to the following guidelines:
## What are the criteria for adding a new book?
The mission of this list is to curate books that can change the lives of people for the better.
- Search previous suggestions before making a new one, as yours may be a duplicate.
- if you want to add a new book you should have read the book.
- Use the following format: `| Book name | Author | [Goodreads rating](Goodreads url) | Year published |`
- Mention in pull request clearly why you think the book deserve to be in the list.
So you should add a book that has changed your life!!
Here are some questions that you can potentially ask yourself to help make this decision. If the answer is yes for most of them, feel free to create a pull request!
1. If you had the money to gift a book to every college graduate this year, would you gift this book?
2. Would you gift this book to your children at any point in their lives?
3. If there are only 3 books that you can keep a physical copy of in your life, would this book be one of them?
4. Would your life have been better off had you read this book 10 years back?
5. Would this book be relevant 1000 years from now?
## How to create a pull request?
- Search for existing books in [README.md](README.md) and make sure that you are not adding a duplicate.
- Insert the book in the following format in [README.md](README.md). Don't change any other files.
`| Book name | Author | [Goodreads rating](Goodreads url) | Year published |`
- Make sure that the book is inserted in the correct order according to the Goodreads rating.
- Mention in pull request clearly why you think the book deserves to be on the list.
Thank you!

446
README.md
View File

@@ -1,44 +1,81 @@
# Mind Expanding Books
[![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) [![Join the chat at https://gitter.im/hackerkid/bots](https://badges.gitter.im/hackerkid/bots.svg)](https://gitter.im/hackerkid/Mind-Expanding-Books?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)
> Curated list of mind expanding books.
Looking to find a book an interesting book to read but don't know where to start? You are in the right place!
See [Contributing Guidelines](CONTRIBUTING.md) for details on how the books are curated.
<a id="top"></a>
## Table of Contents
* [Startups and Business](#startups-and-business)
* [Philosophy and Psychology](#philosophy-and-psychology)
* [Autobiographies and Biographies](#autobiographies-and-biographies)
* [History](#history)
* [Evolution, Science and Medicine](#science-and-medicine)
* [Logic and Problem Solving](#logic-and-problem-solving)
* [Politics](#politics)
* [Economics](#economics)
* [Gender](#gender)
* [Sexuality](#sexuality)
* [Education](#education)
* [Writing](#writing)
* [Theater and Film](#theater-and-film)
* [Fiction](#fiction)
* [Health](#health)
* [Design](#design)
* [Travel](#travel)
- [Mind Expanding Books](#mind-expanding-books)
- [Table of Contents](#table-of-contents)
- [Books](#books)
- [Startups and Business](#startups-and-business)
- [Philosophy And Psychology](#philosophy-and-psychology)
- [Autobiographies and Biographies](#autobiographies-and-biographies)
- [History](#history)
- [Science and Medicine](#science-and-medicine)
- [Logic and Problem Solving](#logic-and-problem-solving)
- [Politics](#politics)
- [Economics](#economics)
- [Gender](#gender)
- [Sexuality](#sexuality)
- [Race](#race)
- [Education](#education)
- [Writing](#writing)
- [Theater and Film](#theater-and-film)
- [Shakespeare](#shakespeare)
- [Fiction](#fiction)
- [Classics](#classics)
- [Fantasy](#fantasy)
- [Historical Fiction](#historical-fiction)
- [Humor](#humor)
- [Mystery](#mystery)
- [Science Fiction](#science-fiction)
- [Horror](#horror)
- [Miscellaneous](#miscellaneous)
- [Health](#health)
- [Design](#design)
- [Travel](#travel)
- [Language](#language)
- [Nature](#nature)
- [Art](#art)
- [Credits](#credits)
- [License](#license)
# Books
## Startups and Business
| Name | Author | Goodreads Rating | Year Published |
|------|--------|------------------|----------------|
| Shoe Dog: A Memoir by the Creator of Nike | Phil Knight | [4.46](https://www.goodreads.com/book/show/27220736-shoe-dog) | 2016 |
| The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company | Robert Iger, Joel Lovell | [4.44](https://www.goodreads.com/book/show/44525305-the-ride-of-a-lifetime) | 2019 |
| Bad Blood: Secrets and Lies in a Silicon Valley Startup | John Carreyrou | [4.4](https://www.goodreads.com/book/show/37976541-bad-blood) | 2018 |
| The Compound Effect | Darren Hardy | [4.40](https://www.goodreads.com/book/show/9420697-the-compound-effect) | 2010 |
| Never Split the Difference | Chris Voss | [4.39](https://www.goodreads.com/book/show/26156469-never-split-the-difference) | 2016 |
| Failing to Succeed: The Story of India's First E-Commerce Company | K. Vaitheeswaran | [4.39](https://www.goodreads.com/book/show/35626210-failing-to-succeed) | 2017 |
| High Output Management | Andy Grove | [4.38](https://www.goodreads.com/book/show/324750.High_Output_Management) | 1995 |
| Outwitting the Devil: The Secret to Freedom and Success | Napoleon Hill | [4.38](https://www.goodreads.com/book/show/10713286-outwitting-the-devil) | 2011 |
| The Millionaire Fastlane: Crack the Code to Wealth and Live Rich for a Lifetime! | M.J. DeMarco | [4.28](https://www.goodreads.com/book/show/18872437-the-millionaire-fastlane) | 2011 |
| How to Get From Where You Are to Where You Want to Be : The 25 Principles of Success | Jack Canfield, Janet Switzer | [4.26](https://www.goodreads.com/book/show/96593.The_Success_Principles) | 2007 |
| The Big Short: Inside the Doomsday Machine | Michael Lewis | [4.26](https://www.goodreads.com/book/show/8032112-the-big-short) | 2015 |
| The Future Is Faster Than You Think: How Converging Technologies Are Transforming Business, Industries, and Our Lives | Peter H. Diamandis, Steven Kotler | [4.25](https://www.goodreads.com/book/show/52290273-the-future-is-faster-than-you-think) | 2020 |
| The Middle Finger Project | Ash Ambirge | [4.22](https://www.goodreads.com/book/show/46064079-the-middle-finger-project?from_search=true&from_srp=true&qid=WY4obsfps3&rank=1) | 2020 |
| Creativity, Inc.: Overcoming the Unseen Forces That Stand in the Way of True Inspiration | Ed Catmull, Amy Wallace | [4.21](https://www.goodreads.com/book/show/18077903-creativity-inc) | 2014 |
| The Score Takes Care of Itself: My Philosophy of Leadership | Bill Walsh, Steve Jamison, Craig Walsh | [4.21](https://www.goodreads.com/book/show/6342995-the-score-takes-care-of-itself) | 2009 |
| The Hard Thing About Hard Things: Building a Business When There Are No Easy Answers | Ben Horowitz | [4.20](https://www.goodreads.com/book/show/18176747-the-hard-thing-about-hard-things) | 2014 |
| Think and Grow Rich | Napoleon Hill | [4.17](https://www.goodreads.com/book/show/30186948-think-and-grow-rich) | 1937 |
| AI Superpowers: China, Silicon Valley, and the New World Order | Kai-Fu Lee | [4.16](https://www.goodreads.com/book/show/38242135-ai-superpowers) | 2018 |
| Nail it then Scale it: The Entrepreneur's Guide to Creating and Managing Breakthrough | Nathan Furr | [4.13](https://www.goodreads.com/book/show/12236649-nail-it-then-scale-it) | 2011 |
| Outliers: Story of Success | Malcolm Gladwell | [4.11](https://www.goodreads.com/work/quotes/3364437-outliers-the-story-of-success) | 2008 |
| The Strategy and Tactics of Pricing : A Guide to Move More Profitable | Thomas Nagle, John Hogan, Joseph Zale | [4.09](https://www.goodreads.com/book/show/99919.The_Strategy_and_Tactics_of_Pricing) | 2005 |
| Principles: Life and Work | Ray Dalio | [4.07](https://www.goodreads.com/book/show/34536488-principles) | 2017 |
| Start with Why: How Great Leaders Inspire Everyone to Take Action | Simon Sinek | [4.07](https://www.goodreads.com/book/show/7108725-start-with-why) | 2009 |
| Leaving Microsoft to Change the World: An Entrepreneur's Odyssey to Educate the World's Children | John Wood | [4.07](https://www.goodreads.com/book/show/95429.Leaving_Microsoft_to_Change_the_World) | 2006 |
| Hackers and Painters | Paul Graham | [4.06](https://www.goodreads.com/book/show/41793.Hackers_Painters) | 2004 |
| How Google Works | Eric Schmidt, Jonathan Rosenberg | [4.06](https://www.goodreads.com/book/show/23158207-how-google-works) | 2014 |
| Crucial Conversations: Tools for Talking When Stakes Are High | Kerry Patterson, Joseph Grenny, Ron McMillan, Al Switzler | [4.05](https://www.goodreads.com/book/show/15014.Crucial_Conversations) | 2002 |
| Good to Great: Why Some Companies Make the Leap And Others Don't | Jim Collins | [4.05](https://www.goodreads.com/book/show/76865.Good_to_Great) | 2001 |
| The Lean Startup: How Constant Innovation Creates Radically Successful Businesses | Eric Ries | [4.04](https://www.goodreads.com/book/show/10127019-the-lean-startup) | 2011 |
| The Power of Full Engagement: Managing Energy, Not Time, is the Key to High Performance and Personal Renewal | Jim Loehr, Tony Schwartz | [4.03](http://www.goodreads.com/book/show/68985.The_Power_of_Full_Engagement) | 2005 |
@@ -53,7 +90,7 @@
| SuperFreakonomics: Global Cooling, Patriotic Prostitutes, and Why Suicide Bombers Should Buy Life Insurance | Steven D. Litt | [3.96](https://www.goodreads.com/book/show/6402364-superfreakonomics) | 2009 |
| The Ten Faces of Innovation | Tom Kelley | [3.96](https://www.goodreads.com/book/show/95656.The_Ten_Faces_of_Innovation) | 2005 |
| Rich Dad Poor Dad : What The Rich Teach Their Kids About Money That The Poor And Middle Class Don't | Robert T. Kiyosaki | [3.95](https://www.goodreads.com/book/show/69571.Rich_Dad_Poor_Dad) | 1997 |
| Founders At Work: Stories Of Startups Early Days | Jessica Livingston | [3.94](https://www.goodreads.com/book/show/98233.Founders_at_Work) | |
| Founders At Work: Stories Of Startups Early Days | Jessica Livingston | [3.94](https://www.goodreads.com/book/show/98233.Founders_at_Work) | 2007 |
| The Paypal Wars | Eric M. Jackson | [3.94](https://www.goodreads.com/book/show/4052.The_PayPal_Wars) | 2010 |
| Lean In : Women, Work and the Will to Lead | Sheryl Sandberg | [3.94](http://www.goodreads.com/book/show/16071764-lean-in) | 2013 |
| ReWork: Change the Way You Work Forever | David Heinemeier Hansson | [3.93](https://www.goodreads.com/book/show/6732019-rework) | 2010 |
@@ -67,213 +104,296 @@
| The Black Swan: The Impact of the Highly Improbable | Nassim Nicholas Taleb | [3.88](http://www.goodreads.com/book/show/242472.The_Black_Swan) | 2007 |
| Contagious: Why Things Catch On | Jonah Berger | [3.88](https://www.goodreads.com/book/show/15801967-contagious) | 2013 |
| Who Says Elephants Can't Dance?: Leading a Great Enterprise through Dramatic Change | Louis V Gerstner, Jr | [3.88](https://www.goodreads.com/book/show/603985.Who_Says_Elephants_Can_t_Dance_) | 2003 |
| Linchpin: Are You Indispensable | Seth Godin | [3.87](https://www.goodreads.com/book/show/7155145-linchpin) | |
| Linchpin: Are You Indispensable | Seth Godin | [3.87](https://www.goodreads.com/book/show/7155145-linchpin) | 2010 |
| The $100 Startup: Reinvent the Way You Make a Living, Do What You Love, and Create a New Future | Chris Guillebeau | [3.85](https://www.goodreads.com/book/show/12605157-the-100-startup) | 2012 |
| Too Big to Fail | Andrew Ross Sorkin | [3.85](https://www.goodreads.com/book/show/6687247-too-big-to-fail) | 2011 |
| The Paradox of Choice: Why More Is Less | Barry Shwartz | [3.84](https://www.goodreads.com/book/show/10639.The_Paradox_of_Choice) | 2005 |
| The Art of the Start: The Time-Tested, Battle-Hardened Guide for Anyone Starting Anything | Guy Kawasaki | [3.82](https://www.goodreads.com/book/show/37875.The_Art_of_the_Start) | 2004 |
| Crowdsourcing: Why the Power of the Crowd Is Driving the Future of Business | Jeff Howe | [3.82](https://www.goodreads.com/book/show/2601510-crowdsourcing) | |
| Cognitive Surplus: Creativity and Generosity in a Connected Age | Clay Shirky | [3.82](https://www.goodreads.com/book/show/7614793-cognitive-surplus) | |
| Zero to One | Peter Thiel, Blake Masters | [3.75](https://www.goodreads.com/book/show/18050143-zero-to-one) | |
| One Click: Jeff Bezos and the Rise of Amazon.com | Richard Brandt | [3.75](https://www.goodreads.com/book/show/11223478-one-click) | |
| Crowdsourcing: Why the Power of the Crowd Is Driving the Future of Business | Jeff Howe | [3.82](https://www.goodreads.com/book/show/2601510-crowdsourcing) | 2008 |
| Cognitive Surplus: Creativity and Generosity in a Connected Age | Clay Shirky | [3.82](https://www.goodreads.com/book/show/7614793-cognitive-surplus) | 2010 |
| Data Driven | D.J. Patil | [3.80](https://www.goodreads.com/book/show/24780653-data-driven) | 2015 |
| Zero to One | Peter Thiel, Blake Masters | [3.75](https://www.goodreads.com/book/show/18050143-zero-to-one) | 2014 |
| One Click: Jeff Bezos and the Rise of Amazon.com | Richard Brandt | [3.75](https://www.goodreads.com/book/show/11223478-one-click) | 2011 |
| Big Data: A Revolution That Will Transform How We Live, Work, and Think | Kenneth Cukier | [3.70](https://www.goodreads.com/book/show/15815598-big-data) | 2013 |
| The 4-Hour Work Week: Escape the 9-5, Live Anywhere and Join the New Rich | Timothy Ferriss | [3.61](https://www.goodreads.com/book/show/368593.The_4_Hour_Workweek) | 2012 |
| The Accidental Billionaires : The Founding of Facebook, a Tale of Sex, Money, Genius and Betrayal | Ben Mezrich | [3.50](https://www.goodreads.com/book/show/6326920-the-accidental-billionaires) | 2009 |
If you like Mind Expanding books you should check out my new project http://diff.blog. It's a platform that help you keep updated with the developer community.
<a href="#top"><img src="https://img.shields.io/badge/Back%20to%20Top-↑-blue"/></a>
## Philosophy And Psychology
| Name | Author | Goodreads Rating | Year Published |
|------|--------|------------------|----------------|
| The Almanack of Naval Ravikant: A Guide to Wealth and Happiness | Eric Jorgenson | [4.64](https://www.goodreads.com/book/show/54898389-the-almanack-of-naval-ravikant) | 2020 |
| Karma Yoga | Swami Vivekanand | [4.51](https://www.goodreads.com/book/show/827031.Karma_Yoga) | 1999 |
| The Ascent of Humanity | Charles Eisenstein | [4.43](https://www.goodreads.com/book/show/482505.The_Ascent_of_Humanity) | 2007
| Tattoos on the Heart: The Power of Boundless Compassion | Gregory Boyle | [4.41](https://www.goodreads.com/book/show/7090193-tattoos-on-the-heart) | 2010 |
| The Slight Edge - Secret to a Successful Life | Jeff Olson | [4.39](https://www.goodreads.com/book/show/590652.The_Slight_Edge) | 2005 |
| Education and the Significance of Life | Krishnamurti | [4.38](https://www.goodreads.com/book/show/353435.Education_and_the_Significance_of_Life) | 2008 |
| Passions Within Reason: The Strategic Role of the Emotions | Robert H. Frank | [4.34](https://www.goodreads.com/book/show/452114.Passions_Within_Reason) | 1989 |
| The Daily Stoic: 366 Meditations on Wisdom, Perseverance, and the Art of Living | Ryan Holiday, Stephan Hanselman | [4.34](https://www.goodreads.com/book/show/29093292-the-daily-stoic) | 2016 |
| Man's Search for Meaning | Viktor E. Frankl | [4.33](https://www.goodreads.com/book/show/4069.Man_s_Search_for_Meaning) | 2006 |
| Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones| James Clear | [4.32](https://www.goodreads.com/book/show/40121378-atomic-habits) | 2018 |
| The User Illusion: Cutting Consciousness Down to Size | Tor Norretranders | [4.30](https://www.goodreads.com/book/show/106732.The_User_Illusion) | 1999 |
| Born to Run: A Hidden Tribe, Superathletes, and the Greatest Race the World Has Never Seen | Christopher McDougall | [4.27](https://www.goodreads.com/book/show/6289283-born-to-run) | 2009 |
| Prometheus Rising | Robert Anton Wilson | [4.26](https://www.goodreads.com/book/show/28597.Prometheus_Rising) | 2010 |
| The Concise 48 Laws of Power | Robert Greene | [4.25](https://www.goodreads.com/book/show/18224060-the-concise-48-laws-of-power) | 2011 |
| The Hero with a Thousand Faces | Joseph Campbell | [4.24](https://www.goodreads.com/book/show/588138.The_Hero_With_a_Thousand_Faces) | 1972 |
| The Magic of Thinking Big | David J. Schwartz | [4.23](https://www.goodreads.com/book/show/759945.The_Magic_of_Thinking_Big) | 1959 |
| Zen Mind, Beginner's Mind | Shunryu Suzuki, David Chadwick | [4.23](https://www.goodreads.com/book/show/402843.Zen_Mind_Beginner_s_Mind) | |
| The Age of Insight: The Quest to Understand the Unconscious in Art, Mind, and Brain, from Vienna 1900 to the Present | Eric Kandel | [4.22](https://www.goodreads.com/book/show/12263681-the-age-of-insight) | 2012 |
| Meditations | Marcus Aurelius | [4.21](https://www.goodreads.com/book/show/30659.Meditations) | |
| Influence: The Psychology of Persuasion | Robert B. Cialdini | [4.18](https://www.goodreads.com/book/show/5752.The_Blank_Slate) | 2006 |
| The Gift of Fear: Survival Signals That Protect Us from Violence | Gavin de Becker | [4.18](https://www.goodreads.com/book/show/56465.The_Gift_of_Fear) | 2000 |
| Gifts of Imperfection | Brene Brown | [4.18](https://www.goodreads.com/book/show/7015403-the-gifts-of-imperfection) | |
| Metamagical Themas: Questing For The Essence Of Mind And Pattern | Douglas Hofstadter | [4.16](https://www.goodreads.com/book/show/181239.Metamagical_Themas) | 1996 |
| The Truth About Everything: An Irreverent History of Philosophy : With Illustrations | Matthew Stewart | [4.15](https://www.goodreads.com/book/show/18528861-the-truth-about-everything) | 1997 |
| Illusions: The Adventures of a Reluctant Messiah | Richard Bach | [4.15](https://www.goodreads.com/book/show/29946.Illusions) | 1977 |
| How to Win Friends and Influence People | Dale Carnegie | [4.14](https://www.goodreads.com/book/show/4865.How_to_Win_Friends_and_Influence_People) | 1998 |
| Creative Visualization: Use the Power of Your Imagination to Create What You Want in Your Life | Shakti Gawain | [4.13](https://www.goodreads.com/book/show/582533.Creative_Visualization) | 2002 |
| Bulfinch's Mythology | Thomas Bulfinch | [4.13](https://www.goodreads.com/book/show/588147.Bulfinch_s_Mythology) | 1998 |
| Ego Is the Enemy | Ryan Holiday | [4.12](https://www.goodreads.com/book/show/27036528-ego-is-the-enemy) | 2016 |
| Awaken the Giant Within: How to Take Immediate Control of Your Mental, Emotional, Physical and Financial Destiny! | Anthony Robbins | [4.11](https://www.goodreads.com/book/show/180116.Awaken_the_Giant_Within) | |
| Awaken the Giant Within: How to Take Immediate Control of Your Mental, Emotional, Physical and Financial Destiny! | Anthony Robbins | [4.11](https://www.goodreads.com/book/show/180116.Awaken_the_Giant_Within) | 1991 |
| The Power of Now: A Guide to Spiritual Enlightenment | Eckhart Tolle | [4.11](https://www.goodreads.com/book/show/6708.The_Power_of_Now) | 1997 |
| Tuesdays with Morrie | Mitch Albom | [4.11](https://www.goodreads.com/book/show/6900.Tuesdays_with_Morrie) | 1997 |
| The Way of the Monk | Gaur Gopal Das | [4.10](https://www.goodreads.com/book/show/45712959-the-way-of-the-monk) | 2020 |
| Predictably Irrational | Dan Ariely | [4.10](https://www.goodreads.com/book/show/1713426.Predictably_Irrational) | 2008 |
| Flow: The Psychology of Optimal Experience | Mihaly Csikszentmihalyi | [4.10](https://www.goodreads.com/book/show/66354.Flow) | 1990 |
| Thinking, Fast and Slow | Daniel Kahneman | [4.09](https://www.goodreads.com/book/show/11468377-thinking-fast-and-slow) | 2011 |
| Irrational Man: A Study in Existential Philosophy | William Barrett | [4.09](https://www.goodreads.com/book/show/83321.Irrational_Man) | |
| The Beginning of Infinity: Explanations That Transform the World | David Deutsch | [4.08](https://www.goodreads.com/book/show/10483171-the-beginning-of-infinity) | |
| Happy: Why More or Less Everything is Absolutely Fine | Derren Brown | [4.08](https://www.goodreads.com/book/show/30142270-happy) | 2016 |
| The Beginning of Infinity: Explanations That Transform the World | David Deutsch | [4.08](https://www.goodreads.com/book/show/10483171-the-beginning-of-infinity) | 2011 |
| Metaphors We Live By | George Lakoff, Mark Johnson | [4.08](https://www.goodreads.com/book/show/34459.Metaphors_We_Live_By) | 2003 |
| Grit | Angela Duckworth | [4.08](https://www.goodreads.com/book/show/27213329-grit) | 2016 |
| In Defense of Food: An Eater's Manifesto | Michael Pollan | [4.07](https://www.goodreads.com/book/show/315425.In_Defense_of_Food) | 2008 |
| The Blank Slate: The Modern Denial of Human Nature | Steven Pinker | [4.07](http://www.goodreads.com/book/show/5752.The_Blank_Slate) | 2003 |
| The History of Western Philosophy | Bertrand Russell | [4.06](https://www.goodreads.com/book/show/243685.A_History_of_Western_Philosophy) | 2008 |
| Moral Tribes: Emotion, Reason, and the Gap Between Us and Them | Joshua Greene | [4.05](https://www.goodreads.com/book/show/17707599-moral-tribes) | 2013 |
| Thus Spoke Zarathustra | Friedrich Nietzsche | [4.05](https://www.goodreads.com/book/show/51893.Thus_Spoke_Zarathustra) | 1883 |
| The Elephant in the Brain: Hidden Motives in Everyday Life | Kevin Simler, Robin Hanson | [4.05](https://www.goodreads.com/book/show/28820444-the-elephant-in-the-brain) | 2017 |
| Quiet: The Power of Introverts in a World That Can't Stop Talking | Susan Cain | [4.04](https://www.goodreads.com/book/show/8520610-quiet) | 2012 |
| The Future of the Mind: The Scientific Quest to Understand, Enhance, and Empower the Mind | Michio Kaku | [4.04](https://www.goodreads.com/book/show/17978489-the-future-of-the-mind) | 2014 |
| Every Thing Must Go: Metaphysics Naturalized | James Ladyman, Don Ross, et al | [4.04](https://www.goodreads.com/book/show/757403.Every_Thing_Must_Go) | 2007 |
| Antifragile: Things That Gain from Disorder (Incerto) | Nassim Nicholas Taleb | [4.04](https://www.goodreads.com/book/show/13530973-antifragile) | 2012 |
| Mindset: The new psychology of success | Carol S. Dweck,Ph.D. | [4.04](https://www.goodreads.com/book/show/40745.Mindset) | 2006 |
| The Power of Habit: Why We Do What We Do In Life And Business | Charles Duhigg | [4.03](https://www.goodreads.com/book/show/12609433-the-power-of-habit) | 2012 |
| The Upside of Irrationality: The Unexpected Benefits of Defying Logic | Dan Ariely | [4.00](https://www.goodreads.com/book/show/7815744-the-upside-of-irrationality) | |
| The Upside of Irrationality: The Unexpected Benefits of Defying Logic | Dan Ariely | [4.00](https://www.goodreads.com/book/show/7815744-the-upside-of-irrationality) | 2010 |
| Outsmarting IQ: The Emerging Science of Learnable Intelligence | David Perkins | [4.00](https://www.goodreads.com/book/show/1008488.Outsmarting_Iq) | 1995 |
| The Art of War | Sun Tzu | [3.95](https://www.goodreads.com/book/show/10534.The_Art_of_War) | 2005 |
| Willpower: Rediscovering the Greatest Human Strength | Ron P. Baumeister, John Tierney | [3.95](https://www.goodreads.com/book/show/11104933-willpower) | 2011 |
| A Whole New Mind: Why Right-Brainers Will Rule the Future | Daniel H. Pink | [3.95](https://www.goodreads.com/book/show/99315.A_Whole_New_Mind) | |
| Vagabonding: An Uncommon Guide to the Art of Long-Term World Travel | Rolf Potts | [3.92](https://www.goodreads.com/book/show/100247.Vagabonding) | |
| A Whole New Mind: Why Right-Brainers Will Rule the Future | Daniel H. Pink | [3.95](https://www.goodreads.com/book/show/99315.A_Whole_New_Mind) |2006 |
| Vagabonding: An Uncommon Guide to the Art of Long-Term World Travel | Rolf Potts | [3.92](https://www.goodreads.com/book/show/100247.Vagabonding) |2002 |
| Supernormal: Science, Yoga, and the Evidence for Extraordinary Psychic Abilities | Dean Radin | [3.91](https://www.goodreads.com/book/show/8694125-alone-together) | 2013 |
| Prisoner's Dilemma | William Poundstone | [3.91](https://www.goodreads.com/book/show/29506.Prisoner_s_Dilemma) | 1993 |
| The Subtle Art Of Not Giving a F@ck: A Counterintuitive Approach to Living a Good Life | Mark Manson | [3.91](https://www.goodreads.com/book/show/28257707-the-subtle-art-of-not-giving-a-f-ck) | 2017 |
| The Stuff of Thought: Language as a Window into Human Nature | Steven Pinker | [3.90](https://www.goodreads.com/book/show/373969.The_Stuff_of_Thought) | 2007 |
| Consilience: The Unity of Knowledge | Edward O. Wilson | [3.90](https://www.goodreads.com/book/show/55981.Consilience) | 1999 |
| Why We Make Mistakes: How We Look Without Seeing, Forget Things in Seconds, and Are All Pretty Sure We Are Way Above Average | Joseph T. Hallinan | [3.87](https://www.goodreads.com/book/show/5040579-why-we-make-mistakes) | 2009 |
| You Just Don't Understand: Women and Men in Conversation | Deborah Tannen | [3.86](https://www.goodreads.com/book/show/147222.You_Just_Don_t_Understand) | 2007 |
| Just the Arguments: 100 of the Most Important Arguments in Western Philosophy | Michael Bruce, Steven Barbone | [3.85](https://www.goodreads.com/book/show/12838972-just-the-arguments) | 2011 |
| What the Dog Saw: and other adventures | Malcolm Gladwell | [3.82](https://www.goodreads.com/book/show/6516450-what-the-dog-saw-and-other-adventures) | 2009 |
| Spent: Sex, Evolution, and Consumer Behavior | Geoffrey Miller | [3.82](https://www.goodreads.com/book/show/6283340-spent) | |
| Games People Play: The Basic Handbook of Transactional Analysis | Eric Berne. | [3.81](https://www.goodreads.com/book/show/49176.Games_People_Play) | |
| Spent: Sex, Evolution, and Consumer Behavior | Geoffrey Miller | [3.82](https://www.goodreads.com/book/show/6283340-spent) | 2009 |
| Games People Play: The Basic Handbook of Transactional Analysis | Eric Berne. | [3.81](https://www.goodreads.com/book/show/49176.Games_People_Play) | 1964 |
| This Will Make You Smarter: New Scientific Concepts to Improve Your Thinking | John Brockman | [3.81](https://www.goodreads.com/book/show/13035774-this-will-make-you-smarter) | 2012 |
| Intuition Pumps And Other Tools for Thinking | Daniel C. Dennett | [3.80](https://www.goodreads.com/book/show/18378002-intuition-pumps-and-other-tools-for-thinking) | 2014 |
| Jonathan Livingston Seagull | Richard Bach | [3.80](https://www.goodreads.com/book/show/71728.Jonathan_Livingston_Seagull) | |
| Jonathan Livingston Seagull | Richard Bach | [3.80](https://www.goodreads.com/book/show/71728.Jonathan_Livingston_Seagull) | 1970|
| Why Does the World Exist?: An Existential Detective Story | Jim Holt | [3.77](http://www.goodreads.com/book/show/8854815-why-does-the-world-exist) | 2012 |
| The Social Contract | Jean-Jacques Rousseau, Maurice Cranston | [3.75](https://www.goodreads.com/book/show/12651.The_Social_Contract) | |
| The Social Contract | Jean-Jacques Rousseau, Maurice Cranston | [3.75](https://www.goodreads.com/book/show/12651.The_Social_Contract) | 2009 |
| The Ethical Brain: The Science of Our Moral Dilemmas | Michael S. Gazzaniga | [3.70](https://www.goodreads.com/book/show/328734.The_Ethical_Brain) | 2006 |
| Why Smart People Can Be So Stupid | Robert J Sternberg | [3.68](https://www.goodreads.com/book/show/300300.Why_Smart_People_Can_Be_So_Stupid) | 2003 |
| Alone Together: Why We Expect More from Technology and Less from Each Others | Sherry Turkle | [3.62](http://www.goodreads.com/book/show/8694125-alone-together) | 2011 |
| How to Win Every Argument: The Use and Abuse of Logic | Madsen Pirie | [3.55](https://www.goodreads.com/book/show/112731.How_to_Win_Every_Argument) | 2006 |
| Rapt: Attention and the Focused Life: Winifred Gallagher | Winifred Gallagher | [3.54](https://www.goodreads.com/book/show/6262510-rapt) | |
| Rapt: Attention and the Focused Life: Winifred Gallagher | Winifred Gallagher | [3.54](https://www.goodreads.com/book/show/6262510-rapt) | 2009 |
| Utilitarianism | Geoffrey Scarre | [3.50](https://www.goodreads.com/book/show/3807762-utilitarianism) | 1996 |
| The Age of Em: Work, Love and Life When Robots Rule the Earth | Robin Hanson | [3.41](https://www.goodreads.com/book/show/26831944-the-age-of-em) | 2016 |
| The Fine Art of Small Talk: How To Start a Conversation, Keep It Going, Build Networking Skills -- and Leave a Positive Impression | Debra Fine | [3.36](https://www.goodreads.com/book/show/93409.The_Fine_Art_of_Small_Talk) | 2005 |
| Snoop: What Your Stuff Says About You: Sam Gosling | Sam Gosling | [3.33](https://www.goodreads.com/book/show/1581330.Snoop) | |
| Gifs of Immperfection | Brene Brown | [](https://www.goodreads.com/book/show/7015403-the-gifts-of-imperfection) | |
| Snoop: What Your Stuff Says About You: Sam Gosling | Sam Gosling | [3.33](https://www.goodreads.com/book/show/1581330.Snoop) | 2001 |
<a href="#top"><img src="https://img.shields.io/badge/Back%20to%20Top-↑-blue"/></a>
## Autobiographies and Biographies
| Name | Author | Goodreads Rating | Year Published |
|------|--------|------------------|----------------|
| Becoming | Michelle Obama | [4.53](https://www.goodreads.com/book/show/38746485-becoming) | 2018 |
| Unbroken: A World War II Story of Survival, Resilience, and Redemption | Laura Hillenbrand | [4.39](https://www.goodreads.com/book/show/8664353-unbroken) | 2010 |
| Everything Beautiful in Its Time: Seasons of Love and Loss | Jenna Bush Hager | [4.38](https://www.goodreads.com/book/show/51822870-everything-beautiful-in-its-time) | 2020 |
| Long Walk to Freedom | Nelson Mandela | [4.31](http://www.goodreads.com/book/show/318431.Long_Walk_to_Freedom) | 1995 |
| My Life and My Work | Henry Ford | [4.29](http://www.goodreads.com/book/show/1122054.My_Life_And_Work) | |
| My Life and My Work | Henry Ford | [4.29](http://www.goodreads.com/book/show/1122054.My_Life_And_Work) | 1922 |
| Surely You're Joking, Mr. Feynman!: Adventures of a Curious Character | Richard Feynman | [4.29](https://www.goodreads.com/book/show/5544.Surely_You_re_Joking_Mr_Feynman_) | 1997 |
| The Autobiography of Malcolm X | Malcolm X, Alex Haley | [4.29](http://www.goodreads.com/book/show/92057.The_Autobiography_of_Malcolm_X) | |
| The Autobiography of Malcolm X | Malcolm X, Alex Haley | [4.29](http://www.goodreads.com/book/show/92057.The_Autobiography_of_Malcolm_X) |1965 |
| The Third Door:The Wild Quest to Uncover How the World's Most Successful People Launched Their Careers| Alex banayan|[4.28](https://www.goodreads.com/book/show/36739769-the-third-door) | 2018 |
| Elon Musk: Inventing the Future | Ashlee Vance | [4.25](https://www.goodreads.com/book/show/22543496-elon-musk) | 2015 |
| The Last Lecture | Randy Pausch | [4.25](http://www.goodreads.com/book/show/2318271.The_Last_Lecture) | 2008 |
| Freedom in Exile | Dalai Lama XIV | [4.24](http://www.goodreads.com/book/show/567720.Freedom_in_Exile) | 1991 |
| Madame Curie: A Biography | Marie Curie | [4.22](https://www.goodreads.com/book/show/341166.Madame_Curie) | 2001 |
| Autobiography of a Yogi | Paramahansa Yogananda | [4.21](https://www.goodreads.com/book/show/639864.Autobiography_of_a_Yogi) | 1946 |
| Wings of Fire | A.P.J. Abdul Kalam | [4.20](http://www.goodreads.com/book/show/634583.Wings_of_Fire) | 2011 |
| Man Without Fear | Rajat Gupta | [4.20](https://www.goodreads.com/en/book/show/44334846-mind-without-fear) | 2019 |
| The Man Who Knew Infinity : A Life of the Genius Ramanujan | Robert Kanigel | [4.15](https://www.goodreads.com/book/show/106139.The_Man_Who_Knew_Infinity) | 1991 |
| An Astronaut's Guide to Life on Earth | Chris Hadfield | [4.14](https://www.goodreads.com/book/show/18170143-an-astronaut-s-guide-to-life-on-earth) | 2013 |
| The Diary of a Young Girl | Anne Frank | [4.10](http://www.goodreads.com/book/show/48855.The_Diary_of_a_Young_Girl) | 1993 |
| The Innovators: How a Group of Hackers, Geniuses and Geeks Created the Digital Revolution | Walter Isaacson | [4.10](https://www.goodreads.com/book/show/21856367-the-innovators) | 2014 |
| A Sense of the World | Jason Roberts | [4.10](https://www.goodreads.com/book/show/126049.A_Sense_of_the_World?from_search=true&from_srp=true&qid=L2EvsarKWR&rank=1) | 2005 |
| Einstein: His Life and Universe | Walter Isaacson | [4.09](https://www.goodreads.com/book/show/10884.Einstein) | 2007 |
| Steve Jobs | Walter Issacson | [4.09](http://www.goodreads.com/book/show/11084145-steve-jobs) | 2011 |
| My Experiments with Truth | Mahatma Gandhi | [4.07](http://www.goodreads.com/book/show/112803.The_Story_of_My_Experiments_With_Truth) | 1993 |
| The Story of My Life | Helen Keller | [4.07](http://www.goodreads.com/book/show/821611.The_Story_of_My_Life) | 1990 |
| The Immortal Life of Henrietta Lacks | Rebecca Skloot | [4.05](https://www.goodreads.com/book/show/6493208-the-immortal-life-of-henrietta-lacks?ac=1&from_search=true) | 2010 |
| Losing My Virginity: The Autobiography | Richard Branson | [3.97](https://www.goodreads.com/book/show/9533705-losing-my-virginity) |1999|
| My Inventions: The Autobiography of Nikola Tesla | Nikola Tesla | [3.96](https://www.goodreads.com/book/show/493.My_Inventions?ac=1&from_search=true&qid=PQw29iDQp5&rank=1) | 2006 |
| Ghost in the Wires: My Adventures as the World's Most Wanted Hacker | Kevin Mitnick | [3.95](http://www.goodreads.com/book/show/10256723-ghost-in-the-wires) | 2011 |
| An Autobiography: Toward Freedom | Jawaharlal Nehru | [3.85](http://www.goodreads.com/book/show/322939.An_Autobiography) | 1989 |
| iWoz: Computer Geek to Cult Icon: How I Invented the Personal Computer, Co-Founded Apple, and Had Fun Doing It | Steve Wozniak | [3.82](http://www.goodreads.com/book/show/798635.iWoz) | 2007 |
<a href="#top"><img src="https://img.shields.io/badge/Back%20to%20Top-↑-blue"/></a>
## History
| Name | Author | Goodreads Rating | Year Published |
|------|--------|------------------|----------------|
| Sapiens: A Brief History of Humankind | Yuval Noah Harari | [4.42](https://www.goodreads.com/book/show/23692271-sapiens) | 2014 |
| Bloodlands: Europe Between Hitler and Stalin | Timothy Snyder | [4.36](https://www.goodreads.com/book/show/6572270-bloodlands) | 2010 |
| How the Internet Happened: From Netscape to the iPhone | Brian McCullough | [4.36](https://www.goodreads.com/en/book/show/38212134-how-the-internet-happened) | 2018 |
| The Discoverers | Daniel J. Boorstin | [4.34](https://www.goodreads.com/book/show/714380.The_Discoverers) | 2012 |
| Homo Deus: A History of Tomorrow | Yuval Noah Harari | [4.27](https://www.goodreads.com/book/show/31138556-homo-deus) | 2017 |
| One Minute to Midnight: Kennedy, Khrushchev, and Castro on the Brink of Nuclear War | Michael Dobbs | [4.20](https://www.goodreads.com/book/show/2606779-one-minute-to-midnight) | 2008 |
| The Codebreakers: The Comprehensive History of Secret Communication from Ancient Times to the Internet | David Kahn | [4.18](https://www.goodreads.com/book/show/29608.The_Codebreakers) | 1996 |
| Blindness | José Saramago | [4.13](https://www.goodreads.com/book/show/2526.Blindness) | 1995 |
| From Dawn to Decadence: 500 Years of Western Cultural Life 1500 to the Present | Jacques Barzun | [4.12](https://www.goodreads.com/book/show/58233.From_Dawn_to_Decadence) | 2001 |
| Why the West Rules--for Now: The Patterns of History, and What They Reveal About the Future | Ian Morrisage | [4.09](https://www.goodreads.com/book/show/9491855-why-the-west-rules-for-now) | 2010 |
| The Soul of a New Machine | Tracy Kidder | [4.12](https://www.goodreads.com/book/show/7090.The_Soul_of_a_New_Machine) | 1981 |
| Why the West Rules--for Now: The Patterns of History, and What They Reveal About the Future | Ian Morris | [4.09](https://www.goodreads.com/book/show/9491855-why-the-west-rules-for-now) | 2010 |
| The Nazi Doctors: Medical Killing and the Psychology of Genocide | Robert Jay Lifton | [4.07](https://www.goodreads.com/book/show/173187.The_Nazi_Doctors) | 1986 |
| God Created The Integers: The Mathematical Breakthroughs that Changed History | Stephen Hawking | [4.06](https://www.goodreads.com/book/show/2096.God_Created_The_Integers) | |
| Churchill's Secret War: The British Empire and the Ravaging of India during World War II | Madhusree Mukerjee | [4.05](https://www.goodreads.com/book/show/8890989-churchill-s-secret-war) | 2010 |
| El Tiempo Entre Costuras | María Dueñas | [4.04](https://www.goodreads.com/book/show/7502166-el-tiempo-entre-costuras) |2009 |
| Guns, Germs, And Steel : The Fates Of Human Societies | Jared M. Diamond | [4.00](https://www.goodreads.com/book/show/1842.Guns_Germs_and_Steel) | 2005 |
| Discovery of India | Jawaharlal Nehru | [3.98](http://www.goodreads.com/book/show/154126.The_Discovery_of_India) | |
| Discovery of India | Jawaharlal Nehru | [3.98](http://www.goodreads.com/book/show/154126.The_Discovery_of_India) | 1946 |
| The Rational Optimist: How Prosperity Evolves (P.S.) | Matt Ridley | [3.98](https://www.goodreads.com/book/show/7776209-the-rational-optimist) | 2010 |
| Kingpin: How One Hacker Took Over the Billion-Dollar Cybercrime Underground | Kevin Poulson | [3.96](http://www.goodreads.com/book/show/9319468-kingpin) | 2011 |
| The Ghost Map: The Story of London's Most Terrifying Epidemic--and How It Changed Science, Cities, and the Modern World | Steven Johnson | [3.91](https://www.goodreads.com/book/show/36086.The_Ghost_Map) | |
| The Ghost Map: The Story of London's Most Terrifying Epidemic--and How It Changed Science, Cities, and the Modern World | Steven Johnson | [3.91](https://www.goodreads.com/book/show/36086.The_Ghost_Map) |2006 |
| The Rise and Fall of the British Empire | Lawrence James | [3.89](https://www.goodreads.com/book/show/143980.The_Rise_and_Fall_of_the_British_Empire) | 1997 |
| The Master Switch: The Rise and Fall of Information Empires | Tim Wu | [3.89](https://www.goodreads.com/book/show/8201080-the-master-switch) | 2010 |
| Spycraft | Robert Wallace, H. Keith Melton, Henry R. Schlesinger | [3.81](http://www.goodreads.com/book/show/971936.Spycraft) | |
| Spycraft | Robert Wallace, H. Keith Melton, Henry R. Schlesinger | [3.81](http://www.goodreads.com/book/show/971936.Spycraft) |1987 |
| Civilization: The West and the Rest: Niall Ferguson | Niall Ferguson | [3.78](https://www.goodreads.com/book/show/10475421-civilization) | 2011 |
| The UNIX-HATERS Handbook | Simson Garfinkel, Daniel Weise, Steven Strassmann | [3.78](https://www.goodreads.com/book/show/174904.The_UNIX_Hater_s_Handbook) | 1994 |
| The Revenge of Geography: What the Map Tells Us About Coming Conflicts and the Battle Against Fate | Robert D. Kaplan | [3.68](https://www.goodreads.com/book/show/13330422-the-revenge-of-geography) | 2012 |
| The World Is Flat: A Brief History of the Twenty-first Century | Thomas L. Friedman | [3.66](https://www.goodreads.com/book/show/1911.The_World_Is_Flat) | 2006 |
<a href="#top"><img src="https://img.shields.io/badge/Back%20to%20Top-↑-blue"/></a>
## Science and Medicine
| Name | Author | Goodreads Rating | Year Published |
|------|--------|------------------|----------------|
| Behave: The Biology of Humans at Our Best and Worst | Robert M. Sapolsky | [4.42](https://www.goodreads.com/book/show/31170723-behave) | 2017 |
| Asimov's New Guide to Science | Isaac Asimov | [4.36](https://www.goodreads.com/book/show/977262.Asimov_s_New_Guide_To_Science) | 1985 |
| Factfulness: Ten Reasons We're Wrong About the World and Why Things Are Better Than You Think | Hans Rosling | [4.36](https://www.goodreads.com/book/show/34890015-factfulness) | 2018 |
| The Gene: An Intimate History | Siddhartha Mukherjee | [4.35](https://www.goodreads.com/book/show/27276428-the-gene) | 2016 |
| Origins of Form: The Shape of Natural and Man-Made Things | Christopher Williams | [4.31](https://www.goodreads.com/book/show/16255011-origins-of-form) | 2013 |
| The Body: A Guide for Occupants | Bill Bryson | [4.31](https://www.goodreads.com/book/show/43582376-the-body) | 2019 |
| Gödel, Escher, Bach: An Eternal Golden Braid | Douglas R. Hofstadter | [4.30](https://www.goodreads.com/book/show/24113.G_del_Escher_Bach) | 1979 |
| The Little Schemer | Daniel P. Friedman, Matthias Felleisen, Duane Bibby, Gerald J. Sussman | [4.27](https://www.goodreads.com/book/show/548914.The_Little_Schemer) | 1995 |
| Scientific Genius: A Psychology of Science | Dean Keith Simonton | [4.25](https://www.goodreads.com/book/show/1752295.Scientific_Genius) | 1988 |
| Out of Control: The New Biology of Machines, Social Systems, and the Economic World | Kevin Kelly | [4.24](https://www.goodreads.com/book/show/16080353-out-of-control) | 1995 |
| The Brain: The Story of You | David Eagleman | [4.20](https://www.goodreads.com/book/show/25776132.the-brain) | 2015 |
| A Short History of Nearly Everything | Bill Bryson | [4.19](https://www.goodreads.com/book/show/21.A_Short_History_of_Nearly_Everything) | |
| A Short History of Nearly Everything | Bill Bryson | [4.19](https://www.goodreads.com/book/show/21.A_Short_History_of_Nearly_Everything) |2003 |
| Things to Make and Do in the Fourth Dimension | Matt Parker | [4.19](https://www.goodreads.com/en/book/show/21805670-things-to-make-and-do-in-the-fourth-dimension) | 2014 |
| The Symbolic Species: The Co-evolution of Language and the Brain | Terrence W. Deacon | [4.17](https://www.goodreads.com/book/show/733691.The_Symbolic_Species) | 1998 |
| A Brief History of Time | Stephen Hawking | [4.12](https://www.goodreads.com/book/show/3869.A_Brief_History_of_Time) | 1998 |
| The Selfish Gene | Richard Dawkins | [4.11](http://www.goodreads.com/book/show/61535.The_Selfish_Gene) | |
| The Selfish Gene | Richard Dawkins | [4.11](http://www.goodreads.com/book/show/61535.The_Selfish_Gene) |1976 |
| Figments of Reality: The Evolution of the Curious Mind | Ian Stewart, Jack Cohen | [4.11](https://www.goodreads.com/book/show/164560.Figments_of_Reality) | 2009 |
| The New Executive Brain: Frontal Lobes in a Complex World | Elkhonon Goldberg | [4.07](https://www.goodreads.com/book/show/6745893-the-new-executive-brain) | |
| The Extended Phenotype: The Long Reach of the Gene | Richard Dawkins | [4.07](https://www.goodreads.com/book/show/61538.The_Extended_Phenotype) | 1999 |
| Rare Earth: Why Complex Life is Uncommon in the Universe | Peter D. Ward, Donald Brownlee | [4.06](https://www.goodreads.com/book/show/88552.Rare_Earth) | 2003 |
| Stiff: The Curious Lives of Human Cadavers | Mary Roach | [4.05](https://www.goodreads.com/book/show/32145.Stiff) | 2004 |
| Darwin's Dangerous Idea | Daniel C. Dennett | [4.03](https://www.goodreads.com/book/show/2068.Darwin_s_Dangerous_Idea) | |
| The Man Who Mistook His Wife for A Hat and Other Clinical Tales | Oliver Sacks | [4.05](https://www.goodreads.com/book/show/63697.The_Man_Who_Mistook_His_Wife_for_a_Hat_and_Other_Clinical_Tales) | 1998 |
| Darwin's Dangerous Idea | Daniel C. Dennett | [4.03](https://www.goodreads.com/book/show/2068.Darwin_s_Dangerous_Idea) |1995 |
| The Inevitable: Understanding the 12 Technological Forces That Will Shape Our Future | Kevin Kelly | [4.02](https://www.goodreads.com/book/show/27209431-the-inevitable) | 2016 |
| The Outer Limits of Reason: What Science, Mathematics, and Logic Cannot Tell Us | Noson S. Yanofsky | [4.00](http://www.goodreads.com/book/show/17841838-the-outer-limits-of-reason) | 2013 |
| The Structure of Scientific Revolutions: 50th Anniversary Edition | Thomas S. Kuhn | [3.99](https://www.goodreads.com/book/show/61539.The_Structure_of_Scientific_Revolutions) | 1996 |
| At Home in the Universe: The Search for the Laws of Self-Organization and Complexity | Stuart Kauffman | [3.97](https://www.goodreads.com/book/show/319006.At_Home_in_the_Universe) | 1996 |
| The Wealth of Networks: How Social Production Transforms Markets and Freedom | Yochai Benkler | [3.95](https://www.goodreads.com/book/show/14721.The_Wealth_of_Networks) | 2006 |
| Mind Children: The Future of Robot and Human Intelligence | Hans Moravec. | [3.95](https://www.goodreads.com/book/show/648195.Mind_Children) | 1990 |
| How to Find a Habitable Planet | James kasting | [3.93](https://www.goodreads.com/book/show/7551498-how-to-find-a-habitable-planet) | 2010 |
| The 10,000 Year Explosion: How Civilization Accelerated Human Evolution | Gregory Cochran, Henry Harpending | [3.91](https://www.goodreads.com/book/show/6033964-the-10-000-year-explosion) | |
| Profiles of the Future: An Inquiry into the Limits of the Possible | Arthur C. Clarke | [3.94](https://www.goodreads.com/book/show/169258.Profiles_of_the_Future) | 1962 |
| How to Find a Habitable Planet | James Kasting | [3.93](https://www.goodreads.com/book/show/7551498-how-to-find-a-habitable-planet) | 2010 |
| The 10,000 Year Explosion: How Civilization Accelerated Human Evolution | Gregory Cochran, Henry Harpending | [3.91](https://www.goodreads.com/book/show/6033964-the-10-000-year-explosion) | 2009 |
| The Disappearing Spoon: And Other True Tales of Madness, Love, and the History of the World from the Periodic Table of the Elements | Sam Kean | [3.91](https://www.goodreads.com/book/show/7247854-the-disappearing-spoon) | 2010 |
| Evolution for Everyone: How Darwin's Theory Can Change the Way We Think About Our Lives | David Sloan Wilson | [3.90](http://www.goodreads.com/book/show/159062.Evolution_for_Everyone) | 2007 |
| Life at the Speed of Light: From the Double Helix to the Dawn of Digital Life | J. Craig Venter | [3.87](www.goodreads.com/book/show/17674969-life-at-the-speed-of-light) | 2013 |
| The Shallows: What the Internet is Doing to Our Brains | Nicholas Carr | [3.85](https://www.goodreads.com/book/show/9778945-the-shallows) | 2011 |
| Catching Fire: How Cooking Made Us Human | Richard Wrangham | [3.83](https://www.goodreads.com/book/show/11148989-catching-fire) | 2009 |
| Heaven in a Chip: Fuzzy Visions of Society and Science in the Digital Age | Bart Kosko | [3.82](https://www.goodreads.com/book/show/172645.Heaven_in_a_Chip) | 2000 |
| The Quark and the Jaguar: Adventures in the Simple and the Complex | Murray Gell-Mann | [3.81](https://www.goodreads.com/book/show/270881.The_Quark_and_the_Jaguar) | |
| The Quark and the Jaguar: Adventures in the Simple and the Complex | Murray Gell-Mann | [3.81](https://www.goodreads.com/book/show/270881.The_Quark_and_the_Jaguar) |1994 |
| Tomorrowland: Our Staggering Journey from Science Fiction to Science Fact | Steven Kotler | [3.80](http://www.goodreads.com/book/show/25060233-tomorrowland) | 2015 |
| Origins of Genius: Darwinian Perspectives on Creativity | Dean Keith | [3.74](https://www.goodreads.com/book/show/254489.Origins_of_Genius) | 1999 |
| Waters of the World: the story of the scientists who unravelled the mysteries of our seas, glaciers, and atmosphere and made the planet whole | Sarah Dry | [3.65](https://www.goodreads.com/book/show/43389003-waters-of-the-world) | 2019 |
| Mind Wars: Brain Research and National Defense | Jonathan D. Moreno | [3.45](http://www.goodreads.com/book/show/599321.Mind_Wars) | 2007 |
<a href="#top"><img src="https://img.shields.io/badge/Back%20to%20Top-↑-blue"/></a>
## Logic and Problem Solving
| Name | Author | Goodreads Rating | Year Published |
|------|--------|------------------|----------------|
| What Is the Name of This Book?: The Riddle of Dracula and Other Logical Puzzles | Raymond M. Smullyan | [4.24](https://www.goodreads.com/book/show/493576.What_Is_the_Name_of_This_Book_) | 2011 |
| A Mind for Numbers: How to Excel at Math and Science even If You Flunked Algebra | Barbara Oakley | [4.22](http://www.goodreads.com/book/show/18693655-a-mind-for-numbers) | 2014 |
| How to Solve It: A New Aspect of Mathematical Method | George Polya | [4.16](https://www.goodreads.com/book/show/192221.How_to_Solve_It) | 2015 |
| Guide to Competitive Programming: Learning and Improving Algorithms Through Contests | Antti Laaksonen | [4.15]( https://www.goodreads.com/book/show/36881945-guide-to-competitive-programming) | 2016 |
| Superforecasting: The Art and Science of Prediction | Philip E. Tetlock, Dan Gardner | [4.10](https://www.goodreads.com/book/show/23995360-superforecasting) | 2015 |
| Problem Solving 101: A Simple Book | Ken Watanabe | [4.10](https://www.goodreads.com/book/show/6271219-problem-solving-101) | 2009 |
| Labyrinths of Reason: Paradox, Puzzles, and the Frailty of Knowledge | William Poundstone | [4.05](https://www.goodreads.com/book/show/55436.Labyrinths_of_Reason) | 1989 |
| Mazes for the Mind: Computers and the Unexpected | Clifford A. Pickover | [4.05](https://www.goodreads.com/book/show/1986400.Mazes_for_the_Mind) | 1992 |
| Outnumbered: Exploring the Algorithms That Control Our Lives | David Sumpter | [3.99](https://www.goodreads.com/book/show/36762542-outnumbered) | 2018 |
| Thinking Forth: A Language and Philosophy for Solving Problems | Leo Brodie | [3.96](https://www.goodreads.com/book/show/2995657-thinking-forth) | 1984 |
<a href="#top"><img src="https://img.shields.io/badge/Back%20to%20Top-↑-blue"/></a>
## Politics
| Name | Author | Goodreads Rating | Year Published |
|------|--------|------------------|----------------|
| The New Jim Crow: Mass Incarceration in the Age of Colorblindness | Michelle Alexander | [4.49](https://www.goodreads.com/book/show/6792458-the-new-jim-crow)| 2010
| Justice: What's the Right Thing to Do? | Michael J. Sandel | [4.25](https://www.goodreads.com/book/show/6452731-justice) | |
| On Tyranny: Twenty Lessons from the Twentieth Century | Timothy Snyder | [4.20](https://www.goodreads.com/book/show/33917107-on-tyranny) | 2017 |
| The Righteous Mind: Why Good People are Divided by Politics and Religion | Jonathan Haidt | [4.16](https://www.goodreads.com/book/show/11324722-the-righteous-mind) | 2012 |
| Strangers in Their Own Land: Anger and Mourning on the American Right | Arlie Russell Hochschild | [4.15](https://www.goodreads.com/book/show/28695425-strangers-in-their-own-land) | 2016 |
| Game Change: Obama and the Clintons, McCain and Palin, and the Race of a Lifetime | John Heilemann, Mark Halperin | [4.10](https://www.goodreads.com/book/show/6694937-game-change) | 2010 |
| Bolo'bolo | P.M. | [4.05](https://www.goodreads.com/book/show/12395170-bolo-bolo) | 1984 |
| The Myth of the Rational Voter: Why Democracies Choose Bad Policies | Bryan Caplan | [3.96](https://www.goodreads.com/book/show/698866.The_Myth_of_the_Rational_Voter) | 2007 |
| Resource Wars: The New Landscape of Global Conflict | Michael Klare | [3.73](https://www.goodreads.com/book/show/149206.Resource_Wars) | |
| The Art of Deception: Controlling the Human Element of Security | Kevin D. Mitnick | [3.76](https://www.goodreads.com/book/show/18160.The_Art_of_Deception) | 2003 |
| Resource Wars: The New Landscape of Global Conflict | Michael Klare | [3.73](https://www.goodreads.com/book/show/149206.Resource_Wars) |2001 |
| The Audacity of Hope: Thoughts on Reclaiming the American Dream | Barack Obama | [3.70](https://www.goodreads.com/book/show/9742.The_Audacity_of_Hope) | 2006 |
<a href="#top"><img src="https://img.shields.io/badge/Back%20to%20Top-↑-blue"/></a>
## Economics
| Name | Author | Goodreads Rating | Year Published |
|------|--------|------------------|----------------|
| The Simple Path to Wealth: Your road map to financial independence and a rich, free life | J.L. Collins | [4.47](https://www.goodreads.com/book/show/30646587-the-simple-path-to-wealth) | 2016 |
| Origin of Wealth | Eric D. Beinhocker | [4.23](https://www.goodreads.com/book/show/22456.The_Origin_of_Wealth) | 2006 |
| Every Shot Counts: Using the Revolutionary Strokes Gained Approach to Improve Your Golf Performance and Strategy | Mark Broadie | [4.23](https://www.goodreads.com/book/show/17674971-every-shot-counts) | 2014 |
| Economic Facts and Fallacies | Thomas Sowell | [4.18](https://www.goodreads.com/book/show/2064279.Economic_Facts_and_Fallacies) | 2008 |
| Debt - Updated and Expanded: The First 5,000 Years | David Graeber | [4.17](https://www.goodreads.com/book/show/6617037-debt) | 2011 |
| Capital in the Twenty-First Century | Thomas Piketty | [4.01](http://www.goodreads.com/book/show/18736925-capital-in-the-twenty-first-century) | 2014 |
| 23 Things They Don't Tell You About Capitalism | Ha-Joon Chang | [3.97](http://www.goodreads.com/book/show/8913542-23-things-they-don-t-tell-you-about-capitalism) | |
| The Signal and the Noise: Why So Many Predictions Fail--but Some Don't | Nate Silver | [3.96](https://www.goodreads.com/book/show/13588394-the-signal-and-the-noise) | |
| Freakonomics: A Rogue Economist Explores the Hidden Side of Everything | Steven D. Levitt, Stephen J. Dubner | [3.98](https://www.goodreads.com/book/show/1202.Freakonomics) | 2006 |
| 23 Things They Don't Tell You About Capitalism | Ha-Joon Chang | [3.97](http://www.goodreads.com/book/show/8913542-23-things-they-don-t-tell-you-about-capitalism) | 2010 |
| The Signal and the Noise: Why So Many Predictions Fail--but Some Don't | Nate Silver | [3.96](https://www.goodreads.com/book/show/13588394-the-signal-and-the-noise) | 2012 |
| Currency Wars: The Making of the Next Global Crisis | James Rickards | [3.96](https://www.goodreads.com/book/show/11515298-currency-wars) | 2011 |
| The Ascent of Money: A Financial History of the World | Niall Ferguson | [3.88](https://www.goodreads.com/book/show/2714607-the-ascent-of-money) | |
| The Ascent of Money: A Financial History of the World | Niall Ferguson | [3.88](https://www.goodreads.com/book/show/2714607-the-ascent-of-money) |2008 |
| The Bottom Billion: Why the Poorest Countries are Failing and What Can Be Done About It | Paul Collier | [3.85](https://www.goodreads.com/book/show/493371.The_Bottom_Billion) | 2007 |
| The Thank You Economy | Gary Vaynerchuk | [3.83](https://www.goodreads.com/book/show/9203287-the-thank-you-economy) | 2011 |
| Super Crunchers: Why Thinking-By-Numbers is the New Way To Be Smart | Ian Ayres | [3.70](https://www.goodreads.com/book/show/1081413.Super_Crunchers) | |
| Super Crunchers: Why Thinking-By-Numbers is the New Way To Be Smart | Ian Ayres | [3.70](https://www.goodreads.com/book/show/1081413.Super_Crunchers) | 2007 |
| A Farewell to Alms : A Brief Economic History of the World | Gregory Clark | [3.67](https://www.goodreads.com/book/show/150437.A_Farewell_to_Alms) | 2007 |
<a href="#top"><img src="https://img.shields.io/badge/Back%20to%20Top-↑-blue"/></a>
## Gender
| Name | Author | Goodreads Rating | Year Published |
|------|--------|------------------|----------------|
| Cemetary Boys | Aiden Thomas | [4.48](https://www.goodreads.com/book/show/52339313-cemetery-boys) | 2020
| Delusions of Gender: How Our Minds, Society, and Neurosexism Create Difference | Cordelia Fine | [4.15](https://www.goodreads.com/book/show/8031168-delusions-of-gender) | 2010
| Paul Takes the Form of a Mortal Girl | Andrea Lawlor | [4.00](https://www.goodreads.com/book/show/35838277-paul-takes-the-form-of-a-mortal-girl) | 2017
| Becoming A Man | P. Carl | [3.95](https://www.goodreads.com/book/show/50091840-becoming-a-man) | 2020
<a href="#top"><img src="https://img.shields.io/badge/Back%20to%20Top-↑-blue"/></a>
## Sexuality
| Name | Author | Goodreads Rating | Year Published |
|------|--------|------------------|----------------|
@@ -281,27 +401,45 @@
| The Ethical Slut: A Guide to Infinite Sexual Possibilities | Dossie Easton, Catherine A. Liszt. | [3.83](http://www.goodreads.com/book/show/54944.The_Ethical_Slut?from_search=true) | 2004 |
| The Sex Myth | Brooke Magnanti | [3.50](https://www.goodreads.com/book/show/13569582-the-sex-myth) | 2015 |
<a href="#top"><img src="https://img.shields.io/badge/Back%20to%20Top-↑-blue"/></a>
## Race
| Name | Author | Goodreads Rating | Year Published |
|------|--------|------------------|----------------|
| So You Want to Talk About Race | Ijeoma Oluo | [4.53](https://www.goodreads.com/book/show/35099718-so-you-want-to-talk-about-race) | 2018 |
| The Origin of Others | Toni Morrison | [4.22](https://www.goodreads.com/book/show/34758228-the-origin-of-others) | 2017 |
<a href="#top"><img src="https://img.shields.io/badge/Back%20to%20Top-↑-blue"/></a>
## Education
| Name | Author | Goodreads Rating | Year Published |
|------|--------|------------------|----------------|
| Educated: A Memoir | Tara Westover| [4.47](https://www.goodreads.com/book/show/35133922-educated) | 2018 |
| Mindstorms: Children, Computers, And Powerful Ideas | Seymour A. Papert | [4.32](https://www.goodreads.com/book/show/703532.Mindstorms) | 1993 |
| The Little Prince | Antoine de Saint-Exupéry | [4.31](https://www.goodreads.com/book/show/71091.Il_piccolo_principe) | 1943 |
| How Children Fail | John Holt | [4.22](https://www.goodreads.com/book/show/573009.How_Children_Fail) | 1995 |
| Deep Work: Rules for Focused Success in a Distracted World | Cal Newport | [4.20](https://www.goodreads.com/book/show/25744928-deep-work) | 2016 |
| Make It Stick: The Science of Successful Learning | Peter C. Brown, Henry L. Roediger III, Mark A. McDaniel | [4.20](https://www.goodreads.com/book/show/18770267.make-it-stick) | 2014 |
| Teaching as a Subversive Activity | Neil Postman, Charles Weingartner | [4.19](https://www.goodreads.com/book/show/79681.Teaching_as_a_Subversive_Activity) | 1971 |
| Limitless: Upgrade Your Brain, Learn Anything Faster, and Unlock Your Exceptional Life | Jim Kwik | [4.09](https://www.goodreads.com/book/show/49994260-limitless?from_search=true&from_srp=true&qid=pbeSkuESjB&rank=1) | 2020 |
| Summerhill School: A New View of Childhood | A. S. Neill, Albert Lamb | [4.09](https://www.goodreads.com/book/show/178734.Summerhill) | 1995 |
| The Art of Learning: An Inner Journey to Optimal Performance | Josh Waitzkin | [4.08](https://www.goodreads.com/book/show/857333.The_Art_of_Learning) | 2016 |
| Wounded by School: Recapturing the Joy in Learning and Standing Up to Old School Culture | Kirsten Olson, Sara Lawrence-Lightfoot, Parker J. Palmer | [3.92](https://www.goodreads.com/book/show/6425208-wounded-by-school) | 2009 |
| Curious Minds: How a Child Becomes a Scientist | John Brockman | [3.72](https://www.goodreads.com/book/show/409588.Curious_Minds) | 2005 |
<a href="#top"><img src="https://img.shields.io/badge/Back%20to%20Top-↑-blue"/></a>
## Writing
| Name | Author | Goodreads Rating | Year Published |
|------|--------|------------------|----------------|
| Hat Box: The Collected Lyrics of Stephen Sondheim | Stephen Sondheim | [4.77](https://www.goodreads.com/book/show/12909101-hat-box) | |
| Hat Box: The Collected Lyrics | Stephen Sondheim | [4.77](https://www.goodreads.com/book/show/12909101-hat-box) | |
| On Writing: A Memoir of the Craft | Stephen King | [4.31](https://www.goodreads.com/book/show/10569.On_Writing) | 2002 |
| Bird by Bird: Some Instructions on Writing and Life | Anne Lamott | [4.23](https://www.goodreads.com/book/show/12543.Bird_by_Bird) | 1995 |
| Clear and Simple as the Truth | Francis-Noël Thomas, Mark Turner | [4.06](https://www.goodreads.com/book/show/120549.Clear_and_Simple_as_the_Truth) | 1996 |
| The Sense of Style: The Thinking Person's Guide to Writing in the 21st Century | Steven Pinker | [4.03](http://www.goodreads.com/book/show/20821371-the-sense-of-style) | 2014 |
<a href="#top"><img src="https://img.shields.io/badge/Back%20to%20Top-↑-blue"/></a>
## Theater and Film
| Name | Author | Goodreads Rating | Year Published |
|------|--------|------------------|----------------|
@@ -313,6 +451,8 @@
| How to Stop Acting | Harold Guskin | [4.17](https://www.goodreads.com/book/show/808735.How_to_Stop_Acting) | 2003 |
| A Practical Handbook for the Actor | Melissa Bruder, Lee Michael Cohn, Madeleine Olnek, Nathaniel Pollack, Robert Previtio, Scott Zigler, David Mamet | [3.87](https://www.goodreads.com/book/show/166207.A_Practical_Handbook_for_the_Actor) | 1986 |
<a href="#top"><img src="https://img.shields.io/badge/Back%20to%20Top-↑-blue"/></a>
## Shakespeare
| Name | Author | Goodreads Rating | Year Published |
|------|--------|------------------|----------------|
@@ -321,119 +461,168 @@
| Shakespeare's Metrical Art | George T. Wright | [4.39](https://www.goodreads.com/book/show/428615.Shakespeare_s_Metrical_Art) | 1991 |
| Hamlet in Purgatory | Stephen Greenblatt | [3.98](https://www.goodreads.com/book/show/33179.Hamlet_in_Purgatory) | 2002 |
<a href="#top"><img src="https://img.shields.io/badge/Back%20to%20Top-↑-blue"/></a>
## Fiction
### Classics
| Name | Author | Goodreads Rating | Year Published |
|------|--------|------------------|----------------|
| The Master and Margarita | Mikhail Bulgakov | [4.32](https://www.goodreads.com/book/show/117833.The_Master_and_Margarita) | 1996 |
| Infinite Jest | David Foster Wallace | [4.31](https://www.goodreads.com/book/show/6759.Infinite_Jest) | 1995 |
| The Brothers Karamazov | Fyodor Dostoevsky, Richard Pevear, Larissa Volokhonsky | [4.30](https://www.goodreads.com/book/show/4934.The_Brothers_Karamazov) | 2002 |
| Pride And Prejudice | Jane Austen | [4.24](https://www.goodreads.com/book/show/1885.Pride_and_Prejudice) | 2000 |
| A Prayer for Owen Meany | John Irving | [4.22](https://www.goodreads.com/book/show/4473.A_Prayer_for_Owen_Meany) | 1990 |
| Letters From The Earth | Mark Twain | [4.22](https://www.goodreads.com/book/show/37813.Letters_from_the_Earth) | 2004 |
| The Master and Margarita | Mikhail Bulgakov | [4.32](https://www.goodreads.com/book/show/117833.The_Master_and_Margarita) | 1966 |
| Infinite Jest | David Foster Wallace | [4.31](https://www.goodreads.com/book/show/6759.Infinite_Jest) | 1996 |
| The Brothers Karamazov | Fyodor Dostoevsky, Richard Pevear, Larissa Volokhonsky | [4.30](https://www.goodreads.com/book/show/4934.The_Brothers_Karamazov) | 1880 |
| Pride And Prejudice | Jane Austen | [4.24](https://www.goodreads.com/book/show/1885.Pride_and_Prejudice) | 1813 |
| A Prayer for Owen Meany | John Irving | [4.22](https://www.goodreads.com/book/show/4473.A_Prayer_for_Owen_Meany) | 1989 |
| Letters From The Earth | Mark Twain | [4.22](https://www.goodreads.com/book/show/37813.Letters_from_the_Earth) | 1962 |
| One Flew Over the Cuckoo's Nest | Ken Kesey | [4.18](https://www.goodreads.com/book/show/332613.One_Flew_Over_the_Cuckoo_s_Nest) | 1963 |
| Crime and Punishment | Fyodor Dostoyevsky | [4.18](https://www.goodreads.com/book/show/7144.Crime_and_Punishment) | 2002 |
| Steppenwolf: A Novel | Hermann Hesse, Basil Creighton | [4.11](https://www.goodreads.com/book/show/16631.Steppenwolf) | 1999 |
| The Glass Bead Game | Hermann Hesse, Richard and Clara Winston | [4.11](https://www.goodreads.com/book/show/16634.The_Glass_Bead_Game) | 2002 |
| War and Peace | Leo Tolstoy | [4.11](https://www.goodreads.com/book/show/656.War_and_Peace) | 1998 |
| Jane Eyre | Charlotte Brontë | [4.10](https://www.goodreads.com/book/show/10210.Jane_Eyre) | |
| Germinal | Emile Zola | [4.10](https://www.goodreads.com/book/show/28407.Germinal) | 2004 |
| If on a Winter's Night a Traveler | Italo Calvino and William Weaver | [4.08](https://www.goodreads.com/book/show/374233.If_on_a_Winter_s_Night_a_Traveler) | 1982 |
| The Wall: (Intimacy) and Other Stories | Jean-Paul Sartre, Lloyd Alexander | [4.07](https://www.goodreads.com/book/show/10031.The_Wall) | 2010 |
| Sense and Sensibility | Jane Austen | [4.06](https://www.goodreads.com/book/show/14935.Sense_and_Sensibility) | 2003 |
| The Picture of Dorian Gray | Oscar Wilde | [4.06](https://www.goodreads.com/book/show/5297.The_Picture_of_Dorian_Gray) | 1998 |
| Watership Down: A Novel | Richard Adams | [4.05 ](https://www.goodreads.com/book/show/76620.Watership_Down) |1975|
| One Hundred Years of Solitude | Gabriel Garcia Marquez, Gregory Rabassa | [4.04](https://www.goodreads.com/book/show/320.One_Hundred_Years_of_Solitude) | 2003 |
| The Death of Ivan Ilych | Leo Tolstoy | [4.04](https://www.goodreads.com/book/show/18386.The_Death_of_Ivan_Ilych) | |
| Anna Karenina | Leo Tolstoy | [4.02](https://www.goodreads.com/book/show/15823480-anna-karenina) | 2012 |
| Bleak House | Charles Dickens | [4.00](https://www.goodreads.com/book/show/31242.Bleak_House) | 2006 |
| J'accuse | Emile Zola | [3.99](https://www.goodreads.com/book/show/816964.J_accuse) | 1998 |
| Catch 22 | Joseph Heller | [3.98](https://www.goodreads.com/book/show/4610.Catch_22) | 2004 |
| The House of Mirth | Edith Wharton | [3.94](https://www.goodreads.com/book/show/17728.The_House_of_Mirth) | 2006 |
| Confessions of a Mask | Yukio Mishima | [3.91](https://www.goodreads.com/book/show/62794.Confessions_of_a_Mask) | 1998 |
| De L'esprit Des Lois | Montesquieu | [3.91](https://www.goodreads.com/book/show/29854007-de-l-esprit-des-lois-nouvelle-edition) | 1995 |
| Crime and Punishment | Fyodor Dostoyevsky | [4.18](https://www.goodreads.com/book/show/7144.Crime_and_Punishment) | 1866 |
| 1984 | George Orwell | [4.17](https://www.goodreads.com/book/show/40961427-1984) | 1949 |
| The Giver | Lois Lowry | [4.13](https://www.goodreads.com/book/show/3636.The_Giver) | 1993 |
| Steppenwolf: A Novel | Hermann Hesse, Basil Creighton | [4.11](https://www.goodreads.com/book/show/16631.Steppenwolf) | 1927 |
| The Glass Bead Game | Hermann Hesse, Richard and Clara Winston | [4.11](https://www.goodreads.com/book/show/16634.The_Glass_Bead_Game) | 1943 |
| War and Peace | Leo Tolstoy | [4.11](https://www.goodreads.com/book/show/656.War_and_Peace) | 1867 |
| Jane Eyre | Charlotte Brontë | [4.10](https://www.goodreads.com/book/show/10210.Jane_Eyre) | 1847 |
| Germinal | Emile Zola | [4.10](https://www.goodreads.com/book/show/28407.Germinal) | 1885 |
| If on a Winter's Night a Traveler | Italo Calvino and William Weaver | [4.08](https://www.goodreads.com/book/show/374233.If_on_a_Winter_s_Night_a_Traveler) | 1979 |
| Slaughterhouse-Five | Kurt Vonnegut Jr. | [4.08](https://www.goodreads.com/book/show/4981.Slaughterhouse_Five) | 1969 |
| The Wall: (Intimacy) and Other Stories | Jean-Paul Sartre, Lloyd Alexander | [4.07](https://www.goodreads.com/book/show/10031.The_Wall) | 1948 |
| Sense and Sensibility | Jane Austen | [4.06](https://www.goodreads.com/book/show/14935.Sense_and_Sensibility) | 1811 |
| The Picture of Dorian Gray | Oscar Wilde | [4.06](https://www.goodreads.com/book/show/5297.The_Picture_of_Dorian_Gray) | 1890 |
| Watership Down: A Novel | Richard Adams | [4.05 ](https://www.goodreads.com/book/show/76620.Watership_Down) |1972|
| One Hundred Years of Solitude | Gabriel Garcia Marquez, Gregory Rabassa | [4.04](https://www.goodreads.com/book/show/320.One_Hundred_Years_of_Solitude) | 1967 |
| The Death of Ivan Ilych | Leo Tolstoy | [4.04](https://www.goodreads.com/book/show/18386.The_Death_of_Ivan_Ilych) | 1886 |
| Siddhartha | Hermann Hesse | [4.03](https://www.goodreads.com/book/show/52036.Siddhartha) | 1922 |
| Anna Karenina | Leo Tolstoy | [4.02](https://www.goodreads.com/book/show/15823480-anna-karenina) | 1878 |
| Bleak House | Charles Dickens | [4.00](https://www.goodreads.com/book/show/31242.Bleak_House) | 1853 |
| J'accuse | Emile Zola | [3.99](https://www.goodreads.com/book/show/816964.J_accuse) | 1898 |
| Catch 22 | Joseph Heller | [3.98](https://www.goodreads.com/book/show/4610.Catch_22) | 1961 |
| The House of Mirth | Edith Wharton | [3.94](https://www.goodreads.com/book/show/17728.The_House_of_Mirth) | 1905 |
| Confessions of a Mask | Yukio Mishima | [3.91](https://www.goodreads.com/book/show/62794.Confessions_of_a_Mask) | 1949 |
| De L'esprit Des Lois | Montesquieu | [3.91](https://www.goodreads.com/book/show/29854007-de-l-esprit-des-lois-nouvelle-edition) | 1748 |
| Love in the Time of Cholera | Gabriel García Marquéz | [3.9](https://www.goodreads.com/book/show/9712.Love_in_the_Time_of_Cholera) | 1985 |
| Don Quixote | Miguel de Cervantes | [3.85](http://www.goodreads.com/book/show/3836.Don_Quixote) | 2003 |
| Mansfield Park | Jane Austen | [3.84](https://www.goodreads.com/book/show/45032) | 2003 |
| Wuthering Heights | Emily Bronte | [3.82](https://www.goodreads.com/book/show/6185.Wuthering_Heights) | 2002 |
| Père Goriot | Honoré de Balzac | [3.82](https://www.goodreads.com/book/show/59145.P_re_Goriot) | 1997 |
| Adventures of Huckleberry Finn | Mark Twain | [3.80](https://www.goodreads.com/book/show/2956.The_Adventures_of_Huckleberry_Finn) | 2002 |
| The Catcher in the Rye | J.D. Salinger | [3.79](https://www.goodreads.com/book/show/5107.The_Catcher_in_the_Rye) | 2001 |
| Eugénie Grandet | Honoré de Balzac | [3.79](https://www.goodreads.com/book/show/59142.Eug_nie_Grandet) | 2003 |
| Don Quixote | Miguel de Cervantes | [3.85](http://www.goodreads.com/book/show/3836.Don_Quixote) | 1605 |
| Mansfield Park | Jane Austen | [3.84](https://www.goodreads.com/book/show/45032) | 1814 |
| Wuthering Heights | Emily Bronte | [3.82](https://www.goodreads.com/book/show/6185.Wuthering_Heights) | 1847 |
| Père Goriot | Honoré de Balzac | [3.82](https://www.goodreads.com/book/show/59145.P_re_Goriot) | 1834 |
| Adventures of Huckleberry Finn | Mark Twain | [3.80](https://www.goodreads.com/book/show/2956.The_Adventures_of_Huckleberry_Finn) | 1884 |
| The Catcher in the Rye | J.D. Salinger | [3.79](https://www.goodreads.com/book/show/5107.The_Catcher_in_the_Rye) | 1951 |
| Eugénie Grandet | Honoré de Balzac | [3.79](https://www.goodreads.com/book/show/59142.Eug_nie_Grandet) | 1833 |
| Zen and the Art of Motorcycle Maintenance: An Inquiry Into Values | Robert M. Pirsig | [3.76](https://www.goodreads.com/book/show/629.Zen_and_the_Art_of_Motorcycle_Maintenance) | 1974 |
| Candide | Voltaire | [3.76](https://www.goodreads.com/book/show/19380.Candide) | 1991 |
| Madame Bovary | Gustave Flaubert | [3.65](https://www.goodreads.com/book/show/2175.Madame_Bovary) | 2004 |
| Confessions | Jean-Jacques Rousseau | [3.61](https://www.goodreads.com/book/show/12649.Confessions) | 2003 |
| Lettres persanes | Montesquieu | [3.54](http://www.goodreads.com/book/show/509686.Persian_Letters) | |
| Candide | Voltaire | [3.76](https://www.goodreads.com/book/show/19380.Candide) | 1759 |
| Atlas Shrugged | Ayn Rand | [3.68](https://www.goodreads.com/book/show/9365.Atlas_Shrugged) | 1957 |
| Madame Bovary | Gustave Flaubert | [3.65](https://www.goodreads.com/book/show/2175.Madame_Bovary) | 1856 |
| Confessions | Jean-Jacques Rousseau | [3.61](https://www.goodreads.com/book/show/12649.Confessions) | 1782 |
| Lettres persanes | Montesquieu | [3.54](http://www.goodreads.com/book/show/509686.Persian_Letters) | 1721 |
| The Director | David Ignatius | [3.43](http://www.goodreads.com/book/show/23316525-the-director) | 2015 |
<a href="#top"><img src="https://img.shields.io/badge/Back%20to%20Top-↑-blue"/></a>
### Fantasy
| Name | Author | Goodreads Rating | Year Published |
|------|--------|------------------|----------------|
| The Stormlight Archive | Brandon Sanderson | [4.81](https://www.goodreads.com/book/show/39904817-stormlight-archive-4-book-set?ac=1&from_search=true&qid=QO2o6tRJg4&rank=1) | 2007 |
| The Kingkiller Chronicle | Patrick Rothfuss | [4.55](https://www.goodreads.com/series/45262-the-kingkiller-chronicle) | 2007 |
| The Lord of the Rings | J.R.R. Tolkien | [4.47](https://www.goodreads.com/series/66175-the-lord-of-the-rings) | 2005 |
| The Lord of the Rings | J.R.R. Tolkien | [4.47](https://www.goodreads.com/series/66175-the-lord-of-the-rings) | 1954 |
| A Song of Ice and Fire | George R.R. Martin | [4.45](https://www.goodreads.com/series/43790-a-song-of-ice-and-fire) | 2005 |
| Harry Potter | J.K. Rowling | [4.44](https://www.goodreads.com/series/45175-harry-potter) | 1997 |
| Mistborn | Brandon Sanderson | [4.43](https://www.goodreads.com/series/40910-mistborn) | 2006 |
| Harry Potter and the Methods of Rationality | Eliezer Yudkowsky | [4.38](https://www.goodreads.com/book/show/10016013-harry-potter-and-the-methods-of-rationality) | 2015 |
| Discworld | Terry Pratchett | [4.32](https://www.goodreads.com/series/40650-discworld) | 2001 |
| The Dark Tower | Stephen King | [4.27](https://www.goodreads.com/series/40750-the-dark-tower) | |
| His Dark Materials | Philip Pullman | [4.25](https://www.goodreads.com/book/show/18116.His_Dark_Materials) | |
| The Last Wish - Saga | Andrzej Sapkowski | [4.2](https://www.goodreads.com/book/show/1128434.The_Last_Wish) | 1993 |
| The Dark Tower | Stephen King | [4.27](https://www.goodreads.com/series/40750-the-dark-tower) | 1982 |
| And the Mountains Echoed | Khaled Hosseini | [4.26](https://www.goodreads.com/book/show/21897740-and-the-mountains-echoed) | 2013 |
| His Dark Materials | Philip Pullman | [4.25](https://www.goodreads.com/book/show/18116.His_Dark_Materials) | 1995 |
| The Last Wish | Andrzej Sapkowski | [4.2](https://www.goodreads.com/book/show/1128434.The_Last_Wish) | 1993 |
| The Chronicles of Narnia | Clive Staples Lewis | [4.24](https://www.goodreads.com/book/show/11127.The_Chronicles_of_Narnia) | 2002 |
| The Wheel of Time | Robert Jordan | [4.19](https://www.goodreads.com/series/41526-the-wheel-of-time) | 1990 |
| The City & The City | China Mieville | [3.91](https://www.goodreads.com/book/show/4703581-the-city-the-city) | 2009 |
| The Broken Empire | Mark Lawrence | [3.87](https://www.goodreads.com/series/64473-the-broken-empire) | 2011 |
| Of Fire and Stars Book |Audrey Coulthurst | [3.76](https://www.goodreads.com/book/show/25164304-of-fire-and-stars) | 2016 |
<a href="#top"><img src="https://img.shields.io/badge/Back%20to%20Top-↑-blue"/></a>
### Historical Fiction
| Name | Author | Goodreads Rating | Year Published |
|------|--------|------------------|----------------|
| Lonesome Dove | Larry McMurtry | [4.47](https://www.goodreads.com/book/show/256008.Lonesome_Dove) | 1999 |
| The Help | Kathryn Stockett | [4.45](https://www.goodreads.com/book/show/4667024-the-help) | |
| The Book Thief | Markus Zusak | [4.36](https://www.goodreads.com/book/show/19063.The_Book_Thief) | |
| Lonesome Dove | Larry McMurtry | [4.47](https://www.goodreads.com/book/show/256008.Lonesome_Dove) | 1985 |
| The Help | Kathryn Stockett | [4.45](https://www.goodreads.com/book/show/4667024-the-help) | 2009 |
| A Thousand Splendid Suns | Khaled Hosseini | [4.4](https://www.goodreads.com/book/show/128029.A_Thousand_Splendid_Suns) | 2007 |
| The Book Thief | Markus Zusak | [4.36](https://www.goodreads.com/book/show/19063.The_Book_Thief) | 2005 |
| All the Light We Cannot See | Anthony Doerr | [4.31](https://www.goodreads.com/book/show/18143977-all-the-light-we-cannot-see) | 2014 |
| The Pillars of the Earth | Ken Follett | [4.29](https://www.goodreads.com/book/show/5043.The_Pillars_of_the_Earth?from_search=true) | 2002 |
| Kane and Abel | Jeffrey Archer | [4.27](http://www.goodreads.com/book/show/78983.Kane_and_Abel) | 2004 |
| Emma | Jane Austen | [3.99](https://www.goodreads.com/book/show/6969.Emma) | 2003 |
| Sophie's World: A Novel About the History of Philosophy | Jostein Gaarder and Paulette Moller | [3.88](https://www.goodreads.com/book/show/10959.Sophie_s_World) | 1996 |
| The Kite Runner | Khaled Hosseini | [4.3](https://www.goodreads.com/book/show/77203.The_Kite_Runner) | 2003 |
| The Pillars of the Earth | Ken Follett | [4.29](https://www.goodreads.com/book/show/5043.The_Pillars_of_the_Earth?from_search=true) | 1989 |
| Kane and Abel | Jeffrey Archer | [4.27](http://www.goodreads.com/book/show/78983.Kane_and_Abel) | 1979 |
| Memoirs of a Geisha | Arthur Golden | [4.12](https://www.goodreads.com/book/show/929.Memoirs_of_a_Geisha) | 1997 |
| One Day in the Life of Ivan Denisovich | Aleksandr Solzhenitsyn | [4](https://www.goodreads.com/book/show/17125.One_Day_in_the_Life_of_Ivan_Denisovich) | 1962 |
| Emma | Jane Austen | [3.99](https://www.goodreads.com/book/show/6969.Emma) | 1815 |
| Sophie's World: A Novel About the History of Philosophy | Jostein Gaarder and Paulette Moller | [3.88](https://www.goodreads.com/book/show/10959.Sophie_s_World) | 1991 |
<a href="#top"><img src="https://img.shields.io/badge/Back%20to%20Top-↑-blue"/></a>
### Humor
| Name | Author | Goodreads Rating | Year Published |
|------|--------|------------------|----------------|
| I Hope They Serve Beer In Hell | Tucker Max | [3.51](https://www.goodreads.com/book/show/9010.I_Hope_They_Serve_Beer_in_Hell) | 2006 |
<a href="#top"><img src="https://img.shields.io/badge/Back%20to%20Top-↑-blue"/></a>
### Mystery
| Name | Author | Goodreads Rating | Year Published |
|------|--------|------------------|----------------|
| Sherlock Holmes | Arthur Conan Doyle | [4.30](https://www.goodreads.com/series/49996-sherlock-holmes) | 1998 |
| And Then There Were None | Agatha Christie | [4.26](https://www.goodreads.com/series/49996-sherlock-holmes) | 1939 |
| The Murder of Roger Ackroyd | Agatha Christie | [4.20](http://www.goodreads.com/book/show/16328.The_Murder_of_Roger_Ackroyd) | 2006 |
| The Eight | Katherine Neville | [4.17](https://www.goodreads.com/book/show/113310.The_Eight) | |
| The Girl with the Dragon Tattoo | Stieg Larsson | [4.14](https://www.goodreads.com/book/show/2429135.The_Girl_with_the_Dragon_Tattoo) | 2005 |
| Memory Man | David Baldacci | [4.05](https://www.goodreads.com/book/show/23153154-memory-man) | 2015 |
| The Turn of the Key | Ruth Ware | [3.94](https://www.goodreads.com/book/show/42080142-the-turn-of-the-key) | 2019 |
| Angels & Demons | Dan Brown | [3.93](https://www.goodreads.com/book/show/960.Angels_Demons) | 2000 |
| The Girl on the Train | Paula Hawkins | [3.88](https://www.goodreads.com/book/show/22557272-the-girl-on-the-train) | 2015 |
| The Da Vinci Code | Dan Brown | [3.79](http://www.goodreads.com/book/show/968.The_Da_Vinci_Code) | 2006 |
<a href="#top"><img src="https://img.shields.io/badge/Back%20to%20Top-↑-blue"/></a>
### Science Fiction
| Name | Author | Goodreads Rating | Year Published |
|------|--------|------------------|----------------|
| The Hitchhiker's Guide to the Galaxy | Douglas Adams | [4.38](http://www.goodreads.com/book/show/11.The_Hitchhiker_s_Guide_to_the_Galaxy) ||
| Project Hail Mary | Andy Weir | [4.52](https://www.goodreads.com/book/show/54493401-project-hail-mary) | 2021 |
| The Martian | Andy Weir | [4.40](https://www.goodreads.com/book/show/18007564-the-martian) | 2012 |
| The Hitchhiker's Guide to the Galaxy | Douglas Adams | [4.38](http://www.goodreads.com/book/show/11.The_Hitchhiker_s_Guide_to_the_Galaxy) | 1979|
| Champion | Marie Lu | [4.32](https://www.goodreads.com/book/show/14290364-champion) | 2013 |
| Ready Player One | Ernest Cline | [4.31](https://www.goodreads.com/book/show/9969571-ready-player-one) | 2011 |
| 11/22/63 | Stephen King | [4.31](https://www.goodreads.com/book/show/10644930-11-22-63) | 2011 |
| Ender's Game - Saga | Orson Scott Card | [4.30](https://www.goodreads.com/search?utf8=%E2%9C%93&q=ender%27s+saga&search_type=books&search%5Bfield%5D=on) | 1994 |
| The Player of Games | Iain M. Banks | [4.26](https://www.goodreads.com/book/show/18630.The_Player_of_Games) | 1997 |
| The Fifth Sacred Thing | Starhawk | [4.25](https://www.goodreads.com/book/show/80689.The_Fifth_Sacred_Thing) | 1994 |
| Prodigy | Marie Lu | [4.24](https://www.goodreads.com/book/show/13414446-prodigy?ac=1&from_search=true&qid=BL85jNXP8P&rank=1) | 2013
| Hyperion | Dan Simmons | [4.21](https://www.goodreads.com/book/show/77566.Hyperion) | 1989 |
| Cosmicomics | Italo Calvino | [4.2](https://www.goodreads.com/book/show/59780.Cosmicomics) | 1965 |
| The Diamond Age | Neal Stephenson | [4.19](http://www.goodreads.com/book/show/827.The_Diamond_Age) | 2000 |
| Dune Chronicles | Frank Herbert | [4.19](https://www.goodreads.com/search?q=dune) | 2006 |
| Roadside Picnic | Arkady Strugatsky, Boris Strugatsky | [4.16](https://www.goodreads.com/book/show/331256.Roadside_Picnic) | 1972 |
| The Forever War | Joe Haldemann | [4.15](https://www.goodreads.com/book/show/21611.The_Forever_War) | 1974
| Contact | Carl Sagan | [4.14](https://www.goodreads.com/book/show/61666.Contact) | 1985 |
| Foundation | Isaac Asimov | [4.13](https://www.goodreads.com/book/show/29579.Foundation) | 2004 |
| Snow Crash | Neal Stephenson | [4.02](https://www.goodreads.com/book/show/830.Snow_Crash) | 2000 |
| Brave New World | Aldous Huxley | [3.99](https://www.goodreads.com/book/show/5129.Brave_New_World) | 1932 |
| Fahrenheit 451 | Ray Bradbury | [3.97](https://www.goodreads.com/book/show/17470674-fahrenheit-451) | 2006 |
| Little Brother | Cory Doctorow | [3.94](https://www.goodreads.com/book/show/954674.Little_Brother) | 2008 |
| The Time Machine | H.G Wells | [3.89](https://www.goodreads.com/book/show/2493.The_Time_Machine?from_search=true&from_srp=true&qid=UOQqEw4cz3&rank=1) | 1895 |
<a href="#top"><img src="https://img.shields.io/badge/Back%20to%20Top-↑-blue"/></a>
### Horror
| Name | Author | Goodreads Rating | Year Published |
|------|--------|------------------|----------------|
| It | Stephen King | [4.24](https://www.goodreads.com/book/show/830502.It) | 1986 |
| House of Leaves | Mark Z. Danielewski | [4.13](http://www.goodreads.com/book/show/24800.House_of_Leaves) | 2000 |
| If it bleeds | Stephen King | [4.10](https://www.goodreads.com/book/show/46015758-if-it-bleeds) | 2020 |
| Rosemary's Baby | Ira Levin | [4.00](https://www.goodreads.com/book/show/228296.Rosemary_s_Baby) | 1967 |
| Dracula | Bram Stoker | [3.98](http://www.goodreads.com/book/show/17245.Dracula) | 1986 |
| London (Surviving The Evacuation #1) | Frank Tayell | [3.86](https://www.goodreads.com/book/show/18655852-london) | 2013 |
| Frankenstein | Mary Shelley, Maurice Hindle | [3.75](http://www.goodreads.com/book/show/18490.Frankenstein) | 2003 |
<a href="#top"><img src="https://img.shields.io/badge/Back%20to%20Top-↑-blue"/></a>
### Miscellaneous
| Name | Author | Goodreads Rating | Year Published |
|------|--------|------------------|----------------|
@@ -444,33 +633,78 @@
| Ghost Fleet | P.W. Singer and August Cole | [3.62](https://www.goodreads.com/book/show/22749719-ghost-fleet?from_search=true) | 2015 |
| Future Crimes | Marc Goodman | [3.42](https://www.goodreads.com/book/show/22318398-future-crimes?from_search=true) | 1990 |
<a href="#top"><img src="https://img.shields.io/badge/Back%20to%20Top-↑-blue"/></a>
## Health
| Name | Author | Goodreads Rating | Year Published |
|------|--------|------------------|----------------|
| How Not to Die: Discover the Foods Scientifically Proven to Prevent and Reverse Disease | Michael Greger, M.D. | [4.54](https://www.goodreads.com/book/show/25663961-how-not-to-die) | 2015 |
| Overcoming Gravity: A Systematic Approach to Gymnastics and Bodyweight Strength (2nd edition) | Steven Low | [4.3](https://www.goodreads.com/book/show/33293328-overcoming-gravity) | 2016 |
| Breath: The New Science of a Lost Art | James Nestor | [4.15](https://www.goodreads.com/book/show/48890486-breath) | 2020 |
| Convict Conditioning | Paul Wade | [4.13](http://www.goodreads.com/book/show/7305111-convict-conditioning) | 2012 |
| Eat and Run: My Unlikely Journey to Ultramarathon Greatness | Scott Jurek, Steve Friedman | [3.95](https://www.goodreads.com/book/show/13202092-eat-and-run) | 2012 |
| Brain Food: The Surprising Science of Eating for Cognitive Power | Lisa Mosconi | [3.92](https://www.goodreads.com/book/show/35457267-brain-food) | 2018 |
| Super Human: The Bulletproof Plan to Age Backward and Maybe Even Live Forever | Dave Asprey | [3.86](https://www.goodreads.com/book/show/43801612-super-human?ref=nav_sb_ss_3_11) | 2019 |
| 8 Weeks to Optimum Health | Andrew Weil | [3.86](https://www.goodreads.com/book/show/37124.8_Weeks_to_Optimum_Health) | |
| Grain Brain: The Surprising Truth about Wheat, Carbs, and Sugar--Your Brain's Silent Killers | David Perlmutter | [3.89](https://www.goodreads.com/book/show/17333302-grain-brain) | 2013 |
<a href="#top"><img src="https://img.shields.io/badge/Back%20to%20Top-↑-blue"/></a>
## Design
| Name | Author | Goodreads Rating | Year Published |
|------|--------|------------------|----------------|
| Pattern Language: Towns, Buildings, Construction | Christopher Alexander, Sara Ishikawa, Murray Silverstein, Max Jacobson, Ingrid Fiksdahl-King and Shlomo Angel | [4.38](https://www.goodreads.com/book/show/79766.A_Pattern_Language) | 1977 |
| Data visualization handbook | Juuso Koponen, Jonatan Hildén | [4.33](https://www.goodreads.com/book/show/52326089-data-visualization-handbook) | 2019 |
| How Buildings Learn: What Happens After They're Built | Stewart Brand | [4.32](https://www.goodreads.com/book/show/38310.How_Buildings_Learn) | 1995 |
| Don't Make Me Think, Revisited: A Common Sense Approach to Web Usability | Steve Krug | [4.24](https://www.goodreads.com/book/show/18197267-don-t-make-me-think-revisited) | 2014 |
| The Design of Everyday Things | Donald Norman | [4.18](http://www.goodreads.com/book/show/840.The_Design_of_Everyday_Things) | 2002 |
| Mismatch: How Inclusion Shapes Design | Kat Holmes, John Maeda | [4.14](https://www.goodreads.com/book/show/39644200-mismatch) | 2018 |
| The Art of Looking Sideways | Alan Fletcher | [4.10](https://www.goodreads.com/book/show/15778.The_Art_of_Looking_Sideways) | 2001 |
| Change by Design: How Design Thinking Transforms Organizations and Inspires Innovation | Tim Brown | [3.88](https://www.goodreads.com/book/show/6671664-change-by-design) | 2009 |
<a href="#top"><img src="https://img.shields.io/badge/Back%20to%20Top-↑-blue"/></a>
## Travel
| Name | Author | Goodreads Rating | Year Published |
|------|--------|------------------|----------------|
| Atlas Obscura: An Explorer's Guide to the World's Hidden Wonders | Joshua Foer | [4.24](https://www.goodreads.com/book/show/28110891-atlas-obscura) | 2016 |
## Credits
<a href="#top"><img src="https://img.shields.io/badge/Back%20to%20Top-↑-blue"/></a>
## Language
| Name | Author | Goodreads Rating | Year Published |
|------|--------|------------------|----------------|
| Le Ton beau de Marot: In Praise of the Music of Language | Douglas R. Hofstadter | [4.22](https://www.goodreads.com/book/show/248193.Le_Ton_beau_de_Marot) | 1997 |
| The Language Instinct: How the Mind Creates Language | Steven Pinker | [4.02](https://www.goodreads.com/book/show/5755.The_Language_Instinct) | 2000 |
<a href="#top"><img src="https://img.shields.io/badge/Back%20to%20Top-↑-blue"/></a>
## Nature
| Name | Author | Goodreads Rating | Year Published |
|------|--------|------------------|----------------|
| The Wild Places | Robert Macfarlane | [4.27](https://www.goodreads.com/book/show/2688775-the-wild-places) | 2007 |
| The Sixth Extinction: An Unnatural History | Elizabeth Kolbert | [4.13](https://www.goodreads.com/book/show/17910054-the-sixth-extinction) | 2014 |
| Pilgrim at Tinker Creek | Annie Dillard | [4.11](https://www.goodreads.com/book/show/12527.Pilgrim_at_Tinker_Creek) | 1974 |
| A Walk in the Woods: Rediscovering America on the Appalachian Trai | Bill Bryson | [4.06](https://www.goodreads.com/book/show/9791.A_Walk_in_the_Woods) | 2006 |
| The Uninhabitable Earth: Life After Warming | David Wallace-Wells | [4.06](https://www.goodreads.com/book/show/41552709-the-uninhabitable-earth) | 2019 |
<a href="#top"><img src="https://img.shields.io/badge/Back%20to%20Top-↑-blue"/></a>
## Art
| Name | Author | Goodreads Rating | Year Published |
|------|--------|------------------|----------------|
| The New Drawing on the Right Side of the Brain | Betty Edwards | [3.86](https://www.goodreads.com/book/show/627206.The_New_Drawing_on_the_Right_Side_of_the_Brain) | 1989 |
| Steal Like an Artist: 10 Things Nobody Told You About Being Creative | Austin Kleon | [3.92](https://www.goodreads.com/book/show/13099738-steal-like-an-artist) | 2012 |
| Show Your Work!: 10 Ways to Share Your Creativity and Get Discovered | Austin Kleon | [4.10](https://www.goodreads.com/book/show/18290401-show-your-work) | 2014 |
<a href="#top"><img src="https://img.shields.io/badge/Back%20to%20Top-↑-blue"/></a>
# Credits
* [@hackerkid](https://github.com/hackerkid) for starting the list.
* [@geritol](https://github.com/geritol) for building the framework for maintaining the list.
* All the [contributors](https://github.com/hackerkid/Mind-Expanding-Books/graphs/contributors) for keeping the list updated by adding new books.
## License
# License
[![CC0](http://i.creativecommons.org/p/zero/1.0/88x31.png)](http://creativecommons.org/publicdomain/zero/1.0/)
To the extent possible under law, [Vishnu Ks](https://github.com/hackerkid) has waived all copyright and related or neighboring rights to this work.

22
app/.eslintrc.js Normal file
View File

@@ -0,0 +1,22 @@
module.exports = {
env: {
browser: true,
es2020: true,
},
extends: [
'plugin:react/recommended',
'airbnb',
],
parserOptions: {
ecmaFeatures: {
jsx: true,
},
ecmaVersion: 11,
sourceType: 'module',
},
plugins: [
'react',
],
rules: {
},
};

72
app/.gitignore vendored Normal file
View File

@@ -0,0 +1,72 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
# nyc test coverage
.nyc_output
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# Typescript v1 declaration files
typings/
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# dotenv environment variables file
.env
# gatsby files
.cache/
public
# Mac files
.DS_Store
# Yarn
yarn-error.log
.pnp/
.pnp.js
# Yarn Integrity file
.yarn-integrity
# ignore package-lock as it complicates merging
package-lock.json

4
app/.prettierignore Normal file
View File

@@ -0,0 +1,4 @@
.cache
package.json
package-lock.json
public

7
app/.prettierrc Normal file
View File

@@ -0,0 +1,7 @@
{
"endOfLine": "lf",
"semi": false,
"singleQuote": false,
"tabWidth": 2,
"trailingComma": "es5"
}

1
app/.prettierrc.json Normal file
View File

@@ -0,0 +1 @@
{}

22
app/LICENSE Normal file
View File

@@ -0,0 +1,22 @@
The MIT License (MIT)
Copyright (c) 2015 gatsbyjs
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

39
app/README.md Normal file
View File

@@ -0,0 +1,39 @@
`app/` directory contains the source code of the Mind Expanding Books [website](https://books.vishnuks.com)
## How to setup development environment
#### Verify Node Install
```
node -v
npm -v
```
#### Install Gatsby CLI
```
npm install -g gatsby-cli
```
```bash
git clone https://github.com/hackerkid/Mind-Expanding-Books
cd app/
npm install
gatsby develop
```
Once this is done, the development server should be accessible at http://localhost:8000
## High level overview of the website
- The website is made using Gatsby, which is a React based static site generator.
- The website is deployed in Netlify automatically whenever a commit is pushed to GitHub.
- When you create a pull request with changes to the source code, Netlify will automatically
create a website for previewing the changes. You can click on "Details" in the "Deploy preview ready!"
message in the pull request page for seeing the website.
## From where does the website fetches the data of the books?
Website fetches the data of the books from `app/src/data/books.json` file. See [README in utils directory](../utils/README.MD)
for details on how this file is generated.

14
app/gatsby-browser.js Normal file
View File

@@ -0,0 +1,14 @@
/**
* Implement Gatsby's Browser APIs in this file.
*
* See: https://www.gatsbyjs.org/docs/browser-apis/
*/
// You can delete this file if you're not using it
import React from "react"
import GlobalState from "./src/context/globalState"
export const wrapRootElement = ({ element }) => (
<GlobalState>{element}</GlobalState>
)

46
app/gatsby-config.js Normal file
View File

@@ -0,0 +1,46 @@
module.exports = {
siteMetadata: {
title: `Mind Expanding Books`,
description: `Kick off your next, great Gatsby project with this default starter. This barebones starter ships with the main Gatsby configuration files you might need.`,
author: `@gatsbyjs`,
},
plugins: [
`gatsby-plugin-react-helmet`,
{
resolve: `gatsby-source-filesystem`,
options: {
name: `images`,
path: `${__dirname}/src/images`,
},
},
`gatsby-transformer-sharp`,
`gatsby-plugin-sharp`,
{
resolve: `gatsby-plugin-manifest`,
options: {
name: `gatsby-starter-default`,
short_name: `starter`,
start_url: `/`,
background_color: `#663399`,
theme_color: `#663399`,
display: `minimal-ui`,
icon: `src/images/gatsby-icon.png`, // This path is relative to the root of the site.
},
},
`gatsby-plugin-offline`,
`gatsby-transformer-json`,
{
resolve: `gatsby-source-filesystem`,
options: {
path: `./src/data/`,
},
},
`gatsby-plugin-postcss`,
{
resolve: `gatsby-plugin-google-analytics`,
options: {
trackingId: "UA-139957969-2",
}
}
],
}

49
app/gatsby-node.js Normal file
View File

@@ -0,0 +1,49 @@
const fs = require('fs');
const categories = JSON.parse(fs.readFileSync('src/data/categories.json'));
const slugify = require('slugify');
exports.createPages = async function ({ actions, graphql }) {
const { createPage } = actions;
await Promise.all(
categories.map(async (category) => {
const data = await graphql(
`
query categoryBooksQuery($categoryName: String) {
allBooksJson(
filter: { category: { eq: $categoryName } }
sort: { fields: [rating], order: DESC }
) {
edges {
node {
id
title
url
rating
author
year
category
image_url
description
amazon_url
}
}
}
}
`,
{ categoryName: category.name },
);
console.log(category.name, data.data);
createPage({
path: slugify(category.name),
component: require.resolve('./src/templates/categoryTemplate.js'),
context: {
categoryName: category.name,
data: data.data,
image: category.emoji,
limit: null,
},
});
}),
);
};

14
app/gatsby-ssr.js Normal file
View File

@@ -0,0 +1,14 @@
/**
* Implement Gatsby's SSR (Server Side Rendering) APIs in this file.
*
* See: https://www.gatsbyjs.org/docs/ssr-apis/
*/
// You can delete this file if you're not using it
import React from "react"
import GlobalState from "./src/context/globalState"
export const wrapRootElement = ({ element }) => (
<GlobalState>{element}</GlobalState>
)

29267
app/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

69
app/package.json Normal file
View File

@@ -0,0 +1,69 @@
{
"name": "gatsby-starter-default",
"private": true,
"description": "A simple starter to get up and developing quickly with Gatsby",
"version": "0.1.0",
"author": "Kyle Mathews <mathews.kyle@gmail.com>",
"dependencies": {
"bootstrap": "^4.5.2",
"gatsby": "^2.24.91",
"gatsby-image": "^2.2.27",
"gatsby-plugin-google-analytics": "^2.3.14",
"gatsby-plugin-manifest": "^2.4.37",
"gatsby-plugin-offline": "^3.0.14",
"gatsby-plugin-postcss": "^2.1.11",
"gatsby-plugin-react-helmet": "^3.1.11",
"gatsby-plugin-sharp": "^2.6.43",
"gatsby-source-filesystem": "^2.1.31",
"gatsby-transformer-json": "^2.2.13",
"gatsby-transformer-sharp": "^2.2.21",
"prop-types": "^15.7.2",
"react": "^16.10.2",
"react-bootstrap": "^1.3.0",
"react-dom": "^16.10.2",
"react-helmet": "^5.2.1",
"react-star-rating-component": "^1.4.1",
"react-star-ratings": "^2.3.0",
"slugify": "^1.4.5"
},
"devDependencies": {
"eslint": "^7.7.0",
"eslint-config-airbnb": "^18.2.0",
"eslint-plugin-import": "^2.22.0",
"eslint-plugin-jsx-a11y": "^6.3.1",
"eslint-plugin-react": "^7.20.6",
"eslint-plugin-react-hooks": "^4.1.0",
"husky": "^4.3.0",
"lint-staged": ">=10",
"prettier": "1.19.1",
"tailwindcss": "^1.1.2"
},
"keywords": [
"gatsby"
],
"license": "MIT",
"scripts": {
"build": "gatsby build",
"develop": "gatsby develop",
"format": "prettier --write \"**/*.{js,jsx,json,md}\"",
"start": "npm run develop",
"serve": "gatsby serve",
"test": "echo \"Write tests! -> https://gatsby.dev/unit-testing \""
},
"repository": {
"type": "git",
"url": "https://github.com/gatsbyjs/gatsby-starter-default"
},
"bugs": {
"url": "https://github.com/gatsbyjs/gatsby/issues"
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"*.{js,jsx,json,md}": "prettier --write",
"*.js": "eslint --cache --fix"
}
}

3
app/postcss.config.js Normal file
View File

@@ -0,0 +1,3 @@
module.exports = () => ({
plugins: [require("tailwindcss")],
})

View File

@@ -0,0 +1,14 @@
import React from "react";
import { OutboundLink } from "gatsby-plugin-google-analytics"
const getTargetURL = (book) => {
return book.amazon_url + "?tag=vishnuks-20";
}
export default ({ book }) => {
return (
<OutboundLink href={getTargetURL(book)} target="_blank" rel="noreferrer">
<img alt="Amazon link" style={{ marginBottom: "-8px" }} src="https://img.icons8.com/color/48/000000/amazon.png"/>
</OutboundLink>
)
}

View File

@@ -0,0 +1,95 @@
import PropTypes from 'prop-types';
import React, { useState } from 'react';
import StarRatings from 'react-star-ratings';
import { Card, Row, Col } from 'react-bootstrap';
import AmazonURL from '../components/amazonurl';
import Bookmark from '../components/bookmark';
import GoodReadsImage from '../components/goodreadsimage';
const truncateContent = (content) => {
if (!content) {
return '';
}
return content.length > 350 ? content.substring(0, 350) + '...' : content;
};
const showFullText = (content) => {
if (!content) {
return '';
}
return content;
};
const BookCard = ({ book }) => {
const [ show, toggleShow ] = useState(false);
return (
<Card style={{ marginBottom: '15px' }}>
<Row>
<Col xs={6} sm={6} md={4} xl={2}>
<Card.Img
style={{
paddingLeft: '15px',
paddingRight: '15px',
paddingTop: '30px'
}}
src={book.image_url}
alt={book.title}
/>
</Col>
<Col xs={12} sm={6} md={8} xl={10}>
<Card.Body>
<Card.Title>{book.title}</Card.Title>
<Card.Subtitle className="text-muted">
<Card.Text style={{ paddingTop: '2px' }}>
{book.author} <b>{book.year ? book.year : null}</b>
</Card.Text>
<StarRatings
rating={parseFloat(book.rating)}
numberOfStars={5}
starDimension="18px"
starSpacing="1px"
starRatedColor="#fa604a"
/>
<div style={{ display: 'flex', alignItems: 'center', paddingTop: '.75rem' }}>
<div style={{ width: '30px', height: '30px', marginRight: '5px' }}>
{book.amazon_url ? <AmazonURL book={book} /> : null}
</div>
<div style={{ width: '30px', height: '30px' }}>
<a href={book.url} target="_blank">
<GoodReadsImage />
</a>
</div>
<Bookmark book={book} />
</div>
</Card.Subtitle>
<p style={{ color: 'gray', fontSize: '0.8rem', paddingTop: '1rem' }}>
{!show && truncateContent(book.description)}
{show && showFullText(book.description)}
</p>
{!show && book.description.length>350 &&(
<button className="btn btn-sm btn-primary " onClick={() => toggleShow(true)}>
Show More
</button>
)}
{show && (
<button className="btn btn-sm btn-primary " onClick={() => toggleShow(false)}>
Show Less
</button>
)}
</Card.Body>
</Col>
</Row>
</Card>
);
};
BookCard.propTypes = {
siteTitle: PropTypes.object
};
BookCard.defaultProps = {
book: {}
};
export default BookCard;

View File

@@ -0,0 +1,26 @@
import React, { useContext } from 'react'
import { Button } from "react-bootstrap"
import { BookmarkContext } from '../context/globalState'
export default ({ book }) => {
const { updateReadingList, readingList } = useContext(BookmarkContext)
const readingListIds = readingList.bookIds
return (
<div onClick={() => updateReadingList({ type: 'bookmark', retrievedBook: book })}>
<Button style={{
height: "30px",
width: "30px",
marginLeft: "0.25rem",
display: "grid",
justifyContent: "center",
alignContent: "center" }}
variant={ readingListIds.includes(book.id) ? "success" : "light"
}>
<span>
🔖
</span>
</Button>
</div>
)
}

View File

@@ -0,0 +1,12 @@
import React from "react";
export default ({categoryName, categoryImage}) => {
return (
<div className="my-2 mx-2" aria-labelledby="category-description">
<h4 id="category-description">
{categoryImage} {categoryName}
</h4>
</div>
)
}

View File

@@ -0,0 +1,28 @@
import React from 'react';
import '../styles/sidebar.css';
import BookCard from './bookcard';
import SortByDropdown, { FIELDS_TO_SORT_BY, compareFunctions } from './sortByDropdown';
export default ({ data, limit }) => {
const [sortBy, setSortBy] = React.useState(FIELDS_TO_SORT_BY[0]);
const sortedBooks = React.useMemo(() => [...data.allBooksJson.edges]
.sort(compareFunctions[sortBy.value]),
[sortBy]);
return (
<>
<SortByDropdown sortBy={sortBy.label} onSortByItemClick={setSortBy} />
{sortedBooks.map((x, index) => {
const book = x.node;
if (!limit || index < limit) {
if (!book.description || book.description.length < 10) {
return null;
}
return <BookCard book={book} key={book.id} />;
}
return null;
})}
</>
);
};

View File

@@ -0,0 +1,32 @@
import React from "react"
import { useStaticQuery, graphql } from "gatsby"
import Img from "gatsby-image"
/*
* This component is built using `gatsby-image` to automatically serve optimized
* images with lazy loading and reduced file sizes. The image is loaded using a
* `useStaticQuery`, which allows us to load the image from directly within this
* component, rather than having to pass the image data down from pages.
*
* For more information, see the docs:
* - `gatsby-image`: https://gatsby.dev/gatsby-image
* - `useStaticQuery`: https://www.gatsbyjs.org/docs/use-static-query/
*/
const Image = () => {
const data = useStaticQuery(graphql`
query {
placeholderImage: file(relativePath: { eq: "goodreads.png" }) {
childImageSharp {
fluid(maxWidth: 30) {
...GatsbyImageSharpFluid
}
}
}
}
`)
return <Img fluid={data.placeholderImage.childImageSharp.fluid} />
}
export default Image

View File

@@ -0,0 +1,28 @@
import { Link } from "gatsby"
import PropTypes from "prop-types"
import React from "react"
const Header = ({ siteTitle }) => (
<header className="mx-2 bg-red d-none d-lg-block custom-header" aria-labelledby='main-title'>
<h4 className="d-flex justify-content-end" id="main-title" style={{ margin: 16 }}>
<Link
to="/"
style={{
textDecorationColor: `none`,
}}
>
{siteTitle}
</Link>
</h4>
</header>
)
Header.propTypes = {
siteTitle: PropTypes.string,
}
Header.defaultProps = {
siteTitle: ``,
}
export default Header

View File

@@ -0,0 +1,32 @@
import React from "react"
import { useStaticQuery, graphql } from "gatsby"
import Img from "gatsby-image"
/*
* This component is built using `gatsby-image` to automatically serve optimized
* images with lazy loading and reduced file sizes. The image is loaded using a
* `useStaticQuery`, which allows us to load the image from directly within this
* component, rather than having to pass the image data down from pages.
*
* For more information, see the docs:
* - `gatsby-image`: https://gatsby.dev/gatsby-image
* - `useStaticQuery`: https://www.gatsbyjs.org/docs/use-static-query/
*/
const Image = () => {
const data = useStaticQuery(graphql`
query {
placeholderImage: file(relativePath: { eq: "gatsby-astronaut.png" }) {
childImageSharp {
fluid(maxWidth: 300) {
...GatsbyImageSharpFluid
}
}
}
}
`)
return <Img fluid={data.placeholderImage.childImageSharp.fluid} />
}
export default Image

View File

@@ -0,0 +1,622 @@
html {
font-family: sans-serif;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
}
body {
margin: 0;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
main,
menu,
nav,
section,
summary {
display: block;
}
audio,
canvas,
progress,
video {
display: inline-block;
}
audio:not([controls]) {
display: none;
height: 0;
}
progress {
vertical-align: baseline;
}
[hidden],
template {
display: none;
}
a {
background-color: transparent;
-webkit-text-decoration-skip: objects;
}
a:active,
a:hover {
outline-width: 0;
}
abbr[title] {
border-bottom: none;
text-decoration: underline;
text-decoration: underline dotted;
}
b,
strong {
font-weight: inherit;
font-weight: bolder;
}
dfn {
font-style: italic;
}
h1 {
font-size: 2em;
margin: 0.67em 0;
}
mark {
background-color: #ff0;
color: #000;
}
small {
font-size: 80%;
}
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
img {
border-style: none;
}
svg:not(:root) {
overflow: hidden;
}
code,
kbd,
pre,
samp {
font-family: monospace, monospace;
font-size: 1em;
}
figure {
margin: 1em 40px;
}
hr {
box-sizing: content-box;
height: 0;
overflow: visible;
}
button,
input,
optgroup,
select,
textarea {
font: inherit;
margin: 0;
}
optgroup {
font-weight: 700;
}
button,
input {
overflow: visible;
}
button,
select {
text-transform: none;
}
[type="reset"],
[type="submit"],
button,
html [type="button"] {
-webkit-appearance: button;
}
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner,
button::-moz-focus-inner {
border-style: none;
padding: 0;
}
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring,
button:-moz-focusring {
outline: 1px dotted ButtonText;
}
fieldset {
border: 1px solid silver;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
}
legend {
box-sizing: border-box;
color: inherit;
display: table;
max-width: 100%;
padding: 0;
white-space: normal;
}
textarea {
overflow: auto;
}
[type="checkbox"],
[type="radio"] {
box-sizing: border-box;
padding: 0;
}
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
[type="search"] {
-webkit-appearance: textfield;
outline-offset: -2px;
}
[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
::-webkit-input-placeholder {
color: inherit;
opacity: 0.54;
}
::-webkit-file-upload-button {
-webkit-appearance: button;
font: inherit;
}
html {
font: 112.5%/1.45em georgia, serif;
box-sizing: border-box;
overflow-y: scroll;
}
* {
box-sizing: inherit;
}
*:before {
box-sizing: inherit;
}
*:after {
box-sizing: inherit;
}
body {
color: hsla(0, 0%, 0%, 0.8);
font-family: georgia, serif;
font-weight: normal;
word-wrap: break-word;
font-kerning: normal;
-moz-font-feature-settings: "kern", "liga", "clig", "calt";
-ms-font-feature-settings: "kern", "liga", "clig", "calt";
-webkit-font-feature-settings: "kern", "liga", "clig", "calt";
font-feature-settings: "kern", "liga", "clig", "calt";
}
img {
max-width: 100%;
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
}
h1 {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
color: inherit;
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
font-weight: bold;
text-rendering: optimizeLegibility;
font-size: 2.25rem;
line-height: 1.1;
}
h2 {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
color: inherit;
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
font-weight: bold;
text-rendering: optimizeLegibility;
font-size: 1.62671rem;
line-height: 1.1;
}
h3 {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
color: inherit;
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
font-weight: bold;
text-rendering: optimizeLegibility;
font-size: 1.38316rem;
line-height: 1.1;
}
h4 {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
color: inherit;
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
font-weight: bold;
text-rendering: optimizeLegibility;
font-size: 1rem;
line-height: 1.1;
}
h5 {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
color: inherit;
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
font-weight: bold;
text-rendering: optimizeLegibility;
font-size: 0.85028rem;
line-height: 1.1;
}
h6 {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
color: inherit;
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
font-weight: bold;
text-rendering: optimizeLegibility;
font-size: 0.78405rem;
line-height: 1.1;
}
hgroup {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
}
ul {
margin-left: 1.45rem;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
list-style-position: outside;
list-style-image: none;
}
ol {
margin-left: 1.45rem;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
list-style-position: outside;
list-style-image: none;
}
dl {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
}
dd {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
}
p {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
}
figure {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
}
pre {
margin-left: 0;
margin-right: 0;
margin-top: 0;
margin-bottom: 1.45rem;
font-size: 0.85rem;
line-height: 1.42;
background: hsla(0, 0%, 0%, 0.04);
border-radius: 3px;
overflow: auto;
word-wrap: normal;
padding: 1.45rem;
}
table {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
font-size: 1rem;
line-height: 1.45rem;
border-collapse: collapse;
width: 100%;
}
fieldset {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
}
blockquote {
margin-left: 1.45rem;
margin-right: 1.45rem;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
}
form {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
}
noscript {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
}
iframe {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
}
hr {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: calc(1.45rem - 1px);
background: hsla(0, 0%, 0%, 0.2);
border: none;
height: 1px;
}
address {
margin-left: 0;
margin-right: 0;
margin-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
padding-top: 0;
margin-bottom: 1.45rem;
}
b {
font-weight: bold;
}
strong {
font-weight: bold;
}
dt {
font-weight: bold;
}
th {
font-weight: bold;
}
li {
margin-bottom: calc(1.45rem / 2);
}
ol li {
padding-left: 0;
}
ul li {
padding-left: 0;
}
li > ol {
margin-left: 1.45rem;
margin-bottom: calc(1.45rem / 2);
margin-top: calc(1.45rem / 2);
}
li > ul {
margin-left: 1.45rem;
margin-bottom: calc(1.45rem / 2);
margin-top: calc(1.45rem / 2);
}
blockquote *:last-child {
margin-bottom: 0;
}
li *:last-child {
margin-bottom: 0;
}
p *:last-child {
margin-bottom: 0;
}
li > p {
margin-bottom: calc(1.45rem / 2);
}
code {
font-size: 0.85rem;
line-height: 1.45rem;
}
kbd {
font-size: 0.85rem;
line-height: 1.45rem;
}
samp {
font-size: 0.85rem;
line-height: 1.45rem;
}
abbr {
border-bottom: 1px dotted hsla(0, 0%, 0%, 0.5);
cursor: help;
}
acronym {
border-bottom: 1px dotted hsla(0, 0%, 0%, 0.5);
cursor: help;
}
abbr[title] {
border-bottom: 1px dotted hsla(0, 0%, 0%, 0.5);
cursor: help;
text-decoration: none;
}
thead {
text-align: left;
}
td,
th {
text-align: left;
border-bottom: 1px solid hsla(0, 0%, 0%, 0.12);
font-feature-settings: "tnum";
-moz-font-feature-settings: "tnum";
-ms-font-feature-settings: "tnum";
-webkit-font-feature-settings: "tnum";
padding-left: 0.96667rem;
padding-right: 0.96667rem;
padding-top: 0.725rem;
padding-bottom: calc(0.725rem - 1px);
}
th:first-child,
td:first-child {
padding-left: 0;
}
th:last-child,
td:last-child {
padding-right: 0;
}
tt,
code {
background-color: hsla(0, 0%, 0%, 0.04);
border-radius: 3px;
font-family: "SFMono-Regular", Consolas, "Roboto Mono", "Droid Sans Mono",
"Liberation Mono", Menlo, Courier, monospace;
padding: 0;
padding-top: 0.2em;
padding-bottom: 0.2em;
}
pre code {
background: none;
line-height: 1.42;
}
code:before,
code:after,
tt:before,
tt:after {
letter-spacing: -0.2em;
content: " ";
}
pre code:before,
pre code:after,
pre tt:before,
pre tt:after {
content: "";
}
@media only screen and (max-width: 480px) {
html {
font-size: 100%;
}
}

View File

@@ -0,0 +1,47 @@
/**
* Layout component that queries for data
* with Gatsby's useStaticQuery component
*
* See: https://www.gatsbyjs.org/docs/use-static-query/
*/
import React from "react"
import PropTypes from "prop-types"
import { useStaticQuery, graphql } from "gatsby"
import Header from "./header"
import "./layout.css"
import "bootstrap/dist/css/bootstrap.min.css"
import { Container } from "react-bootstrap"
const Layout = ({ children }) => {
const data = useStaticQuery(graphql`
query SiteTitleQuery {
site {
siteMetadata {
title
}
}
}
`)
return (
<>
<Header siteTitle={data.site.siteMetadata.title} />
<Container fluid>
<main>{children}</main>
<footer class ="footer-text">
© {new Date().getFullYear()}, Built with
{` `}
<a href="https://www.gatsbyjs.org">Gatsby</a>
</footer>
</Container>
</>
)
}
Layout.propTypes = {
children: PropTypes.node.isRequired,
}
export default Layout

88
app/src/components/seo.js Normal file
View File

@@ -0,0 +1,88 @@
/**
* SEO component that queries for data with
* Gatsby's useStaticQuery React hook
*
* See: https://www.gatsbyjs.org/docs/use-static-query/
*/
import React from "react"
import PropTypes from "prop-types"
import Helmet from "react-helmet"
import { useStaticQuery, graphql } from "gatsby"
function SEO({ description, lang, meta, title }) {
const { site } = useStaticQuery(
graphql`
query {
site {
siteMetadata {
title
description
author
}
}
}
`
)
const metaDescription = description || site.siteMetadata.description
return (
<Helmet
htmlAttributes={{
lang,
}}
title={title}
titleTemplate={`%s | ${site.siteMetadata.title}`}
meta={[
{
name: `description`,
content: metaDescription,
},
{
property: `og:title`,
content: title,
},
{
property: `og:description`,
content: metaDescription,
},
{
property: `og:type`,
content: `website`,
},
{
name: `twitter:card`,
content: `summary`,
},
{
name: `twitter:creator`,
content: site.siteMetadata.author,
},
{
name: `twitter:title`,
content: title,
},
{
name: `twitter:description`,
content: metaDescription,
},
].concat(meta)}
/>
)
}
SEO.defaultProps = {
lang: `en`,
meta: [],
description: ``,
}
SEO.propTypes = {
description: PropTypes.string,
lang: PropTypes.string,
meta: PropTypes.arrayOf(PropTypes.object),
title: PropTypes.string.isRequired,
}
export default SEO

View File

@@ -0,0 +1,49 @@
import React, { useContext } from "react"
import { Navbar, Nav } from "react-bootstrap"
import { StaticQuery, graphql, Link } from "gatsby"
import "../styles/sidebar.css"
import { BookmarkContext } from '../context/globalState'
var slugify = require('slugify')
export default () => {
const { readingList } = useContext(BookmarkContext)
return (
<StaticQuery
query={graphql`
query CategoryQuery {
allCategoriesJson {
edges {
node {
id
name
emoji
}
}
}
}
`}
render={data => (
<Navbar className="sidebar-sticky" collapseOnSelect expand="lg" bg="ligt" variant="light">
<Navbar.Toggle aria-controls="responsive-navbar-nav" />
<Navbar.Collapse>
<div>
<div style={{position: "relative", left: "0.9rem", paddingBottom: "0.2rem"}}>
<Link to="/readingList">🔖 Reading List ({readingList.bookIds.length})</Link>
</div>
{data.allCategoriesJson.edges.map(function(x, index) {
return (
<Nav.Item key={index}>
<Nav.Link href={slugify(x.node.name)}>
{x.node.emoji} {x.node.name}
</Nav.Link>
</Nav.Item>
)
})}
</div>
</Navbar.Collapse>
</Navbar>
)}
/>
)
}

View File

@@ -0,0 +1,40 @@
import React from 'react';
import { Dropdown } from 'react-bootstrap';
export const compareFunctions = {
title_a_z: ({ node: bookOne }, { node: bookTwo }) => bookOne.title.localeCompare(bookTwo.title),
title_z_a: ({ node: bookOne }, { node: bookTwo }) => bookTwo.title.localeCompare(bookOne.title),
year_descending: ({ node: bookOne }, { node: bookTwo }) => Number(bookTwo.year) - Number(bookOne.year),
year_ascending: ({ node: bookOne }, { node: bookTwo }) => Number(bookOne.year) - Number(bookTwo.year),
rating_descending: ({ node: bookOne }, { node: bookTwo }) => Number(bookTwo.rating) - Number(bookOne.rating),
rating_ascending: ({ node: bookOne }, { node: bookTwo }) => Number(bookOne.rating) - Number(bookTwo.rating),
};
export const FIELDS_TO_SORT_BY = [
{ label: 'Rating, high to low', value: 'rating_descending' },
{ label: 'Rating, low to high', value: 'rating_ascending' },
{ label: 'Publication year, new to old', value: 'year_descending' },
{ label: 'Publication year, old to new', value: 'year_ascending' },
{ label: 'Title, A-Z', value: 'title_a_z' },
{ label: 'Title, Z-A', value: 'title_z_a' },
];
export default ({ sortBy, onSortByItemClick }) => (
<div className="mb-2">
<Dropdown>
<Dropdown.Toggle variant="outline">
Sort By:
{' '}
{sortBy}
</Dropdown.Toggle>
<Dropdown.Menu>
{FIELDS_TO_SORT_BY.map((field, index) => (
<Dropdown.Item key={index} onClick={() => onSortByItemClick(field)}>
{field.label}
</Dropdown.Item>
))}
</Dropdown.Menu>
</Dropdown>
</div>
);

View File

@@ -0,0 +1,33 @@
export default function bookReducer(state, action) {
let readingListCopy = {...state}
switch (action.type) {
case 'init': {
if (action.content) {
return action.content
}
return readingListCopy
}
case 'bookmark': {
let { bookIds, books } = readingListCopy
const { retrievedBook } = action
const retrievedBookId = retrievedBook.id
// Delete existing bookmark
if (bookIds.includes(retrievedBookId)) {
readingListCopy.bookIds = bookIds.filter(id => id !== retrievedBookId)
delete books[retrievedBookId]
if (typeof window !== undefined) {
localStorage.setItem('Bookmarks', JSON.stringify(readingListCopy))
}
// Add new bookmark
} else {
books[retrievedBookId] = retrievedBook
bookIds.push(retrievedBookId)
if (typeof window !== undefined) {
localStorage.setItem('Bookmarks', JSON.stringify(readingListCopy))
}
}
return readingListCopy
}
}
}

View File

@@ -0,0 +1,25 @@
import React, { useReducer, useEffect } from 'react'
import bookReducer from './bookReducer'
export const BookmarkContext = React.createContext()
export default function GlobalState({children}) {
let [readingList, updateReadingList] = useReducer(bookReducer, {
books: {},
bookIds: []
})
useEffect(() => {
if (typeof window !== undefined) {
const retrievedBooks = JSON.parse(localStorage.getItem('Bookmarks'))
console.log(retrievedBooks)
updateReadingList({type: 'init', content: retrievedBooks})
}
}, [])
return (
<BookmarkContext.Provider value={{readingList, updateReadingList}}>
{children}
</BookmarkContext.Provider>
)
}

5728
app/src/data/books.json Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,74 @@
[
{
"name": "Startups and Business",
"emoji": "🚀"
},
{
"name": "Philosophy And Psychology",
"emoji": "☯️"
},
{
"name": "Autobiographies and Biographies",
"emoji": "👩🏾"
},
{
"name": "History",
"emoji": "📜"
},
{
"name": "Science and Medicine",
"emoji": "🔬"
},
{
"name": "Logic and Problem Solving",
"emoji": "🧩"
},
{
"name": "Politics",
"emoji": "🗳️"
},
{
"name": "Economics",
"emoji": "📈"
},
{
"name": "Gender",
"emoji": "🏳️‍🌈"
},
{
"name": "Sexuality",
"emoji": "😘"
},
{
"name": "Education",
"emoji": "🏫"
},
{
"name": "Writing",
"emoji": "📝"
},
{
"name": "Theater and Film",
"emoji": "🎬"
},
{
"name": "Health",
"emoji": "👩‍⚕️"
},
{
"name": "Travel",
"emoji": "🛩️"
},
{
"name": "Language",
"emoji": "🉐"
},
{
"name": "Nature",
"emoji": "🌲"
},
{
"name": "Art",
"emoji": "🖌️"
}
]

BIN
app/src/images/amazon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

14
app/src/pages/404.js Normal file
View File

@@ -0,0 +1,14 @@
import React from "react"
import Layout from "../components/layout"
import SEO from "../components/seo"
const NotFoundPage = () => (
<Layout>
<SEO title="404: Not found" />
<h1 id="title">NOT FOUND</h1>
<p>You just hit a route that doesn&#39;t exist... the sadness.</p>
</Layout>
)
export default NotFoundPage

79
app/src/pages/index.js Normal file
View File

@@ -0,0 +1,79 @@
import React, { useState, useEffect } from "react"
import { graphql } from "gatsby"
import Layout from "../components/layout"
import SEO from "../components/seo"
import SideBar from "../components/sidebar"
import { Container, Row, Col, Navbar } from "react-bootstrap"
import BookFeed from "../components/feed"
function myFunction(setMaximumBooksToShow, maximumBooksToShow) {
if (
document.documentElement.clientHeight +
document.documentElement.scrollTop >=
document.documentElement.scrollHeight
) {
setMaximumBooksToShow(maximumBooksToShow + 12)
}
}
export default ({ data }) => {
let [maximumBooksToShow, setMaximumBooksToShow] = useState(12)
useEffect(() => {
window.document.onscroll = () =>
myFunction(setMaximumBooksToShow, maximumBooksToShow)
})
return (
<Layout>
<SEO title="Home" />
<Container fluid>
<Row>
<Col lg={2}>
<SideBar />
</Col>
<Col lg={10}>
<BookFeed data={data} limit={maximumBooksToShow} />
</Col>
</Row>
<Row>
{/* <footer style={{marginLeft: 150,
width: `100%`,
position: `fixed`,
bottom: 0}}>
© {new Date().getFullYear()}, Built with
{` `}
<a href="https://www.gatsbyjs.org">Gatsby</a>
</footer> */}
</Row>
</Container>
</Layout>
)
}
export const query = graphql`
query MyQuery {
allBooksJson(
sort: {
fields: [rating]
order: DESC
}
) {
edges {
node {
id
title
url
rating
author
year
category
description
image_url
amazon_url
}
}
}
}
`

16
app/src/pages/page-2.js Normal file
View File

@@ -0,0 +1,16 @@
import React from "react"
import { Link } from "gatsby"
import Layout from "../components/layout"
import SEO from "../components/seo"
const SecondPage = () => (
<Layout>
<SEO title="Page two" />
<h1>Hi from the second page</h1>
<p>Welcome to page 2</p>
<Link to="/">Go back to the homepage</Link>
</Layout>
)
export default SecondPage

View File

@@ -0,0 +1,36 @@
import React, { useContext } from "react"
import { Link } from "gatsby"
import { Container, Row, Col } from "react-bootstrap"
import SideBar from "../components/sidebar"
import Layout from "../components/layout"
import SEO from "../components/seo"
import Bookcard from "../components/bookcard"
import { BookmarkContext } from "../context/globalState"
const ReadingList = () => {
const { readingList } = useContext(BookmarkContext)
return (
<Layout>
<SEO title="Reading list" />
<Container fluid>
<Row>
<Col xs={2}>
<SideBar />
</Col>
<Col>
<h2>Your reading list</h2>
<Link to="/">Go back to the homepage</Link>
{
readingList.bookIds.map(bookId => {
return <Bookcard book={readingList.books[bookId]} key={bookId} />
})
}
</Col>
</Row>
</Container>
<p>Reading List</p>
</Layout>
)}
export default ReadingList

11
app/src/styles/global.css Normal file
View File

@@ -0,0 +1,11 @@
.custom-header{
position: fixed;
}
.footer-text {
text-align:center;
padding-bottom:1 rem;
}
.dark-mode {
background-color: #3c4759;
}

View File

@@ -0,0 +1,38 @@
.sidebar {
position: fixed;
top: 0;
bottom: 0;
left: 0;
min-height: 100vh !important;
margin: 70px 0 0;
box-shadow: inset -1px 0 0 rgba(0, 0, 0, 0.1);
width: max-content;
}
.nav-link {
font-size: 0.9rem;
}
#sidebar-wrapper {
min-height: 100vh !important;
width: 100vw;
margin-left: -1rem;
-webkit-transition: margin 0.25s ease-out;
-moz-transition: margin 0.25s ease-out;
-o-transition: margin 0.25s ease-out;
transition: margin 0.25s ease-out;
}
#sidebar-wrapper .sidebar-heading {
padding: 0.875rem 1.25rem;
font-size: 1.2rem;
}
#page-content-wrapper {
min-width: 0;
width: 100%;
}
.navbar {
padding: 10px 0px;
}
.navbar-toggler {
margin-bottom: 1.2rem;
}

View File

@@ -0,0 +1,32 @@
import React, { useState, useEffect } from "react"
import { graphql } from "gatsby"
import Layout from "../components/layout"
import SEO from "../components/seo"
import SideBar from "../components/sidebar"
import CategoryDescription from "../components/categorydescription"
import { Container, Row, Col } from "react-bootstrap"
import BookFeed from "../components/feed"
const basicTemplate = props => {
const { pageContext } = props
const { categoryName, data, image } = pageContext
return (
<Layout>
<SEO title="Home" />
<Container fluid>
<Row>
<Col lg={2}>
<SideBar />
</Col>
<Col lg={10}>
<CategoryDescription categoryName={categoryName} categoryImage={image} />
<BookFeed data={data} categoryName={categoryName} />
</Col>
</Row>
</Container>
</Layout>
)
}
export default basicTemplate

16489
app/yarn.lock Normal file

File diff suppressed because it is too large Load Diff

3
package-lock.json generated Normal file
View File

@@ -0,0 +1,3 @@
{
"lockfileVersion": 1
}

5
utils/.gitignore vendored
View File

@@ -1,3 +1,8 @@
.idea
__pycache__
config.py
bin/
include/
lib/
out.json
pip-selfcheck.json

34
utils/HOUSEKEEPING.md Normal file
View File

@@ -0,0 +1,34 @@
This contains documentation on `housekeep.py` which was a command developed for converting from legacy README
format to the new format. This is not used anymore.
## Getting started
### Setup
1) Copy ```config-sample.py``` to ```config.py```
```bash
cp config-sample.py config.py
```
2) Get a GoodReads API key [here](https://www.goodreads.com/api/keys)
3) Copy your public key to the ```config.py``` file
### Converting
Run
```bash
python3 housekeep.py --file_type='old'
```
The ``--file_type='old'`` flag is needed if the books are displayed in the old format (in a list). New format is the default (when the records are displayed in tables).
This will convert to the new format and save it to ``README-new.md``.
**Note!** the first conversion can take some time, we wait 1 second between each request to GoodReads to not abuse the API.
After the first generation only missing records will be tried to be retrieved.
Run to see the available arguments
```bash
python3 housekeep.py --help
```

View File

@@ -1,34 +1,37 @@
# Utils for Mind-Expanding-Books
`utils/` mainly contains scripts for generating `app/src/data/books.json` file from `README.md`
Simple command line interface to extend and order the Mind-Expanding-Books list.
In most cases, you don't want to run the scripts in this directory or make changes to it.
The only time you want to mess with the scripts is when you want to fetch some extra data from `API` or
want to update the `app/src/data/books.json` file to include a newly added book or category.
## Getting started
## Generating `app/src/data/books.json`
### Setup
1) Copy ```config-sample.py``` to ```config.py```
The website shows name of the book, year, rating, cover, amazon link, etc in book card. Some of the
data like name, year, rating etc is present in the [main README.md](../README.md). Other details
like cover photo, amazon link etc is fetched from various APIs.
The script that fetches all these extra data lives in `utils/update_json_files.py`
The script goes through all the books in [main README.md](../README.md) and starts fetching the extra details
from `Goodreads` and `Google Search` API. And the result is stored in `utils/books.json` and `utils/book_name_to_details.json`
(used for caching only).
Once the script completes the run, the `utils/books.json` file is copied to `app/src/data/books.json` **manually**.
And the website uses the data from `app/src/data/books.json` for generating the pages.
## Install packages for script
```bash
cp config-sample.py config.py
```
2) Get a GoodReads API key [here](https://www.goodreads.com/api/keys)
3) Copy your public key to the ```config.py``` file
### Converting
Run
```bash
python3 housekeep.py --file_type='old'
cd utils
virtualenv .
source bin/activate
pip install -r requirements.txt
```
The ``--file_type='old'`` flag is needed if the books are displayed in the old format (in a list). New format is the default (when the records are displayed in tables).
## Executing the script
This will convert to the new format and save it to ``README-new.md``.
**Note!** the first conversion can take some time, we wait 1 second between each request to GoodReads to not abuse the API.
After the first generation only missing records will be tried to be retrieved.
Run to see the available arguments
```bash
python3 housekeep.py --help
```
- Register at [goodreads](https://www.goodreads.com)
- Apply for a developer api [here](https://www.goodreads.com/api)
- Copy utils/config-sample.py as utils/config.py
- Fill in the API Key credentials

File diff suppressed because it is too large Load Diff

5728
utils/books.json Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,2 +1,5 @@
# save this file as 'config.py' and then, fill it with you api key
GOODREADS_PUBLIC_API_KEY = 'write here your goodreads public API key'
GOODREADS_PUBLIC_API_KEY = "write here your goodreads public API key"
GOOGLE_SEARCH_RAPIDAPI_HOST = ""
GOOGLE_SEARCH_RAPIDAPI_KEY = ""
GOOGLE_BOOK_API_KEY = ""

View File

@@ -3,50 +3,104 @@ import xml.etree.ElementTree as ET
import urllib.request
import urllib.error
from config import GOODREADS_PUBLIC_API_KEY
import requests
from bs4 import BeautifulSoup
from config import GOODREADS_PUBLIC_API_KEY, GOOGLE_SEARCH_RAPIDAPI_HOST, GOOGLE_SEARCH_RAPIDAPI_KEY, GOOGLE_BOOK_API_KEY
from googlesearch import search
def get_details(book_object):
url = "http://www.goodreads.com/book/title.xml?key={}&title={}".format(GOODREADS_PUBLIC_API_KEY,
urllib.parse.quote_plus(book_object['title']))
url = "http://www.goodreads.com/book/title.xml?key={}&title={}".format(
GOODREADS_PUBLIC_API_KEY, urllib.parse.quote_plus(book_object["title"])
)
print(url)
try:
tree = ET.ElementTree(file=urllib.request.urlopen(url))
time_to_sleep = 1
while True:
response = urllib.request.urlopen(url)
print(response.getcode())
if response.getcode() == 429:
time_to_sleep = time_to_sleep * 2
print("Sleeping for {}".format(time_to_sleep))
time.sleep(time_to_sleep)
else:
break
tree = ET.ElementTree(file=response)
root = tree.getroot()
book = root.find('book')
book_object['year'] = book.find('publication_year').text or ''
book_object['lang'] = book.find('language_code').text
book_object['rating'] = book.find('average_rating').text
book_object['pages'] = book.find('num_pages').text
book = root.find("book")
book_object["year"] = book.find("publication_year").text or ""
book_object["lang"] = book.find("language_code").text
book_object["rating"] = book.find("average_rating").text
book_object["pages"] = book.find("num_pages").text
book_object["image_url"] = book.find("image_url").text
book_object["isbn"] = book.find("isbn").text
description = book.find("description").text
if description:
book_object["description"] = BeautifulSoup(description).text
else:
book_object["description"] = ""
if GOOGLE_BOOK_API_KEY.strip(" "):
# Attempt to use Google Book API
url = "https://www.googleapis.com/books/v1/volumes?q={}+inauthor:{}&key={}".format(
book_object["title"], book_object["author"], GOOGLE_BOOK_API_KEY,
)
response = requests.request("GET", url)
for item in response.json()["items"]:
if "description" in item["volumeInfo"]:
book_object["description"] = item["volumeInfo"]["description"]
break
print("Fetching amazon link")
url = "https://google-search3.p.rapidapi.com/api/v1/search/q=site:amazon.com {} {}".format(book_object["title"], book_object["author"])
headers = {
'x-rapidapi-host': GOOGLE_SEARCH_RAPIDAPI_HOST,
'x-rapidapi-key': GOOGLE_SEARCH_RAPIDAPI_KEY,
}
response = requests.request("GET", url, headers=headers)
book_object["amazon_url"] = response.json()["results"][0]["link"]
return True
except urllib.error.HTTPError as e:
print('Error getting book details from GoodReads for book: {}. \nGot error: '.format(book_object['title']))
print(str(e.getcode()) + ' ' + e.msg)
print(
"Error getting book details from GoodReads for book: {}. \nGot error: ".format(
book_object["title"]
)
)
print(str(e.getcode()) + " " + e.msg)
return False
def get_goodread_info(library):
def get_goodread_info(library, force):
import sys
print('')
print('Getting GoodReads data...')
print("")
print("Getting GoodReads data...")
processed = 0
total_book_count = 0
for key in library:
total_book_count += len(library[key])
for chapter in library:
book_list = library[chapter]
for category in library:
book_list = library[category]
for book in book_list:
# do not call the api again if we already have the infomation
if 'rating' in book and book['rating']:
if not force and "rating" in book and book["rating"]:
processed += 1
continue
get_details(book)
processed += 1
print('{}/{} records processed.'.format(processed, total_book_count), end="\b")
sys.stdout.write('\r')
print(
"{}/{} records processed.".format(processed, total_book_count), end="\b"
)
sys.stdout.write("\r")
sys.stdout.flush() # <- makes python print it anyway
# need to wait a second between the requests, to not abuse the API

View File

@@ -1,3 +1,5 @@
import simplejson
# we assume that every line after # Books
# starting with * is a book title if file type is old
# starting with | (and not with | Name or |--) is a book if the file type is new
@@ -5,21 +7,26 @@
# ARGUMENT HANDLING
try:
import argparse
parser = argparse.ArgumentParser(description='Process file.')
parser = argparse.ArgumentParser(description="Process file.")
parser.add_argument("--in_file", help="File to process, defaults to ./../README.MD")
parser.add_argument(
'--in_file',
help='File to process, defaults to ./../README.MD')
"--out_file", help="File to save to, defaults to ./../README-NEW.MD"
)
parser.add_argument(
'--out_file',
help='File to save to, defaults to ./../README-NEW.MD')
"--input_file_type",
choices=["old", "new"],
help="old if links are displayed in a list, new if in a table",
)
parser.add_argument(
'--file_type',
choices=['old', 'new'],
help='old if links are displayed in a list, new if in a table')
"--sort_by",
choices=["rating", "title", "author", "year"],
help="defaults to rating",
)
parser.add_argument("--force", dest="force", action="store_true", default=False)
parser.add_argument(
'--sort_by',
choices = ['rating', 'title', 'author', 'year'],
help='defaults to rating')
"--store-json", dest="store_json", action="store_true", default=False
)
flags = parser.parse_args()
except ImportError:
flags = None
@@ -29,27 +36,42 @@ def sort(library, key_to_sort_on, reverse = False):
new_library = {}
for key in library:
books = library[key]
new_library[key] = sorted(books, key=lambda k: k[key_to_sort_on], reverse=reverse)
new_library[key] = sorted(
books, key=lambda k: k[key_to_sort_on], reverse=reverse
)
return new_library
def format_library(library):
formated_library = []
for category in library:
for book in library[category]:
book["category"] = category[len("## ") :]
formated_library.append(book)
return formated_library
def main():
from read_file import load
from gooodreads import get_goodread_info
from write_file import render
in_file = flags.in_file or './../README.MD'
out_file = flags.out_file or './../README-new.md'
file_type = flags.file_type or 'new'
sort_by = flags.sort_by or 'rating'
reverse = True if sort_by == 'rating' else False
in_file = flags.in_file or "./../README.md"
out_file = flags.out_file or "./../README-new.md"
input_file_type = flags.input_file_type or "new"
sort_by = flags.sort_by or "rating"
force = flags.force
store_json = flags.store_json
reverse = True if sort_by == "rating" else False
library = load(in_file, file_type)
get_goodread_info(library)
library = load(in_file, input_file_type)
get_goodread_info(library, force)
library = sort(library, sort_by, reverse)
render(in_file, out_file, library)
if store_json:
with open("out.json", "w") as f:
f.write(simplejson.dumps(format_library(library), indent=4, sort_keys=True))
if __name__ == '__main__':
if __name__ == "__main__":
main()

8
utils/pyvenv.cfg Normal file
View File

@@ -0,0 +1,8 @@
home = /usr
implementation = CPython
version_info = 3.8.5.final.0
virtualenv = 20.0.20
include-system-site-packages = false
base-prefix = /usr
base-exec-prefix = /usr
base-executable = /usr/bin/python3

View File

@@ -8,24 +8,24 @@ def read_file_content(file):
# old (list)
def parse_book_string(book_string):
book = {}
book['title'] = book_string.split('[')[1].split(']')[0]
book['url'] = book_string.split(']')[1].split('(')[1].split(')')[0]
book['author'] = book_string.split(' by ')[-1]
book['rating'] = ''
book['year'] = ''
book["title"] = book_string.split("[")[1].split("]")[0]
book["url"] = book_string.split("]")[1].split("(")[1].split(")")[0]
book["author"] = book_string.split(" by ")[-1]
book["rating"] = ""
book["year"] = ""
return book
# new (table)
def parse_book_string_new(book_string):
book = {}
book_split = book_string.split('|')
book_split = book_string.split("|")
# print(book_split)
book['title'] = book_split[1].strip()
book['author'] = book_split[2].strip()
book['url'] = book_split[3].strip().split('[')[1].split('(')[1].split(')')[0]
book['rating'] = book_split[3].strip().split('[')[1].split(']')[0]
book['year'] = book_split[4].strip()
book["title"] = book_split[1].strip()
book["author"] = book_split[2].strip()
book["url"] = book_split[3].strip().split("[")[1].split("(")[1].split(")")[0]
book["rating"] = book_split[3].strip().split("[")[1].split("]")[0]
book["year"] = book_split[4].strip()
return book
@@ -33,8 +33,8 @@ def load(file, file_type):
file = read_file_content(file)
# we start one line after tilte # Books
line_to_start = file.index('# Books') + 1
current_title = ''
line_to_start = file.index("# Books") + 1
current_title = ""
books_under_current_title = []
library = {}
@@ -42,7 +42,7 @@ def load(file, file_type):
line = file[i]
# we have a title
if line.startswith('##'):
if line.startswith("##"):
if len(current_title) == 0:
current_title = line
else:
@@ -52,12 +52,16 @@ def load(file, file_type):
continue
# we have a book
if file_type == 'old':
if line.startswith('*'):
if file_type == "old":
if line.startswith("*"):
book = parse_book_string(line)
books_under_current_title.append(book)
else:
if line.startswith('|') and not line.startswith('| Name') and not line.startswith('|---'):
if (
line.startswith("|")
and not line.startswith("| Name")
and not line.startswith("|---")
):
book = parse_book_string_new(line)
books_under_current_title.append(book)

26
utils/requirements.txt Normal file
View File

@@ -0,0 +1,26 @@
appdirs==1.4.4
attrs==20.1.0
black==19.10b0
click==7.1.2
pathspec==0.8.0
regex==2020.7.14
toml==0.10.1
typed-ast==1.4.1
amzsear==2.0.1
appdirs==1.4.4
attrs==20.1.0
beautifulsoup4==4.9.1
black==19.10b0
bs4==0.0.1
certifi==2020.6.20
chardet==3.0.4
click==7.1.2
google==3.0.0
idna==2.10
pathspec==0.8.0
regex==2020.7.14
requests==2.24.0
soupsieve==2.0.1
toml==0.10.1
typed-ast==1.4.1
urllib3==1.25.10

View File

@@ -0,0 +1,94 @@
import json
import time
from read_file import load
from gooodreads import get_details
from bs4 import BeautifulSoup
required_fields = [
"title",
"author",
"url",
"rating",
"year",
"pages",
"image_url",
"description",
"category",
"amazon_url",
]
def book_has_all_fields(book):
for required_field in required_fields:
if required_field not in existing_book:
print(f"Missing {required_field}")
return False
return True
def clean_category(category_raw):
if "### " in category_raw:
return category_raw[4:]
if "## " in category_raw:
return category_raw[3:]
def validate_bookcover(book_details):
"""
Check if goodreads returns a nophoto
Use open library to fetch the book cover
based on ISBN
Args:
book_details: Book info returned as json by goodreads API
Returns:
This API checks for book cover, and returns with a valid
bookcover if nophoto found on goodreads, using openlibrary
"""
no_photo_url='https://s.gr-assets.com/assets/nophoto/book/'
open_library_url='http://covers.openlibrary.org/b/isbn/{isbn}-M.jpg'
if (book_details['image_url'].__contains__(no_photo_url)):
book_details['image_url'] = open_library_url.format(isbn=book_details['isbn'])
return book_details
if __name__ == "__main__":
library = load("../README.md", "new")
existing_book_names_to_details = json.load(open("book_name_to_details.json"))
for category in library:
category_name = clean_category(category)
for book in library[category]:
if (title := book["title"]) in existing_book_names_to_details:
existing_book = existing_book_names_to_details[title]
if book_has_all_fields(existing_book):
print(f"🆗 {title}")
continue
new_book = {
"title": title,
"author": book["author"],
"url": book["url"],
"category": category_name,
}
fetched = get_details(new_book)
if fetched:
print(f"{title}")
new_book = validate_bookcover(new_book)
existing_book_names_to_details[title] = new_book
with open("book_name_to_details.json", "w") as f:
json.dump(
existing_book_names_to_details,
f,
sort_keys=True,
indent=4,
separators=(",", ": "),
)
book_list = []
for _, book in existing_book_names_to_details.items():
book_list.append(book)
with open("books.json", "w") as f:
json.dump(book_list, f, sort_keys=True, indent=4, separators=(",", ": "))
else:
print(f"❌ Error while fetching {title}")

View File

@@ -4,14 +4,12 @@ import os
def render_book_line(book_object):
book = book_object
book['rating'] = '?' if not 'rating' in book else book['rating']
book['url'] = '' if not 'url' in book else book['url']
book['year'] = '' if not 'year' in book else book['year']
return '| {} | {} | [{}]({}) | {} | \n'.format(book['title'],
book['author'],
book['rating'],
book['url'],
book['year'])
book["rating"] = "?" if not "rating" in book else book["rating"]
book["url"] = "" if not "url" in book else book["url"]
book["year"] = "" if not "year" in book else book["year"]
return "| {} | {} | [{}]({}) | {} | \n".format(
book["title"], book["author"], book["rating"], book["url"], book["year"]
)
# TODO: refine this logic
@@ -21,30 +19,35 @@ def render(in_file, out_file, library):
savig the new file to tmp_file location, the copying it to out-file and deleting tmp_file
this is done to prevent issues if the in and the out file are the same
"""
tmp_file = './.tmp-file.md'
open(tmp_file, 'a').close()
tmp_file = "./.tmp-file.md"
open(tmp_file, "a").close()
books_not_reached = True
with open(tmp_file, 'w') as out_file_tmp:
with open(tmp_file, "w") as out_file_tmp:
with open(in_file) as original_file:
for line in original_file:
if line.strip() in library:
if not books_not_reached: out_file_tmp.write('\n')
if not books_not_reached:
out_file_tmp.write("\n")
books_not_reached = False
# render chapter and start of the table
out_file_tmp.write(line)
if len(library[line.strip()]) > 0:
out_file_tmp.write('| Name | Author | Goodreads Rating | Year Published | \n')
out_file_tmp.write('|------|--------|------------------|----------------| \n')
out_file_tmp.write(
"| Name | Author | Goodreads Rating | Year Published | \n"
)
out_file_tmp.write(
"|------|--------|------------------|----------------| \n"
)
# render books
for book in library[line.strip()]:
out_file_tmp.write(render_book_line(book))
elif books_not_reached:
out_file_tmp.write(line)
elif line.startswith('## License'):
out_file_tmp.write('\n')
out_file_tmp.write('\n')
elif line.startswith("## License"):
out_file_tmp.write("\n")
out_file_tmp.write("\n")
out_file_tmp.write(line)
books_not_reached = True