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.
๐ 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
๐ 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
๐ 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
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.
Our development roadmap is organized by priority areas:
For a detailed list of tasks, see our tasks.md file.