GithubHelp home page GithubHelp logo

harshxraj / book-management- Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 8.78 MB

Platform where user can browse, search, borrow, and buy books from the library.

Home Page: https://book-management-74dn.onrender.com/

JavaScript 98.00% HTML 0.66% CSS 1.34%
ant-design express graphql mangodb react tailwindcss redux-toolkit

book-management-'s Introduction

Book Management App

This is a Full-Stack MERN application built with GraphQL for managing books and users, integrated with MongoDB for database storage. It provides functionalities for users to browse, search, borrow, and buy books from the library, with authentication and authorization features implemented using passport.js.

Features

  • User Authentication: Users can register, login, and logout securely. Different roles (admin, regular user) are implemented with appropriate permissions.
  • Admins can add new books to the library.
  • Users can browse and search for available books.
  • Users can borrow or buy books from the library.
  • Each book can only be owned by one user at a time.
  • Users can request to borrow a book from another user, and upon approval, the ownership is transferred.

Technologies Used

  • GraphQL: A query language for APIs that enables efficient data fetching.

  • Node.js: A JavaScript runtime built on Chrome's V8 JavaScript engine for server-side development.

  • Express.js: A minimalist web framework for Node.js that simplifies building web applications and APIs.

  • MongoDB: A NoSQL document-oriented database for storing data in flexible, JSON-like documents.

  • Mongoose: An Object Data Modeling (ODM) library for MongoDB and Node.js that provides a schema-based solution to model application data.

  • Passport.js: An authentication middleware for Node.js that provides a simple and modular way to authenticate requests.

  • Ant Design: A design system and React UI library with a set of high-quality components for building elegant user interfaces.

  • Tailwind CSS: A utility-first CSS framework that enables rapid UI development by providing pre-defined utility classes for styling elements.

  • Redux Toolkit: An opinionated, batteries-included toolset for efficient Redux development, providing utilities and best practices out of the box.

    Get Started:

  1. Clone the Repository:

    git clone https://github.com/harshxraj/book-management-.git
  2. Install Backend Dependencies:

    cd backend
    npm install
  3. Backend (.env)

Create a file named .env in the backend directory and add the following environment variables:

MONGO_URI=
SESSION_SECRET=
  1. Install Frontend Dependencies:

    cd ../frontend
    npm install
  2. Start the Backend Server:

    npm run start
  3. Start the Frontend Development Server:

    npm run dev

Admin credentials - [email - [email protected]] [password - 123]

Normal user credentials - [email - [email protected]] [password - 123]

typeDefs

resolvers

queries

db data

Preview

demo.mp4

Screenshot

  • Register / Login PageScreenshot 2024-03-17 172443 Screenshot 2024-03-17 172449

  • Dashboard (Admin)Screenshot 2024-03-17 172510

  • Books (Admin)Screenshot 2024-03-17 172519

  • Book Creation (Admin)Screenshot 2024-03-17 172537

  • Dashboard (normal user)Screenshot 2024-03-17 172558

  • Books (normal user)Screenshot 2024-03-17 172603

book-management-'s People

Contributors

harshxraj avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.