A full-stack application that recommends books based on user preferences, built with Next.js and Flask.
Check out the demo on YouTube: https://youtu.be/tndAY-bzERY
- Browse top 50 recommended books
- Get personalized book recommendations using similarity index
- Redis caching for improved performance
- Responsive UI built with shadcn/ui components
- Next.js 14
- TypeScript
- Tailwind CSS
- shadcn/ui components
- Redis for caching
- Flask
- Python
- scikit-learn for recommendations
- Node.js 18 or higher
- Python 3.8 or higher
- Redis
- Clone the repository:
git clone https://github.com/yourusername/book-recommender.git
cd book-recommender- Set up the frontend:
cd client
npm install
cp .env.example .env.local- Set up the backend:
cd ../server
python -m venv venv
source venv/bin/activate # On Mac/Linux
pip install -r requirements.txt- Start Redis:
brew services start redis- Start the backend server:
cd server
flask --app app.py run- In a new terminal, start the frontend:
cd client
npm run dev- Open http://localhost:3000 in your browser
book-recommender/
├── client/ # Next.js frontend
│ ├── src/
│ │ ├── app/ # Next.js 14 app router
│ │ ├── components/ # React components
│ │ ├── lib/ # Utilities and configurations
│ │ └── utils/ # Helper functions
│ └── public/ # Static assets
└── server/ # Flask backend
├── app.py # Main Flask application
├── requirements.txt # Python dependencies
├── analysis/ # Datasets and jupyter notebook
└── results/ # Results from analysis used by API
NEXT_PUBLIC_API_URL=http://localhost:3000/api
API_URL=http://127.0.0.1:5000
REDIS_HOST=localhost
REDIS_PORT=6379
FLASK_APP=app.py
FLASK_ENV=development
This project is licensed under the MIT License - see the LICENSE file for details.