📚 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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE1MjEyMTAsIm5iZiI6MTcyMTUyMDkxMCwicGF0aCI6Ii8xMDI0OTA1NjYvMzI5NTIzOTg1LWE0YmM3NjhiLWFmY2MtNDMxMi1iYzEwLTZmNDI2ODJmZTg1NC5qcGc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzIxJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcyMVQwMDE1MTBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0xN2NiMTZkNGRkMDIzMjY1MjAzODJiZWY2MmY3NWEzMjMzNzc5YTViYWFhYTc4N2IyZmZlNTc3M2NkODRhNTMzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.eaBt2M9Yvf_o1Hrrpcq0Kyq4ZoGj-mxPbxIZk6ZY8QY)
![](https://private-user-images.githubusercontent.com/102490566/329523958-afeff819-cd52-4ba8-89cc-2710ef136519.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE1MjEyMTAsIm5iZiI6MTcyMTUyMDkxMCwicGF0aCI6Ii8xMDI0OTA1NjYvMzI5NTIzOTU4LWFmZWZmODE5LWNkNTItNGJhOC04OWNjLTI3MTBlZjEzNjUxOS5qcGc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzIxJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcyMVQwMDE1MTBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0wZjU1MGQ1MTllOTEwM2VhZDFhYWExNTc3MDRiZDhkZDI1NWNiMjZjM2YwOGNjN2IwYTg2ZDI1MGUyYWY3Y2QxJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.xcOrgYd40PL9LFvnf9dCYVasx5M2rwneycmWTLyLr8o)
![](https://private-user-images.githubusercontent.com/102490566/329526458-6d381bcf-fdda-4b90-bfb8-2919f4f27dae.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE1MjEyMTAsIm5iZiI6MTcyMTUyMDkxMCwicGF0aCI6Ii8xMDI0OTA1NjYvMzI5NTI2NDU4LTZkMzgxYmNmLWZkZGEtNGI5MC1iZmI4LTI5MTlmNGYyN2RhZS5qcGc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNzIxJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDcyMVQwMDE1MTBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0zMGRjNTc0MWQ0ZDdlODU3YjRjY2RhZDJkMjU4ZGExMWEyNzZmZDQ4OWE5ZmZhYzFjZWI3MDUyYTU1ZWUyN2RmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.IIzlDxePXtsnoqIkBdrceW4sAOu5mOjDu9JTKPIEsHA)