The backend code for this project can be found in a separate repository here.
eLib is a web application built using the MERN stack and TypeScript, allowing users to manage their personal library of PDF books. Users can upload, download, delete, and edit their book entries. The application also supports account creation and login, featuring dark and light themes.
- User Authentication: Create an account, login, and manage your library.
- Book Management: Add, download, delete, and edit your books.
- Theming: Switch between dark and light themes.
- Storage: Books are stored securely using Cloudinary, and user information is stored in MongoDB.
- UI: Built using the Shadcn Library for a responsive and modern interface.
- Frontend: React, TypeScript, Shadcn Library
- Backend: Node.js, Express
- Database: MongoDB
- Storage: Cloudinary
- Authentication: JSON Web Tokens (JWT)
Contributions are welcome! If you have any ideas, suggestions, or bug reports, please open an issue or submit a pull request.
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch
). - Commit your changes (
git commit -am 'Add new feature'
). - Push to the branch (
git push origin feature-branch
). - Create a new Pull Request.
This project is licensed under the MIT License. See the LICENSE file for details.
If you have any questions or want to reach out or open an issue on GitHub.
Thank you for checking out the eLib Book Project! We hope you find it useful and look forward to your contributions.
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Currently, two official plugins are available:
- @vitejs/plugin-react uses Babel for Fast Refresh
- @vitejs/plugin-react-swc uses SWC for Fast Refresh
If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:
- Configure the top-level
parserOptions
property like this:
export default {
// other rules...
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
project: ['./tsconfig.json', './tsconfig.node.json'],
tsconfigRootDir: __dirname,
},
}
- Replace
plugin:@typescript-eslint/recommended
toplugin:@typescript-eslint/recommended-type-checked
orplugin:@typescript-eslint/strict-type-checked
- Optionally add
plugin:@typescript-eslint/stylistic-type-checked
- Install eslint-plugin-react and add
plugin:react/recommended
&plugin:react/jsx-runtime
to theextends
list