A free Arabic digital library built with React, Vite, and Tailwind CSS, designed to make classical Islamic books accessible to everyone. The library features works by Imam Ibn Hajar and includes an original text by my Shaykh, presented with elegant design and intuitive navigation.
This project is currently under development. Expect ongoing updates and improvements.
This project is my official Capstone submission for the ALX Software Engineering Program. It represents the culmination of months of learning, building, and problem-solving across front-end development, version control, and UI/UX design.
The Ibn-Hajar Library is more than just a technical exercise β itβs a personal and cultural contribution to digital Islamic scholarship, built with modern web technologies and a deep sense of purpose.
This project uses:
- βοΈ React (via Vite for fast development)
- π¨ Tailwind CSS for styling
- π
books.jsonfor local book data - π PDF files stored locally in
public/Books - πΌοΈ Book covers stored in
public/covers
git clone https://github.com/Naajibinbsiraj/Ibn-Hajar-Library.git
cd Ibn-Hajar-Library
npm install
npm run dev
π Features (In Progress)
π Book cards with cover image, title, description, and links to read/download
π Arabic navigation (Ψ§ΩΨ±Ψ¦ΩΨ³ΩΨ©, ΨΉΩ Ψ§ΩΩ
ΩΨͺΨ¨Ψ©)
π Search functionality
β
Read status indicator
π₯ PDF integration from public/Books
π Dark mode toggle (planned)
π Project Structure
IBN-HAJAR-LIBRARY/
βββ public/
β βββ Books/ # PDF files
β βββ covers/ # Book cover images
β
βββ src/
β βββ Components/ # Reusable UI components
β β βββ BookCard.jsx
β β βββ BookDetail.jsx
β β βββ MainLayout.jsx
β β βββ Navbar.jsx
β β
β βββ assets/ # Icons and static assets
β β βββ react.svg
β βββ data/ # Book data
β β βββ books.json
β βββ pages/ # Page views
β β βββ About.jsx
β β βββ Book.jsx
β β βββ ChapterPage.jsx
β β βββ Home.jsx
β βββ App.jsx
β βββ App.css
β βββ index.css
β βββ main.jsx
βββ .gitignore
βββ README.md
βββ eslint.config.js
βββ index.html
βββ package.json
βββ package-lock.json
βββ postcss.config.cjs
βββ tailwind.config.cjs
βββ vite.config.js