A modern, responsive eBook marketplace built with React that allows users to browse, search, and purchase educational courses and eBooks. Built with a focus on user experience and modern web development practices.
- 📖 eBook Catalog: Browse through a comprehensive collection of educational courses and eBooks
- 🔍 Advanced Search: Search products by title, category, and other filters
- 🛒 Shopping Cart: Add items to cart and manage your purchases
- 👤 User Authentication: Secure login and registration system
- 📱 Responsive Design: Optimized for desktop, tablet, and mobile devices
- 🌙 Dark Mode: Toggle between light and dark themes
- ⭐ Product Ratings: View and filter products by ratings
- 💳 Order Management: Track your orders and purchase history
- 🎨 Modern UI: Beautiful, intuitive interface built with Tailwind CSS
- Frontend: React 19.1.0
- Routing: React Router DOM 7.6.2
- Styling: Tailwind CSS 3.4.17
- State Management: React Context API
- Backend: JSON Server with authentication
- Notifications: React Toastify
- Testing: React Testing Library
-
Clone the repository
git clone https://github.com/yourusername/readpoint.git cd readpoint -
Install dependencies
npm install
-
Set up the backend server
# Install JSON Server globally (if not already installed) npm install -g json-server # Start the backend server json-server --watch data/db.json --port 8000
-
Start the development server
npm start
-
Open your browser Navigate to http://localhost:3000 to view the application.
readpoint/
├── public/ # Static assets
├── src/
│ ├── components/ # Reusable UI components
│ │ ├── elements/ # Basic UI elements
│ │ ├── layouts/ # Layout components
│ │ └── other/ # Other components
│ ├── pages/ # Page components
│ │ ├── home/ # Homepage components
│ │ ├── products/ # Product listing and details
│ │ ├── cart/ # Shopping cart functionality
│ │ ├── order/ # Order management
│ │ └── dashboard/ # User dashboard
│ ├── context/ # React Context providers
│ ├── hooks/ # Custom React hooks
│ ├── services/ # API service functions
│ ├── reducers/ # State reducers
│ └── routes/ # Routing configuration
├── data/
│ ├── db.json # JSON Server database
│ └── routes.json # API route configuration
└── tailwind.config.js # Tailwind CSS configuration
- Browse through a curated collection of educational eBooks and courses
- Filter products by price, rating, availability, and best-seller status
- Detailed product pages with comprehensive information
- Secure login and registration system
- Protected routes for authenticated users
- User profile management
- Add products to cart with quantity management
- Secure checkout process
- Order tracking and history
- Real-time search functionality
- Advanced filtering options
- Responsive search results
npm start- Runs the app in development modenpm test- Launches the test runnernpm run build- Builds the app for productionnpm run eject- Ejects from Create React App (one-way operation)
Create a .env file in the root directory:
REACT_APP_API_URL=http://localhost:8000The project uses Tailwind CSS with custom color scheme:
customBlack: #3a3a3acustomWhite: #ffffffcustomBackground: #232428customCard: #1A1A1D
The application uses JSON Server with the following endpoints:
GET /products- Get all productsGET /products/:id- Get specific productGET /featured_products- Get featured productsPOST /orders- Create new orderGET /orders- Get user ordersPOST /users- User registrationPOST /login- User authentication
Run the test suite:
npm test- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Create React App for the project setup
- Tailwind CSS for the styling framework
- React Router for client-side routing
- JSON Server for the mock backend
If you have any questions or need help, please open an issue in the GitHub repository.
Happy Reading! 📚✨