{"id":21270288,"url":"https://github.com/askhan963/bookshelfx","last_synced_at":"2026-04-11T10:09:55.158Z","repository":{"id":259045240,"uuid":"874609519","full_name":"askhan963/BookShelfX","owner":"askhan963","description":"BookShelfX is a dynamic web application for managing a collection of books. Built with the MERN (MongoDB, Express.js, React, Node.js) stack, it provides a seamless experience for users to browse, add, and manage books in their library. This project uses Redux Toolkit with RTK Query for efficient state management and Tailwind CSS for a responsivenes","archived":false,"fork":false,"pushed_at":"2024-10-31T10:24:52.000Z","size":4917,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-19T11:30:35.443Z","etag":null,"topics":["firebase","firebase-auth","javascript","jwt","mern-stack","mongodb","nodejs","react","redux","redux-toolkit","tailwindcss"],"latest_commit_sha":null,"homepage":"https://bookshelfx.netlify.app/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/askhan963.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-18T06:26:02.000Z","updated_at":"2024-10-31T10:24:56.000Z","dependencies_parsed_at":"2025-03-15T11:46:17.952Z","dependency_job_id":"45551253-3bcf-407c-bf24-a9abff71d7d1","html_url":"https://github.com/askhan963/BookShelfX","commit_stats":null,"previous_names":["askhan963/bookshelfx"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/askhan963/BookShelfX","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/askhan963%2FBookShelfX","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/askhan963%2FBookShelfX/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/askhan963%2FBookShelfX/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/askhan963%2FBookShelfX/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/askhan963","download_url":"https://codeload.github.com/askhan963/BookShelfX/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/askhan963%2FBookShelfX/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31676410,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T08:18:19.405Z","status":"ssl_error","status_checked_at":"2026-04-11T08:17:08.892Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["firebase","firebase-auth","javascript","jwt","mern-stack","mongodb","nodejs","react","redux","redux-toolkit","tailwindcss"],"created_at":"2024-11-21T08:16:54.680Z","updated_at":"2026-04-11T10:09:55.153Z","avatar_url":"https://github.com/askhan963.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BookShelfX 📚\n\n**BookShelfX** is a feature-rich online bookstore application that combines a dynamic shopping experience for users with a robust admin dashboard for managing books and orders. Built with the MERN stack, it uses Firebase for user authentication and JWT for admin authentication, ensuring secure and efficient management. Tailwind CSS adds to the application's responsiveness and aesthetic appeal, while Redux Toolkit and RTK Query power efficient data handling.\n\n\u003e **Repository**: [GitHub - BookShelfX](https://github.com/askhan963/bookShelfX)  \n\u003e **Live Site**: [BookShelfX on Netlify](https://bookshelfx.netlify.app/)  \n\u003e **Backend Hosted**: Vercel\n\n---\n\n## Table of Contents\n- [Features](#features)\n- [Technologies](#technologies)\n- [Getting Started](#getting-started)\n- [Project Structure](#project-structure)\n- [Screenshots](#screenshots)\n\n---\n\n## Features\n\n### User Features\n- **User Authentication (Firebase)**:\n  - Email/Password and Google Sign-In.\n  - Secure session management for a seamless shopping experience.\n\n- **Shopping Experience**:\n  - **Add to Cart**: Users can add multiple books to their cart.\n  - **Remove from Cart**: Easy management of items within the cart.\n  - **Checkout**: Smooth checkout process that confirms and saves orders.\n  - **Order History**: View previously placed orders with relevant details.\n\n### Admin Features\n- **Admin Authentication (JWT)**:\n  - Secure login for admin users, with access restricted to admin-only operations.\n\n- **Dashboard Management**:\n  - **Add, Update, and Delete Books**: Full CRUD operations for managing the book catalog.\n  - **Orders Overview**: Monitor and manage all placed orders.\n  - **Data Visualizations**: Interactive charts to view monthly revenue, order statistics, and trending books.\n\n---\n\n## Technologies\n\n- **Frontend**:\n  - **React** with **Redux Toolkit** and **RTK Query** for state and data management.\n  - **Firebase Authentication** for user login and session tracking.\n  - **Tailwind CSS** for responsive and consistent styling.\n  - **React Hook Form** and **SweetAlert2** for seamless form handling and user notifications.\n\n- **Backend**:\n  - **Node.js** and **Express.js** for handling server-side logic.\n  - **MongoDB** for a robust and scalable database.\n  - **Multer** for image upload handling.\n  - **JWT** for admin authentication, ensuring secure access control.\n  - **Vercel** for backend hosting.\n\n---\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js\n- MongoDB (local or MongoDB Atlas)\n- Firebase Project with Authentication enabled (Email/Password and Google providers)\n\n### Setup Instructions\n\n1. **Clone the repository**\n   ```bash\n   git clone https://github.com/askhan963/bookShelfX.git\n   cd bookShelfX\n   ```\n\n2. **Install dependencies**\n   ```bash\n   npm install\n   ```\n\n3. **Environment Variables**\n   Create a `.env` file for backend and frontend configurations.\n\n   ```bash\n   # MongoDB Connection URI\n   MONGO_URI=your_mongo_uri_here\n\n   # JWT Secret Key\n   JWT_SECRET_KEY=your_jwt_secret_here\n\n   # Firebase Configuration (Frontend)\n   REACT_APP_FIREBASE_API_KEY=your_firebase_api_key\n   REACT_APP_FIREBASE_AUTH_DOMAIN=your_firebase_auth_domain\n   REACT_APP_FIREBASE_PROJECT_ID=your_firebase_project_id\n   REACT_APP_FIREBASE_STORAGE_BUCKET=your_firebase_storage_bucket\n   REACT_APP_FIREBASE_MESSAGING_SENDER_ID=your_firebase_messaging_sender_id\n   REACT_APP_FIREBASE_APP_ID=your_firebase_app_id\n   ```\n\n4. **Run the Application**\n   - **Frontend**: Start the React app.\n     ```bash\n     npm start\n     ```\n   - **Backend**: Start the Express server.\n     ```bash\n     npm run server\n     ```\n\n---\n\n## Project Structure\n\n```plaintext\nBookShelfX/\n├── client/                   # Frontend code\n│   ├── public/               # Public assets\n│   └── src/                  # Source files\n│       ├── components/       # Reusable components (e.g., Cart, Order, Book)\n│       ├── context/          # Firebase Auth context\n│       ├── redux/            # Redux state management\n│       ├── utils/            # Helper functions (e.g., getBaseUrl)\n│       └── App.js            # Main App component\n├── server/                   # Backend code\n│   ├── controllers/          # Route controllers (e.g., Books, Orders)\n│   ├── models/               # Mongoose models\n│   ├── routes/               # API routes\n│   ├── config/               # Database and middleware configurations\n│   └── index.js              # Entry point for the Express server\n└── README.md                 # Project documentation\n```\n\n---\n\n## Screenshots\n\n- **User Dashboard**: Intuitive dashboard for managing cart, orders, and profile.\n- **Admin Dashboard**: Comprehensive management interface with data visualization.\n- **Add/Edit Book**: Efficient book management interface with image upload and dynamic form validation.\n## Contributing\n\n\n--- \n\n## License\n\nThis project is licensed under the MIT License.\n---\n\nEnjoy exploring **BookShelfX**! Feel free to contribute or reach out if you encounter any issues or have suggestions.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faskhan963%2Fbookshelfx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faskhan963%2Fbookshelfx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faskhan963%2Fbookshelfx/lists"}