university-library


Project Banner
next.js TypeScript postgresql drizzle tailwindcss shadcnui

A University Library Management System with Admin Panel

A modern, full-featured library management system built with Next.js, TypeScript, and PostgreSQL

๐Ÿ“‹ Table of Contents

  1. ๐Ÿค– Introduction
  2. โš™๏ธ Tech Stack
  3. ๐Ÿ”‹ Features
  4. ๐Ÿคธ Quick Start
  5. ๐Ÿงช Development Roadmap
  6. ๐Ÿ”— Assets
  7. ๐Ÿš€ More

๐Ÿค– Introduction

Built with Next.js, TypeScript, and PostgreSQL, the University Library Management System is a production-grade platform featuring a public-facing app and an admin interface. It offers advanced functionalities like seamless book borrowing with reminders and receipts, robust user management, automated workflows, and a modern, optimized tech stack for real-world scalability.

โš™๏ธ Tech Stack

๐Ÿ”‹ Features

User Features

๐Ÿ‘‰ Authentication System: Personalized onboarding flow with email notifications

๐Ÿ‘‰ Home Page: Highlighted books and newly added books with 3D effects

๐Ÿ‘‰ Library Page: Advanced filtering, search, and pagination for book discovery

๐Ÿ‘‰ Book Detail Pages: Availability tracking, book summaries, videos, and similar book suggestions

๐Ÿ‘‰ Profile Page: Account management, borrowed books tracking, and receipt downloads

๐Ÿ‘‰ Borrowing System: Seamless book borrowing with automated reminders and receipts

Admin Features

๐Ÿ‘‰ Analytics Dashboard: Statistics on users, books, and borrowing activity

๐Ÿ‘‰ User Management: View and manage users, approve/revoke access, and change roles

๐Ÿ‘‰ Book Management: Add, edit, and manage library books with advanced search

๐Ÿ‘‰ Borrowing Records: Track and manage all book borrowing activity

๐Ÿ‘‰ Account Approval: Review and approve new user registrations

Technical Features

๐Ÿ‘‰ Responsive Design: Mobile-first approach with full responsiveness across devices

๐Ÿ‘‰ Type Safety: Comprehensive TypeScript typing throughout the application

๐Ÿ‘‰ Error Handling: Consistent error handling with error boundaries and fallbacks

๐Ÿ‘‰ Performance Optimization: Efficient data fetching and rendering strategies

๐Ÿ‘‰ Security: Authentication, authorization, and data validation

๐Ÿคธ Quick Start

Follow these steps to set up the project locally on your machine.

Prerequisites

Make sure you have the following installed on your machine:

Cloning the Repository

git clone https://github.com/momed-ali01/university-library.git
cd university-library

Installation

Install the project dependencies using npm:

npm install --legacy-peer-deps

Set Up Environment Variables

Create a new file named .env.local in the root of your project and add the following content:

# Database
DATABASE_URL=

# Auth
AUTH_SECRET=

# ImageKit
NEXT_PUBLIC_IMAGEKIT_PUBLIC_KEY=
IMAGEKIT_PRIVATE_KEY=
NEXT_PUBLIC_IMAGEKIT_URL_ENDPOINT=

# API Endpoints
NEXT_PUBLIC_API_ENDPOINT=
NEXT_PUBLIC_PROD_API_ENDPOINT=

# Email Service (EmailJS)
EMAILJS_SERVICE_ID=
EMAILJS_TEMPLATE_ID=
EMAILJS_PUBLIC_KEY=

Database Setup

Set up your PostgreSQL database and run the migrations:

npm run db:generate
npm run db:migrate

Running the Project

npm run dev

Open http://localhost:3000 in your browser to view the project.

๐Ÿงช Development Roadmap

Our development roadmap is organized by priority areas:

In Progress

Upcoming Improvements

For a detailed list of tasks, see our tasks.md file.

๐Ÿ”— Assets