SmartReads lets you search and favorite books, create and share personalized book "shelves," and enjoy AI-generated blurbs and recommendations based on your favorites! It's a simple, engaging way for book lovers to discover and organize their reads.
-
Fully Responsive Design: Built with Next.js and Material-UI, SmartReads is designed to be mobile-friendly and responsive.
-
Advanced Book Search: Leveraging the Google Books API, users can search for a wide range of books with ease.
-
Personalized AI Features: Utilizing OpenAI's GPT Model, our app generates engaging book blurbs and personalized recommendations.
-
Customizable Book Shelves: Create and share your own book shelves. A great way to organize your reads and share your book lists with friends.
-
Secure User Experience: Using JWT tokens for authentication, we ensure secure login and protect user data.
-
Efficient Data Management: MongoDB coupled with Mongoose offers a robust backend, enabling efficient data storage and retrieval.
-
Reusable Components: Our use of React's component-based architecture means we have highly reusable code, making the app efficient and easy to maintain.
- Next.js: Forms the main structure of our app, makes it fast and allows it to work well on servers.
- React: Makes our app interactive and easy to use.
- TypeScript: Adds extra rules to our JavaScript code to make it easier to work with and less prone to errors.
- Material-UI: Helps us make a good-looking and easy-to-use interface.
- JWT Tokens: We use JWT tokens for safe login. They are sent through HTTP headers.
- MongoDB: A flexible database we use to store our app's data.
- Mongoose: Connects our code with MongoDB and makes sure our data is right and works smoothly.
- Google Books API: We use this to find books quickly and easily.
- OpenAI's GPT Model: We use this to create interesting and fun descriptions for books on our site.
- Books Creation: Only when a user favorites, or adds a book onto a shelf, will it get added onto our database.
- Users's shelf object property contains all their created shelves, plus those that they "save". Deletion of user traverses other user's who have saved their shelved, to avoid error on population attempt.
Validation Requirements
- Username 4 to 15 characters
- Password 4 to 20 characters