A full-stack Book Recommendation application with a Node.js/Express backend and a React Native (Expo) mobile frontend. Users can sign up, log in, add books, rate them, and view recommendations.
![]() Sign Up Screen |
![]() Login Screen |
![]() Profile Screen |
![]() Profile Screen(With Recomended Books) |
![]() Create Book |
![]() Home Page |
- User authentication (signup, login, logout)
- Add, view, and rate books
- Book images and captions
- User profile management
- Book ratings (1-5 stars)
- Cloudinary integration for image uploads
- Modern mobile UI with Expo
- Backend: Node.js, Express, MongoDB, Mongoose
- Frontend: React Native (Expo)
- Authentication: JWT
- Image Uploads: Cloudinary
BOOKRECOMENDOR/
├── backend/
│ ├── package.json
│ └── src/
│ ├── index.js
│ ├── lib/
│ ├── middleware/
│ ├── models/
│ └── routes/
└── mobile/
├── app.json
├── package.json
├── app/
├── assets/
├── components/
├── constants/
├── lib/
└── store/
- Install dependencies:
cd backend npm install
- Set up a
.env
file with your MongoDB URI, JWT secret, and Cloudinary credentials. - Start the server:
npm start
- Install dependencies:
cd mobile npm install
- Start the Expo development server:
npx expo start
- Use the Expo Go app or an emulator to run the app on your device.
POST /api/auth/signup
— Register a new userPOST /api/auth/login
— User loginPOST /api/books
— Add a new book (auth required)GET /api/books
— List all booksGET /api/books/:id
— Get book detailsPUT /api/books/:id
— Update a book (auth required)DELETE /api/books/:id
— Delete a book (auth required)
{
title: String, // required, unique
caption: String, // required, unique
image: String, // required, unique (Cloudinary URL)
rating: Number, // required, min: 1, max: 5
user: ObjectId, // reference to User
}
This project is for educational purposes.