Skip to content

My Library is a social media-inspired web app for book lovers, built using Flask, SQLAlchemy, and Flask-Bcrypt. It allows users to register, log in, add books, post reviews, and comment on others' reviews. The app implements secure password handling and ensures only authors can edit or delete their content.

Notifications You must be signed in to change notification settings

PaoloIbanez/files-library-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

My Library - A Social Media for Book Lovers

📚 Description

"My Library" is a dynamic web application designed as a social media platform for book enthusiasts. Users can register, log in, add books to their virtual bookshelf, post reviews, comment on other users' reviews, and interact with a community of fellow readers. The app ensures secure user authentication and authorization, allowing only the original author to edit or delete their content.


🚀 Features

  • User Registration and Login: Secure user authentication using Flask-Bcrypt for password hashing.
  • Add and Display Books: Users can add books to their library with details like title, author, and rating.
  • Review and Comment System: Users can write reviews for books and add comments to other users' reviews.
  • CRUD Operations: Users can create, read, update, and delete their posts and comments.
  • User Authorization: Only content creators can edit or delete their own posts and comments.
  • Responsive UI: Built with Bootstrap-Flask for a modern, mobile-friendly design.
  • Persistent Storage: Uses SQLite with SQLAlchemy ORM for database management.

🛠️ Technologies and Tools Used

  • Frontend: HTML, CSS, Bootstrap-Flask
  • Backend: Python, Flask
  • Database: SQLite with SQLAlchemy ORM
  • Security: Flask-Bcrypt for password hashing
  • Validation: WTForms for form validation and CSRF protection
  • Version Control: Git & GitHub

⚙️ Installation and Setup

Prerequisites

  • Python (>= 3.8)
  • Git

Instructions

  1. Clone the Repository:
git clone <repository_url>
cd files-library-project
  1. Create a Virtual Environment:
python -m venv .venv
source .venv/bin/activate # On Windows use: .venv\Scripts\activate
  1. Install Required Packages:
pip install -r requirements.txt
  1. Initialize the Database:
python
>>> from main import db
>>> db.create_all()
>>> exit()
  1. Run the Application:
flask run
  1. Access the App: Open your browser and go to http://127.0.0.1:5000

📖 How to Use

  • Sign Up: Create an account on the registration page.
  • Log In: Access your profile and the main library.
  • Add Books: Click on 'Add Book' to submit a new book entry.
  • Write Reviews and Comments: Interact with books and users by leaving reviews and comments.
  • Edit or Delete Your Content: Only your own content can be modified or removed.

🌟 Future Improvements

  • Add profile pictures for users.
  • Implement a search functionality for books and users.
  • Enhance the commenting feature with nested replies.
  • Introduce a rating system for user reviews.

👤 Author

Built by Paolo Ibanez Medina


About

My Library is a social media-inspired web app for book lovers, built using Flask, SQLAlchemy, and Flask-Bcrypt. It allows users to register, log in, add books, post reviews, and comment on others' reviews. The app implements secure password handling and ensures only authors can edit or delete their content.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published