Created by: Mohammad Rahman Link: maktabahibntaymiyyah.vercel.app
A full-featured e-commerce Islamic bookstore built from the ground up using Next.js and Tailwind CSS. The platform includes Firebase Authentication for user management, Stripe for secure payments, and real-time shipping rate calculations powered by Shippo's API.
- Modern Web Framework: Built with Next.js for server-side rendering and optimized performance.
- Responsive Design: Styled with Tailwind CSS for a seamless user experience across devices.
- User Authentication: Firebase Authentication for secure login and registration.
- Real-Time Shipping Rates: Integrated with Shippo's API to calculate shipping costs dynamically (currently using default weights; abstraction in progress).
- Secure Payments: Stripe integration for handling transactions.
- Dynamic Catalog: Browse books by categories and subcategories.
- Cart Management: Add, remove, and update items in the cart.
- Web Framework: Next.js
- Styling: Tailwind CSS
- Database: Firebase Firestore
- Authentication: Firebase Authentication
- Payments: Stripe
- Shipping Rates: Shippo API
.
├── src/
│ ├── app/ # Next.js app directory
│ │ ├── api/ # API routes
│ │ ├── routes/ # Page routes
│ │ └── layout.tsx # Main layout
│ ├── lib/ # Reusable components, context, and utilities
│ └── globals.css # Global styles
├── public/ # Static assets
├── package.json # Project dependencies
├── tsconfig.json # TypeScript configuration
└── README.md # Project documentation
- Node.js (v16 or higher)
- npm or yarn
- Clone the repository:
git clone https://github.com/mohammadr09/maktabah-ibn-taymiyyah.git
- Navigate to the project directory:
cd maktabah-ibn-taymiyyah - Install dependencies:
npm install # or yarn install - Create a
.env.localfile in the root directory and add the following environment variables:NEXT_PUBLIC_FIREBASE_API_KEY=your_firebase_api_key NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_firebase_auth_domain NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_firebase_project_id STRIPE_SECRET_KEY=your_stripe_secret_key SHIPPO_API_KEY=your_shippo_api_key
- Run the development server:
npm run dev # or yarn dev - Open http://localhost:3000 in your browser to view the app.
- Browse the catalog and add books to your cart.
- Proceed to checkout and complete your purchase securely using Stripe.
- Track shipping rates dynamically based on your location.
This project is licensed under the AGPL-3.0 License. See the LICENSE file for details.
- Implement Dynamic Weight-Based Shipping Calculations
- Refactor the codebase to improve maintainability and further expansion of the website
- Make UI changes to allow for a seamless, standardized UI. These UI changes will also allow for a more robust mobile-responsive version for the website.
^ Note: The shipping rate calculation currently uses default weights. Future updates will include dynamic weight-based calculations.