Thanks to visit codestin.com
Credit goes to github.com

Skip to content

faham112/mak

Repository files navigation

Makhdoom Wisali's Digital Library

A modern digital library web application where users can browse and read books for free without authentication. Built with a clean, SaaS-inspired design.

Features

  • Browse Books: Explore books by category, popularity, or recent additions
  • Search Functionality: Search across titles, authors, and descriptions
  • Reading Experience: Clean, distraction-free reading interface
  • Progress Tracking: Automatic reading progress saves and statistics
  • No Authentication: Completely free access without registration
  • Modern Design: SaaS dashboard-inspired UI with custom branding

Tech Stack

Frontend

  • React 18 with TypeScript
  • Vite for fast development and optimized builds
  • shadcn/ui components built on Radix UI
  • Tailwind CSS for styling
  • TanStack Query for server state management
  • Wouter for lightweight routing

Backend

  • Express.js with TypeScript
  • PostgreSQL database with Drizzle ORM
  • Neon serverless PostgreSQL driver
  • RESTful API design

Project Structure

├── client/                 # Frontend React application
│   ├── src/
│   │   ├── components/     # Reusable UI components
│   │   ├── pages/         # Route pages
│   │   ├── lib/           # Utilities and configurations
│   │   └── hooks/         # Custom React hooks
├── server/                # Backend Express application
│   ├── index.ts          # Server entry point
│   ├── routes.ts         # API route definitions
│   ├── storage.ts        # Database operations
│   └── db.ts            # Database configuration
├── shared/               # Shared types and schemas
│   └── schema.ts        # Drizzle schema definitions
└── attached_assets/     # Static assets including logo

API Endpoints

  • GET /api/books - Get all books
  • GET /api/books/popular - Get popular books
  • GET /api/books/recent - Get recently added books
  • GET /api/books/search?q={query} - Search books
  • GET /api/books/category/{category} - Get books by category
  • GET /api/books/{id} - Get specific book
  • POST /api/reading-progress - Update reading progress
  • GET /api/reading-stats - Get reading statistics

Database Schema

Books Table

  • Comprehensive book information including title, author, category
  • Cover images, descriptions, and full content
  • Rating system and metadata
  • Publication status (new/popular)

Reading Progress Table

  • Tracks user reading progress per book
  • Current page, completion status
  • Reading timestamps and statistics

Users Table

  • User authentication data (for future features)

Development

Prerequisites

  • Node.js 20+
  • PostgreSQL database

Environment Variables

  • DATABASE_URL - PostgreSQL connection string
  • PGHOST, PGPORT, PGUSER, PGPASSWORD, PGDATABASE - Database credentials

Running the Application

# Install dependencies
npm install

# Push database schema
npm run db:push

# Start development server
npm run dev

The application will be available at http://localhost:5000

Features Overview

Book Categories

  • Literature
  • Science
  • Islamic Studies
  • History
  • Poetry
  • Philosophy
  • Education
  • Culture

Reading Features

  • Page-by-page navigation
  • Reading progress tracking
  • Adjustable font size
  • Bookmark functionality
  • Reading statistics and achievements

Contributing

This is a personal library project by Makhdoom Wisali. The codebase follows modern React and Express.js patterns with TypeScript throughout.

License

Personal project - All rights reserved.

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages