A modern web application for sharing and discovering book reviews. Users can browse reviews, add their own, and engage with the book-loving community.
- Browse Reviews: Discover book reviews shared by the community
- Add Reviews: Share your thoughts on books you've read
- Edit & Delete: Manage your own reviews
- Rating System: Rate books on a 1-5 star scale
- Responsive Design: Works seamlessly across all devices
- Frontend: React with TypeScript
- Styling: Tailwind CSS
- Icons: Lucide React
- Build Tool: Vite
- Database: MySQL
- Node.js (v18 or higher)
- MySQL Server
-
Clone the repository:
-
Install dependencies:
-
Create a
.envfile in the root directory with your MySQL configuration:
DB_HOST=localhost
DB_USER=your_username
DB_PASSWORD=your_password
DB_NAME=book_reviews- Start the development server:
npm run devsrc/
├── components/ # Reusable UI components
├── hooks/ # Custom React hooks
├── services/ # API and database services
├── types/ # TypeScript type definitions
├── utils/ # Helper functions
└── pages/ # Main application pages
GET /reviews- Retrieve all book reviewsPOST /reviews- Create a new reviewPUT /reviews/:id- Update an existing reviewDELETE /reviews/:id- Delete a review
CREATE TABLE reviews (
id INT PRIMARY KEY AUTO_INCREMENT,
book_title VARCHAR(255) NOT NULL,
author VARCHAR(255) NOT NULL,
rating INT NOT NULL CHECK (rating >= 1 AND rating <= 5),
review_text TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Currently, two official plugins are available:
- @vitejs/plugin-react uses Babel for Fast Refresh
- @vitejs/plugin-react-swc uses SWC for Fast Refresh

