Skip to content

UniLib is a web-based university library system that uses machine learning and a vector database for smarter search and book management.

License

Notifications You must be signed in to change notification settings

joxyle-jhon/UniLib-v2

Repository files navigation

did

📚 UniLib: Library Management System

UniLib is a web-based university library system that uses machine learning and a vector database for smarter search and book management. It enhances accessibility, provides personalized recommendations, and modernizes traditional library operations, making it easier for students and faculty to find and manage academic resources efficiently.

📚 Book Management

  • Search and browse books by title, author, or ISBN with ease.
  • Advanced filtering options to categorize books efficiently.
  • Real-time tracking of book availability.
  • Comprehensive cover image management system.
  • Detailed book information pages for better user engagement.

🔒 Security & Authentication

  • Robust email/password authentication powered by Supabase.
  • Role-based access control for secure user permissions.
  • Protection of routes and API endpoints to ensure data security.
  • Comprehensive user profile management.
  • Effective session handling for a seamless user experience.

📖 Borrowing System

  • Simplified and intuitive book checkout process.
  • Automated due date management to streamline borrowing operations.
  • Book reservation queue to manage demand.
  • Efficient return processing system.
  • Timely late return notifications for users.
  • Full tracking of borrowing history for transparency and accountability.

💻 Modern UI/UX

  • Fully responsive design optimized for all devices.
  • Real-time updates for enhanced interactivity.
  • Seamless loading states and error handling.
  • Clean, intuitive interface for an exceptional user experience.

🛠️ Tech Stack

Frontend

Next JS TypeScript React TailwindCSS

Backend & Database

Supabase PostgreSQL

Tools & Utilities

  • shadcn/ui - UI Components
  • React Hook Form - Form handling
  • Zod - Schema validation
  • date-fns - Date manipulation
  • ESLint - Code linting
  • Prettier - Code formatting

🚀 Getting Started

  1. Clone the repository
git clone
cd UniLib-v2
  1. Install dependencies
npm install
  1. Set up environment variables Create a .env.local file in the root directory:
NEXT_PUBLIC_SUPABASE_URL=your-supabase-url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-supabase-anon-key
  1. Generate Prisma client
npm run generate
  1. Run the development server
npm run dev

To create changes to the database schema

  1. Make changes to the schema in schema.prisma
  2. Run npm run npm generate to generate the Prisma client
  3. Run npm run npm migrate to apply the changes to the database

Open http://localhost:3000 with your browser to see the result.

📁 Project Structure

├── src/
│   ├── app/              # Next.js app router pages
│   ├── components/       # Reusable UI components
│   ├── contexts/         # React contexts
│   ├── hooks/           # Custom React hooks
│   ├── lib/             # Utility functions and configurations
│   └── types/           # TypeScript type definitions
├── public/              # Static assets
└── ...configuration files

🤝 Contributing

We welcome contributions to improve the Library Management System! Here's how you can help:

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Please ensure you follow our coding standards and include appropriate tests.

📄 License

See the Apache License file for details.

About

UniLib is a web-based university library system that uses machine learning and a vector database for smarter search and book management.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •