Skip to content

calmNinja/bookThingApp-fullstack

Repository files navigation

BookThing - A Book Review App

BookThing is a full-stack web application built with HTML, CSS, Bootstrap, Vanilla JavaScript, Node.js, EJS (Embedded JavaScript), and Express, using MongoDB for data storage. It's hosted on MongoDB Atlas and deployed on Render, with a responsive design for an optimal user experience on all devices.

Table of Contents


⭐ Features

  • Book Gallery: Discover popular titles with ratings and reviews.

  • Search Bar: Perform live searches for books.

  • User Registration: Register with email, password, and additional information. Optional avatar selection with a default option. Admin code for admin access.

  • User Authentication: Authentication ensures that only registered users can access the app's features.

  • User Profiles: Displays user information with books read count, 'Read' bookshelf, Reviews posted and options to edit/delete their account.

  • Book Management: Users can add or remove books they have read to/from their bookshelf.

  • Book Reviews: Users can rate and review books they've read. A book cannot be reviewed until it's marked as 'Read.' Users can edit/delete their reviews.

  • Account Deletion: Option to delete your account.

  • User Interaction: View other users' profiles. However, users cannot edit other users' profiles.

  • Admin Privileges: Special privileges for book and user data management.

  • Password Management: Change Password or Reset forgotten passwords securely with email confirmation.

🚀 Live Demo

Check out a live demo of the app here

📸 Screenshots

Home Page

Home Page

Book Gallery

Book Index

Live Search

Book Index

User Registration

Book Index

User Profile

Book Index

Account Recovery

Book Index

Edit Review

Book Index

Admin Priveleges

Book Index

🔧 Installation

To run the app locally, follow these steps:

  1. Clone the repository:

    git clone https://github.com/calmNinja/bookThingApp-fullstack.git
  2. Navigate to the project directory.

    cd bookThingApp
  3. Install the required dependencies.

    npm install
  4. Create a .env file in the project root and add

    ADMIN_PASSWORD=your_admin_password
    GMAILPW=your_gmail_password
    DEFAULT_AVATAR_URL=your_default_avatar_url
    DB_URL=your_database_connection_url
    SECRET=your_secret_key

    Replace your_admin_password, your_gmail_password, your_default_avatar_url, your_database_connection_url, and your_secret_key with your actual values for these environment variables.

  5. Start the MongoDB service using the following commands:

    • Start the MongoDB service using Homebrew:
    brew services start mongodb-community@6.0
    • In another terminal tab, run the MongoDB server:
    mongod

Ensure these services are running; otherwise, the app won't work correctly.

  1. Seed the Database.

    node seeds/index.js
  2. Start the development server.

    npm start
  3. Open your web browser and visit http://localhost:3000

📜 Attribution

The "best_books_ever.json" dataset was retrieved from this source

Lorena Casanova Lozano, & Sergio Costa Planells. (2020). Best Books Ever Dataset (Version 1.0.0) [Data set]. Zenodo. http://doi.org/10.5281/zenodo.4265096

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published