A modern, feature-rich book collection management application built with React, Firebase, and Framer Motion. Keep track of your books, manage your reading list, and organize your personal library with style.
- 📱 Responsive Design: Beautiful interface that works on desktop and mobile
- 🌓 Dark/Light Mode: Easy on the eyes, day or night
- 📚 Book Management:
- Add, edit, and delete books
- Upload book covers
- Track reading status
- Rate and review books
- 🔍 Advanced Filtering:
- Search by title, author, or genre
- Filter by reading status
- Sort by various criteria
- ⚡ Real-time Updates: Changes sync instantly with Firebase
- 🎨 Beautiful Animations: Smooth transitions powered by Framer Motion
- 🏷️ Genre Tagging: Organize books by multiple genres
- 📊 Reading Progress: Track your reading journey
- React - UI Framework
- TypeScript - Type Safety
- Vite - Build Tool
- Firebase - Backend & Database
- Tailwind CSS - Styling
- shadcn/ui - UI Components
- Framer Motion - Animations
- Node.js (v16 or higher)
- npm or yarn
- Firebase account
- Clone the repository:
git clone https://github.com/naveed-gung/shelfie-collection.git
cd shelfie-collection
- Install dependencies:
npm install
- Create a .env file in the root directory:
VITE_FIREBASE_API_KEY=your_api_key
VITE_FIREBASE_AUTH_DOMAIN=your_auth_domain
VITE_FIREBASE_PROJECT_ID=your_project_id
VITE_FIREBASE_STORAGE_BUCKET=your_storage_bucket
VITE_FIREBASE_MESSAGING_SENDER_ID=your_messaging_sender_id
VITE_FIREBASE_APP_ID=your_app_id
VITE_FIREBASE_MEASUREMENT_ID=your_measurement_id
- Start the development server:
npm run dev
Visit http://localhost:5173
to see the app running.
To build for production:
npm run build
This project can be easily deployed to Netlify:
- Push your code to GitHub
- Connect your repository to Netlify/Vercel
- Configure build settings:
- Build command:
npm run build
- Publish directory:
dist
- Build command:
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- 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
Made by Naveed