Skip to content

BoiBinimoy is a book-selling website with social media features, built with Python Django. Users can register, verify emails, login and manage profiles. They can post book ads, comment, search books and visit profiles. Besides Admin and Manager roles with specific permissions. Admins manage users, while Managers approve posts and pin announcements.

Notifications You must be signed in to change notification settings

Mahmud-Alam/boibinimoy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

103 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“š BoiBinimoy - A Book Selling & Social Platform

πŸ“Œ Project Overview

BoiBinimoy is a feature-rich Book Selling Website with Social Media Functionality, built using Python Django. Users can register, verify their email, log-in, create and update their user-profiles. They can post text-based or image-based advertisements for books they want to buy, sell, or exchange. The platform also includes social media-like interactions - users can comment on book posts, search for books, and visit other users' profiles.

In addition to customer functionalities, BoiBinimoy includes Admin and Manager roles with specific permissions. Admins can create and manage users, while Managers have post-approval powers and can pin announcements for all users.


πŸš€ Features

🎯 Customer Features

  • πŸ“ User Registration with Email Verification
  • πŸ” User Login & Profile Management
  • πŸ“š Post Book Advertisements with Images or Text-only Content
  • πŸ” Search for Books by Title, Author, or Category
  • πŸ’¬ Comment on Book Posts
  • πŸ‘₯ View Other Users' Profiles and Posts
  • πŸ“„ Text and Image Posts
  • 🏷️ Manage Own Book Listings

πŸ‘¨β€πŸ’Ό Manager Features

  • πŸ›οΈ Manager Dashboard: Oversee platform activities and manage profiles.
  • πŸ‘€ Manage Manager Profiles: Administer manager accounts and settings.
  • πŸ‘₯ Manage Customer Users: Activate or deactivate customer-users who violate platform rules.
  • πŸ“š Create & Manage Book Categories: Define categories for users to post books.
  • πŸ“‹ Manage Categories & Book Listings: Edit and organize book posts.
  • ✍️ Create Blogs & Announcements: Publish blogs or platform updates for users.
  • βœ… Approve Content: Review and approve posts, blogs, and book advertisements.

πŸ‘‘ Admin Features

  • πŸ”‘ Admin Dashboard: Oversee administrative activities and manage profiles.
  • πŸ‘€ Admin Profile: Manager Admin own profile and settings.
  • πŸ‘₯ Manage Administrators: Admins can create and manage Managers and other Admins.
  • πŸ› οΈ Activate/Deactivate Admins & Managers.

πŸ–₯️ Fully Responsive

  • βœ… Optimized for Mobile, Tablet, and Desktop Screens
  • βœ… Fast Performance and Secure Authentication

πŸ“Έ Project Screenshots

🏠 Home Page

The Landing Page of the BoiBinimoy Platform. Home Page

πŸ“ Register Page

New users can register here. Register Page

πŸ”‘ Login Page

Users can log in to their accounts. Login Page

πŸ‘€ User Profile

  • Logged-in user profile page. User Profile

  • Click on the profile image in the navbar to open a dropdown menu for more options, like Logout. Navbar Profile Dropdown

  • User Profile’s blog section, where they can update or delete their created blogs. User Blogs

  • Confirmation dialog box when deleting a blog. Delete Confirmation

  • Users can visit other user's profile, but their own profile icon always remains in the navbar for easy access. Visit Other Profiles

πŸ“š Book Post Section

Users can post books for exchange or sale. Book Post

πŸ“– Book Details

View detailed information about a book. Book Details

πŸ’¬ Book Comments

Users can comment on book posts. Book Comments

πŸ” Search Books

Search for books by their titles. Search Books

✍️ Blog Section

Users can read and write blogs related to book exchange. Blog Section

πŸ› οΈ Manager Dashboard

Managers have access to a dashboard to manage content. Manager Dashboard

πŸ‘¨β€πŸ’Ό Manager Profile

Manager’s profile. Manager Profile

πŸ›οΈ Admin Dashboard

Admins have access to an advanced dashboard. Admin Dashboard

  • Admins can delete other admins or managers. Admin Manage Users

πŸ—οΈ Project Structure

