📚 This project is a working full-stack single-page web application. It's a third version of the app, made with MongoDb, Express server, React and Vite. Best practices are used throughout the project: ES13, ESlint, feature separation, component reuse, css-modules, adaptive styling.
It's online at the: wave-bookclub-react.vercel.app
- Create a Bookclub (autentication, jwt)
- Look for books to read (REST API, fetch, axios)
- Create modern and classic literature reading lists (React Router, Context API)
- Choose a book to read, set a meeting date, rate a book (useReducer, custom hooks)
- Keep track of the reading history and previous ratings (Express.js, Mongoose)
Frontend: React + Context API + Vite.
Backend: Node.js, Express server. With Cors, Cookie parser, jwt, error handling. MongoDb with Mongoose for the data handling. Git Repo for the server
![](https://private-user-images.githubusercontent.com/102490566/329523985-a4bc768b-afcc-4312-bc10-6f42682fe854.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjU1OTk5MTYsIm5iZiI6MTcyNTU5OTYxNiwicGF0aCI6Ii8xMDI0OTA1NjYvMzI5NTIzOTg1LWE0YmM3NjhiLWFmY2MtNDMxMi1iYzEwLTZmNDI2ODJmZTg1NC5qcGc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwOTA2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDkwNlQwNTEzMzZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT01N2EyMGQ0NGRkNzMyNTYyYWZiOWQwOTdiZTU1MjM5ODIwN2YyNzVkZGRlMWUyNjI0NTc5MGI5NzBmYTFhYTM1JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.M9jKNeVqulibyEdpJCdE3ncg2GQkUTwhwotQ9bIX_Ac)
![](https://private-user-images.githubusercontent.com/102490566/329523958-afeff819-cd52-4ba8-89cc-2710ef136519.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjU1OTk5MTYsIm5iZiI6MTcyNTU5OTYxNiwicGF0aCI6Ii8xMDI0OTA1NjYvMzI5NTIzOTU4LWFmZWZmODE5LWNkNTItNGJhOC04OWNjLTI3MTBlZjEzNjUxOS5qcGc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwOTA2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDkwNlQwNTEzMzZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1mY2ZlZWMxNjZkYWVmMmM0YzcwMTg5ZDcwYmVjMjk3NjJmNjE3Y2Q3YzdkN2Y0ZWI5YmRkODg5Y2U0N2NkM2M5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.12mgsZM94p0tLKluRk72DWh9NFup_qTQnOFu1uN464I)
![](https://private-user-images.githubusercontent.com/102490566/329526458-6d381bcf-fdda-4b90-bfb8-2919f4f27dae.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjU1OTk5MTYsIm5iZiI6MTcyNTU5OTYxNiwicGF0aCI6Ii8xMDI0OTA1NjYvMzI5NTI2NDU4LTZkMzgxYmNmLWZkZGEtNGI5MC1iZmI4LTI5MTlmNGYyN2RhZS5qcGc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwOTA2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDkwNlQwNTEzMzZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0zYWU3MDUxN2RhZDYxODU3NjU4ODM1ZjRlYTU0ZDMwMGViMjY4MTU0NWVlNTVjZDBkNTM2ZDUwMDg0NmYwMmY3JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.SYK6QMIHfJg905klGtBGdATL6q_Oe98h9MUjgFC8S9Q)