A social networking platform for book lovers to connect, share, and discuss their literary passions
Book readers often struggle to find like-minded individuals to discuss their favorite books, share recommendations, and engage in meaningful literary conversations. Traditional social media platforms lack the focused environment needed for book discussions, and local book clubs may not always be accessible or match personal preferences.
BookConnect bridges this gap by connecting book enthusiasts based on their reading interests, allowing them to discover fellow readers and engage in real-time discussions about their literary journeys.
- Secure user registration and login
- JWT-based session management
- Protected routes with authentication guards
- Create and customize user profiles
- Add reading preferences and favorite books
- Update bio and personal information
- Manage book lists (add/remove favorites)
- Browse book readers through a paginated feed
- Efficient loading with 10 users per page
- Smooth navigation between pages
- Send interest/ignore requests to other readers
- Accept or reject incoming connection requests
- View all established connections
- Manage pending requests
- Instant messaging with connected users
- Socket.io powered real-time communication
- Chat history persistence
- Search users by name
- Filter by favorite books and genres
- Sort results by relevance or alphabetically
βββββββββββββββ βββββββββββββββ βββββββββββββββ
β Frontend β ββββΊ β Backend β ββββΊ β Database β
β (React.js) β ββββ β (Express.js)β ββββ β (MongoDB) β
βββββββββββββββ βββββββββββββββ βββββββββββββββ
β β
β β
βββββββSocket.ioβββββββ
(Real-time Chat)
- Frontend: React.js with React Router for navigation
- Backend: Node.js + Express.js REST API
- Database: MongoDB (NoSQL)
- Real-time: Socket.io for instant messaging
- Authentication: JWT-based secure authentication
| Layer | Technologies |
|---|---|
| Frontend | React.js, React Router, Redux Toolkit, Axios |
| Styling | Tailwind CSS, DaisyUI |
| Backend | Node.js, Express.js, Socket.io |
| Database | MongoDB with Mongoose ODM |
| Authentication | JWT (JSON Web Tokens) |
| Real-time | Socket.io for instant messaging |
| Deployment | Vercel (Frontend), Render (Backend), MongoDB Atlas |
| Service | Platform | URL |
|---|---|---|
| Frontend | Vercel | book-connect-frontend.vercel.app |
| Backend | Render | bookconnect-backend.onrender.com |
| Database | MongoDB Atlas | Cloud-hosted |
| Endpoint | Method | Description |
|---|---|---|
/signup |
POST | Register new book reader |
/login |
POST | Authenticate user |
| Endpoint | Method | Description |
|---|---|---|
/profile/view |
GET | Get current user profile |
/profile/edit |
PATCH | Update user profile |
/profile/genres |
PATCH | Update favorite genres |
/profile/books/add |
POST | Add a book to favorites |
/profile/books/remove |
DELETE | Remove a book from favorites |
/profile/delete |
DELETE | Permanently delete user account |
| Endpoint | Method | Description |
|---|---|---|
/request/send/:status/:toUserId |
POST | Send connection request (interested/ignored) |
/request/review/:status/:requestId |
POST | Accept/reject connection request |
/user/requests/received |
GET | Get pending connection requests |
/user/connections |
GET | Get all accepted connections |
| Endpoint | Method | Description |
|---|---|---|
/feed |
GET | Get paginated feed with search, sort & filter |
| Endpoint | Method | Description |
|---|---|---|
/chat/:targetUserId |
GET | Get chat history with specific user |
/logout |
POST | End user session |
- β Secure Authentication - JWT-based with httpOnly cookies
- β Real-time Messaging - Instant chat with Socket.io
- β Responsive Design - Works seamlessly on all devices
- β State Management - Redux Toolkit for efficient state handling
- β Protected Routes - Authentication guards for secure pages
- β Persistent Sessions - User data persists across page refreshes
- β Search & Filter - Find readers by name, books, and genres
- β Connection Management - Send, accept, reject requests
- β Profile Customization - Personalize your reading profile
- β Modern UI/UX - Glassmorphism design with smooth animations
- Node.js (v14 or higher)
- MongoDB
- npm or yarn
- Clone the repository
git clone https://github.com/yourusername/bookconnect-frontend.git
cd bookconnect-frontend- Install dependencies
npm install- Configure environment
- Update
src/utils/constants.jswith your backend URL
- Run development server
npm run dev- Build for production
npm run buildbookconnect-frontend/
βββ src/
β βββ Components/
β β βββ Body.jsx
β β βββ Chat.jsx
β β βββ Connections.jsx
β β βββ EditProfile.jsx
β β βββ Feed.jsx
β β βββ Footer.jsx
β β βββ Login.jsx
β β βββ Navbar.jsx
β β βββ Profile.jsx
β β βββ ProtectedRoute.jsx
β β βββ Requests.jsx
β β βββ UserCard.jsx
β βββ utils/
β β βββ appStore.js
β β βββ axiosConfig.js
β β βββ conectionSlice.js
β β βββ constants.js
β β βββ feedSlice.js
β β βββ requestSlice.js
β β βββ socket.js
β β βββ userSlice.js
β βββ App.jsx
β βββ main.jsx
βββ public/
βββ index.html
βββ vercel.json
βββ package.json
Contributions are welcome! Feel free to open issues or submit pull requests.
This project is open source and available under the MIT License.
Built with β€οΈ by book lovers, for book lovers
- Live Demo: https://book-connect-frontend.vercel.app
- Backend Repository: https://github.com/mayank-pillai-99/BookConnect-backend
- Frontend Repository: https://github.com/mayank-pillai-99/BookConnect-frontend
β Star this repo if you find it helpful!
Made with React, Redux, and lots of β