https://github.com/manya7547/librereads_elibrary
A comprehensive electronic library management system for organizing, managing, and accessing digital resources.
https://github.com/manya7547/librereads_elibrary
Last synced: 10 months ago
JSON representation
A comprehensive electronic library management system for organizing, managing, and accessing digital resources.
- Host: GitHub
- URL: https://github.com/manya7547/librereads_elibrary
- Owner: Manya7547
- License: mit
- Created: 2024-05-10T19:55:16.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-03-27T19:46:56.000Z (about 1 year ago)
- Last Synced: 2025-03-27T20:29:19.629Z (about 1 year ago)
- Language: TypeScript
- Size: 1.71 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ELibrary
A comprehensive electronic library management system for organizing, managing, and accessing digital resources.
### LibreReads Homepage

_Homepage of the LibreReads digital library platform_
## Project Components
This project consists of three main components:
1. **ELibrary API (Current Repository)**
- Backend REST API service built with Express.js and TypeScript
- Handles authentication, file storage, and database operations
- Manages book data, user authentication, and file uploads
- Repository: [LibreReads_elibrary](https://github.com/Manya7547/LibreReads_elibrary)
2. **LibreReads (Client App)**
- Digital library platform for end users
- Built with Next.js 14.2.3, TypeScript, and Tailwind CSS
- Features:
- Browse and download free books and articles
- Book details pages with cover images
- Server-side rendering for optimal performance
- Responsive design with custom color scheme
- User authentication (sign-in/sign-up)
- Repository: [LibreReads-client-app](https://github.com/Manya7547/LibreReads-client-app)
3. **LibreReads - Elibrary Book Dashboard**
- Administrative dashboard for managing the library system
- Built with React, TypeScript, and Vite
- Technical Stack:
- shadcn/ui components with Tailwind CSS
- Zustand for auth state management
- React Query for server state
- React Router for navigation
- Features:
- Authentication system
- Responsive dashboard layout
- Complete books management system
- Protected routes
- File upload for books and cover images
- Repository: [LibreReads-elib-dashboard](https://github.com/Manya7547/LibreReads-elib-dashboard)
## Features
- User authentication and authorization
- Book management (CRUD operations)
- File uploads for book covers and PDF files
- Cloud storage integration with Cloudinary
- RESTful API architecture
- TypeScript implementation
## Prerequisites
- Node.js (>=16.20.1)
- MongoDB
- Cloudinary account
## Installation
1. Clone the repository:
```bash
git clone
cd elibrary
```
2. Install dependencies:
```bash
npm install
```
3. Create a `.env` file in the root directory with the following variables:
```
PORT=3000
MONGO_CONNECTION_STRING=your_mongodb_connection_string
NODE_ENV=development
JWT_SECRET=your_jwt_secret
CLOUDINARY_CLOUD=your_cloudinary_cloud_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_api_secret
FRONTEND_DOMAIN=http://localhost:3000
```
## Running the Application
Development mode:
```bash
npm run dev
```
## API Endpoints
### Users
- POST `/api/users` - Register a new user
- POST `/api/users/login` - User login
### Books
- GET `/api/books` - List all books
- GET `/api/books/:bookId` - Get a single book
- POST `/api/books` - Create a new book (authenticated)
- PATCH `/api/books/:bookId` - Update a book (authenticated)
- DELETE `/api/books/:bookId` - Delete a book (authenticated)
## Tech Stack
- Express.js - Web framework
- TypeScript - Programming language
- MongoDB - Database
- Mongoose - ODM
- JWT - Authentication
- Multer - File upload handling
- Cloudinary - Cloud storage
- CORS - Cross-origin resource sharing
## System Architecture
The ELibrary system is composed of three interconnected applications:
1. **Backend API (This Repository)**
- Serves as the central data management system
- Handles all database operations and file storage
- Provides authentication and authorization
- Runs on port 3000 by default
2. **LibreReads Frontend**
- Public-facing website for end users
- Connects to the backend API for data
- Uses Cloudinary for image optimization
- Requires `BACKEND_URL` environment variable
3. **Admin Dashboard**
- Administrative interface for content management
- Connects to the backend API (default: localhost:5513)
- Requires authentication for access
- Manages books and system content
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Author
Manya S