BookNest is a platform where book lovers can connect! Users will be able to search books by author or title, create social media posts, follow other users, add books to their TBR, customize their profile, and more!
⭐ This app is still a work in progress
📖 Book Search: Search for your favorite titles using keywords, author name, or title.
📖 Bookmarks: Save your favorite reads to your profile.
📖 Connect with Others: Create posts, view / like other users posts and view others bookmarks
📖 Profile Customization: Customize your profile with a personalized bio, location, birthday, and profile / cover pictures.
📖 Reviews: Review books, and view other users book reviews.
📐 Frameworks: React
💾 Databases: MongoDB, AWS S3
🛠 Tools: Express, Express-Session, Mongoose, TailwindCss
🌐 APIs: Google Books
To view this application on the web, click here
To run this project locally, follow these steps:
-
Clone this repository:
clone https://github.com/Cadhig/BookNest.git
-
Open two terminals, In terminal 1:
cd client; npm install
-
In terminal 2:
cd server; npm install
-
Set up your Google for Developers account to obtain an API key for Google Books. Then, create a
.env
file within theclient
directory:VITE_GOOGLE_API_KEY="YourAPIKey" VITE_API_ROUTE="http://localhost:3000"
-
Create an AWS S3 bucket, with an IAM user / policy, grab your
access key
,secret acccess key
as well as the name of your s3 bucket and region.Need help?
-
Create another
.env
file within theserver
directory:MONGO_URL="YourMongoDBUrl" # Mine is mongodb://localhost/BookNest ORIGIN="http://localhost:5173" PORT="3000" AWS_ACCESS_KEY="YourAccessKey" AWS_SECRET_KEY="YourSecretAccessKey" BUCKET_NAME="your-s3-bucket-name" BUCKET_REGION="your-region" # Mine is set to us-east-2
-
To view the project in the browser... Open the
client
directory and run:npm run dev
-
To begin the backend server... Open the
server
directory and run:npm start
-
Open your browser and navigate to:
http://localhost:5173
Contributions are welcome! If you have any suggestions or improvements, feel free to fork the repository, create a new branch, and submit a pull request.