BoiBinimoy/
 β”œβ”€β”€ blogs/                # Blog module
 β”œβ”€β”€ boibinimoy/           # Main Django project folder
 β”œβ”€β”€ books/                # Book listing and advertisement module
 β”œβ”€β”€ static/               # Static files (CSS, JS, Images)
 β”œβ”€β”€ staticfiles/          # Collected static files
 β”œβ”€β”€ templates/            # HTML templates for the project
 β”œβ”€β”€ users/                # User authentication and profile management
 β”œβ”€β”€ db.sqlite3            # SQLite Database
 β”œβ”€β”€ manage.py             # Django management script
 β”œβ”€β”€ requirements.txt      # Dependencies
 β”œβ”€β”€ vercel.json           # Deployment configuration

πŸ”§ Installation & Setup

πŸ“Œ Prerequisites

Ensure you have the following installed:

  • Python 3.9+
  • pip (Python Package Manager)
  • Virtual Environment (Recommended)

πŸ”½ Clone the Repository

git clone https://github.com/Mahmud-Alam/boibinimoy.git
cd boibinimoy

πŸ“¦ Create Virtual Environment & Install Dependencies

python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt

πŸ› οΈ Apply Migrations

python manage.py migrate

πŸ”‘ Create a Superuser

python manage.py createsuperuser

Follow the instructions to set up an admin user.

πŸš€ Run the Development Server

python manage.py runserver

Access the app at http://127.0.0.1:8000/.


πŸ“œ API Endpoints

Endpoint Method Description
/ GET Home Page
/about/ GET About Page
/contact/ GET Contact Page
/register/ POST User Registration
/login/ POST User Login
/logout/ POST User Logout
/profile/<username>/ GET View User Profile
/edit-profile/ POST Edit User Profile
/change-username/ POST Change Username
/change-email/ POST Change User email
/change-password/ POST Change User password
/books/ GET List All Books
/books/create-post/ POST Create New Book Post
/books/update-post/<id>/ POST Update Book Post
/books/delete-post/<id>/ POST Delete Book Post
/books/details/<path>/ GET View Book Details
/books/category/<path>/ GET List Books by Category
/blogs/ GET List All Blogs
/blogs/create-blog/ POST Create New Blog Post
/blogs/update-blog/<id>/ POST Update Blog Post
/blogs/delete-blog/<id>/ POST Delete Blog Post
/blogs/manager/ GET List All Manager's Blogs
/manager-dashboard/<username>/ GET Manager's Dashboard
/manager-profile/<username>/ GET Manager's Profile
/category-list/ GET View All Categories
/create-category/ POST Create New Category
/update-category/<path>/ POST Update Category
/delete-category/<path>/ POST Delete Category
/pending-post/ GET View all Pending Posts
/blogs/accept-book/<id> POST Accept Book Post Request
/blogs/accept-blog/<id> POST Accept Blog Post Request
/admin-panel/<username>/ GET Admin Dashboard
/create-admin/ POST Create New Admin
/create-manager/ POST Create New Manager
/manage-administrators/ GET List of Administrators
/reactive-user/<username>/ POST Reactive Users
/delete-user/<username>/ POST Delete Users

πŸ› οΈ Technologies Used

  • Django 5.1.7 - Python Web Framework
  • SQLite3 - Lightweight Database
  • Django Filter - For search and filtering
  • Bootstrap - For UI styling
  • Django Widget Tweaks - Enhancing form customization
  • Pillow - Image handling for user uploads
  • Django Bootstrap Form - Simplified form rendering

πŸ” Authentication & Security

  • Django’s built-in authentication system
  • Hashed passwords using Django’s pbkdf2_sha256
  • Session & Cookie-based authentication
  • Email Verification using Django's Email Backend
  • CSRF Protection enabled
  • Role-based access control for Admin & Managers

πŸ“œ Meta Tags (SEO)

<meta name="description" content="BoiBinimoy - Buy & Sell Books, Engage with the Community. A Django-powered social book trading platform.">
<meta name="keywords" content="Book selling, book trade, buy books, sell books, Django, social book platform">
<meta name="author" content="Mahmud Alam">
<meta name="robots" content="index, follow">

πŸ† Author

Mahmud Alam


πŸŽ‰ Acknowledgments

  • Inspired by modern book trading platforms.
  • Thanks to the Django Community for extensive documentation and support.

Happy coding! πŸš€

About

BoiBinimoy is a book-selling website with social media features, built with Python Django. Users can register, verify emails, login and manage profiles. They can post book ads, comment, search books and visit profiles. Besides Admin and Manager roles with specific permissions. Admins manage users, while Managers approve posts and pin announcements.

Topics

Resources

Stars

Watchers

Forks