A Pinterest style app using React/Redux/ES6/Node/Express/MongoDB/Passport. The lookahead search function accesses Google's Book API to fetch books and displays them in a pinterest card style format(Bootstrap v4). Users can sign-up/sign-in and save/delete the books they search for. If they have nothing to search for they can see recommendations of a curated book list in /recommendations.
To demonstrate the creation of a full stack web application with React(v15.3.2), ES6 and Redux on the client-side, sessionless authentication using JSON Web Tokens(JWT) and passport authenticated users running on an Express.js server.
- Masonry(a la Pinterest) style card layout
- Sessionless Authentication with JWT
- Lookahead search
- Notifications on save/delete
- Parallax scrolling
- Carousel image slider
- Responsive Design for small devices
Node.js
Google books api key
Default config object location is set to config/config.js.
module.exports = {
SECRET: 'YOUR_SECRET_STRING',
DATABASE: 'mongodb://YOURDB',
API_KEY: 'YOUR API_KEY STRING'
};
npm install
node server/server.js
npm start
npm test
- React - View/UI
- Redux - State Management
- Babel - Transpilation From ES6
- Express - Node Server Framework
- Passport - Node Authentication
- Webpack - Module Bundler
- Jwt-simple - JSON Web Tokens
- Bcrypt-nodejs - Node Password/Data Hashing
- Redux-thunk - Async Middleware
- React-router - Client Routing
- Axios - HTTP AJAX Client
- Mongoose - MongoDB Tooling
- Lodash - Utility Library
- Redux-form - Form Validation State With Redux
- React-slick - Picture Carousel
- React-notification-system - Notifications
- Jest - Test framework
- Enzyme - Test Utilities
- Chai - Test assertions
- Mocha - Test framework
- Bootstrap - Bootstrap CSS v4 Library
- Eirik Lin - kirie