https://github.com/francislagares/bookwise-app
Production-Grade University Library Management System built with Next.js v15 and following industry-standard practices from rate-limiting, DDoS protection, caching, optimizations, multi-media uploads, complex db queries, and advanced error handling to automated workflows with custom notifications.
https://github.com/francislagares/bookwise-app
drizzle-orm nextjs15 postgresql react19 typescript
Last synced: 3 months ago
JSON representation
Production-Grade University Library Management System built with Next.js v15 and following industry-standard practices from rate-limiting, DDoS protection, caching, optimizations, multi-media uploads, complex db queries, and advanced error handling to automated workflows with custom notifications.
- Host: GitHub
- URL: https://github.com/francislagares/bookwise-app
- Owner: francislagares
- License: mit
- Created: 2025-01-11T15:53:46.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-18T20:23:33.000Z (over 1 year ago)
- Last Synced: 2025-01-18T22:49:25.002Z (over 1 year ago)
- Topics: drizzle-orm, nextjs15, postgresql, react19, typescript
- Language: TypeScript
- Homepage:
- Size: 2.69 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
A University Library Management System with Admin Panel
## Tech Stack
- Next.js
- PostgreSQL
- Upstash
- ImageKit
- TypeScript
- Resend
- Tailwind CSS
## Features
### Features of the BookWise Library Management System Project
👉 **Open-source Authentication**: 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
suggestions for similar books.
👉 **Profile Page**: Manage accounts, track borrowed books, and download
receipts.
👉 **Onboarding Workflows**: Automated welcome emails when users sign up, with
follow-ups based on inactivity or activity dates.
👉 **Borrow Book Reminder**: Customized email notifications sent before, on, and
after the due date, reminding users to return books or avoid charges.
👉 **Borrow Book Receipt**: Automatically generates a customized PDF receipt
when a book is successfully borrowed.
👉 **Analytics Dashboard**: Statistics, new users, books, borrow requests, and
more.
👉 **All Users Page**: View and manage users, including approving or revoking
access.
👉 **Account Requests Page**: Admin approval for account requests, with email
notifications for user verification.
👉 **All Books Page**: List and manage all library books with advanced search,
pagination, and filters.
👉 **Book Management Forms**: Add new books and edit existing entries.
👉 **Book Details Page**: Detailed book information for administrators.
👉 **Borrow Records Page**: Complete borrow history with pagination and search.
👉 **Role Management**: Change user roles to invite more admins, with email
notifications sent upon role updates.
👉 **Advanced Functionalities**: Caching, rate-limiting, DDoS protection, and
custom notifications.
👉 **Database Management**: Postgres with Neon for scalable and collaborative
database handling.
👉 **Real-time Media Processing**: ImageKit for image and video optimization and
transformations.
👉 **Efficient Caching**: Upstash Redis for caching, workflows, and triggers.
👉 **Database ORM**: Drizzle ORM for simplified and efficient database
interactions.
👉 **Modern UI/UX**: Built with TailwindCSS, ShadCN, and other cutting-edge
tools.
👉 **Technology Stack**: Next.js with TypeScript for scalable development, and
NextAuth for robust authentication.
👉 **Seamless Email Handling**: Resend for automated email communications,
including notifications and updates.
## 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:
- [Git](https://git-scm.com/)
- [Node.js](https://nodejs.org/en)
- [pnpm](https://pnpm.io/) (Fast, disk space efficient package manager)
**Cloning the Repository**
```bash
git clone https://github.com/francislagares/bookwise-app.git
cd bookwise-app
```
**Installation**
Install the project dependencies using pnpm:
```bash
pnpm install
```
**Set Up Environment Variables**
Create a new file named `.env` in the root of your project and add the following
content along with your accounts private keys:
```env
NEXT_PUBLIC_IMAGEKIT_PUBLIC_KEY=
IMAGEKIT_PRIVATE_KEY=
NEXT_PUBLIC_IMAGEKIT_URL_ENDPOINT=
NEXT_PUBLIC_API_ENDPOINT=
NEXT_PUBLIC_PROD_API_ENDPOINT=
DATABASE_URL=
UPSTASH_REDIS_URL=
UPSTASH_REDIS_TOKEN=
AUTH_SECRET=
# Required for workflow
QSTASH_URL=
QSTASH_TOKEN=
# RESEND_TOKEN=
RESEND_TOKEN=
```
Replace the placeholder values with your actual ImageKit, NeonDB, Upstash, and
Resend credentials. You can obtain these credentials by signing up on the
[ImageKit](https://bit.ly/49zmXkt), [NeonDB](https://fyi.neon.tech/1jsm),
[Upstash](https://upstash.com/?utm_source=jsmastery1), and
[Resend](https://resend.com/).
**Running the Project**
```bash
pnpm dev
```
Open [http://localhost:3000](http://localhost:3000) in your browser to view the
project.
# Author
Created by [@francislagares](https://www.linkedin.com/in/francislagares/) - feel
free to contact me!