Digilibzx is a modern digital library management system that integrates Artificial Intelligence to provide enhanced user experience. The system is designed to streamline borrowing, returning, and managing book collections with an intuitive and responsive interface.
- AI-Powered Book Summaries - Automatic book summaries using Google Gemini & OpenAI
- Real-time Analytics - Dashboard with interactive data visualization
- Secure Authentication - Multi-layered security system with Spring Security
- Modern UI/UX - Responsive interface with Tailwind CSS & Shadcn UI
- Mobile Friendly - Optimized for all screen sizes
- Docker Ready - Easy deployment with containerization
- Advanced search & filter books
- Browse by category & genre
- Rating & review system
- Bookmark favorite books
- Shopping cart for borrowing
- Unique invoice code per transaction
- Return deadline notifications
- Complete borrowing history
- Auto-generate book summary
- Smart book recommendations
- AI-powered search
- Edit user profile
- Real-time notifications
- Personal statistics
- Achievement badges
- Real-time borrowing charts
- User activity monitoring
- Popular books statistics
- Trend analysis with Recharts
- User Management - CRUD users & role assignment
- Book Management - Manage book collections
- Category Management - Organize categories
- Inventory Control - Stock management
- Review borrowing requests
- Approve/reject borrowing
- Process book returns
- Handle overdue management
- Export reports to PDF
- Generate analytics reports
- Email automated reports
- Custom date range reports
Before getting started, ensure you have the following installed:
- Docker Desktop (v20.10+) & Docker Compose
- Java JDK 17 (for local development)
- Node.js (v18+) & npm/pnpm
- MySQL (v8.0+)
- Google Gemini API Key or OpenAI API Key (for AI features)
# Clone repository
git clone https://github.com/username/digilibzx.git
cd digilibzx
# Setup environment variables
cp frontend/.env.example frontend/.env
cp backend/src/main/resources/application.properties.example backend/src/main/resources/application.properties
# Update API Keys in .env
# NEXT_PUBLIC_GEMINI_API_KEY=your_gemini_api_key
# OPENAI_API_KEY=your_openai_api_key
# Build & Run containers
docker-compose up --build
# Access application
# Frontend: http://localhost:3000
# Backend: http://localhost:8081
# Swagger: http://localhost:8081/swagger-ui/index.html# Navigate to backend folder
cd backend
# Install dependencies & build
mvn clean install
# Setup database
mysql -u root -p
CREATE DATABASE digilibz;
exit;
# Update application.properties
# spring.datasource.url=jdbc:mysql://localhost:3306/digilibz
# spring.datasource.username=root
# spring.datasource.password=your_password
# Run application
mvn spring-boot:run
# Backend running at http://localhost:8081# Navigate to frontend folder
cd frontend
# Install dependencies
npm install
# or
pnpm install
# Setup environment variables
cp .env.example .env
# Update .env
# NEXT_PUBLIC_API_URL=http://localhost:8081
# NEXT_PUBLIC_GEMINI_API_KEY=your_key
# Run development server
npm run dev
# Frontend running at http://localhost:3000digilibzx/
│
├── backend/ # Spring Boot Application
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/com/digilibz/
│ │ │ │ ├── controller/ # REST API Endpoints
│ │ │ │ ├── service/ # Business Logic
│ │ │ │ ├── repository/ # Database Access Layer
│ │ │ │ ├── model/ # Entity Models
│ │ │ │ ├── dto/ # Data Transfer Objects
│ │ │ │ ├── config/ # Configuration Classes
│ │ │ │ └── security/ # Security & Authentication
│ │ │ └── resources/
│ │ │ ├── application.properties
│ │ │ └── static/
│ │ └── test/ # Unit & Integration Tests
│ ├── Dockerfile
│ └── pom.xml
│
├── frontend/ # Next.js Application
│ ├── app/ # App Router
│ │ ├── (auth)/ # Authentication routes
│ │ ├── (dashboard)/ # Dashboard routes
│ │ ├── admin/ # Admin pages
│ │ ├── user/ # User pages
│ │ ├── layout.tsx
│ │ └── page.tsx
│ ├── components/ # React Components
│ │ ├── ui/ # Shadcn UI Components
│ │ ├── layout/ # Layout Components
│ │ └── shared/ # Shared Components
│ ├── lib/ # Utilities & Helpers
│ │ ├── api.ts # API Client
│ │ ├── utils.ts # Helper Functions
│ │ └── validations.ts # Zod Schemas
│ ├── hooks/ # Custom React Hooks
│ ├── types/ # TypeScript Types
│ ├── public/ # Static Assets
│ ├── .env.example
│ ├── Dockerfile
│ ├── package.json
│ └── tailwind.config.ts
│
├── docker-compose.yml # Docker Orchestration
├── .gitignore
├── README.md
└── LICENSE
Special thanks to the following open-source projects:
- Next.js - The React Framework for Production
- Spring Boot - Java-based Framework
- Shadcn UI - Re-usable Components
- Tailwind CSS - Utility-first CSS Framework
- Google Gemini - AI Model Integration
- Recharts - Composable Charting Library