Skip to content

MAY55A/Kutuby

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

123 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kutuby - Book Discovery Platform

Kutuby is a platform designed for book lovers to discover, list, rate, and recommend books. Users can create and manage collections, track their reading progress, and find personalized recommendations based on their reading preferences.

Table of Contents

Introduction

The goal of this project is to develop an online platform where users can:

  1. Discover new books.
  2. Create collections of books they want to read, are currently reading, or have finished.
  3. Rate and review books.
  4. Get personalized book recommendations.

Main Focus: The main feature of this platform is to allow users to create, manage, and explore collections of books.

Overview

  1. Home

  2. Login

  3. Books catalog

  4. Book details

  5. Collection details

  6. Leaderboard

  7. Admin dashboard

  8. Books management

  9. Collections management

  10. User management

Features

Anonymous Users

  1. Account creation.
  2. Browse the book catalog.
  3. Browse collections.
  4. Perform advanced searches and apply filters.

Registered Users

  1. Log in and log out.
  2. Browse and search the book catalog.
  3. Browse collections.
  4. Manage their collections:
    • Books in progress.
    • Completed books.
    • Books to read.
    • Custom collections (public or private).
  5. Rate books.
  6. View other users' collections.
  7. Like other users' collections.
  8. Receive personalized book recommendations.
  9. Option to leave comments on books.

Administrators

  1. Manage books in the catalog.
  2. Delete users.
  3. Delete collections.
  4. Manage comments on books and collections.
  5. Supervise user interactions and content.

Note: Features like site recommendations, commenting on collections, receiving notifications, and managing comments by admins may be added in future updates.

Technologies

  • Backend: Spring Boot 3.2.4 (Java 21)
  • Frontend: Thymeleaf, Bootstrap 5
  • Database: MySQL
  • Security: Spring Security with BCrypt password encoding
  • Logging: Logback
  • Libraries:
    • Lombok for reducing boilerplate code
    • Webjars for Bootstrap Icons
    • Thymeleaf extras for Spring Security integration

Installation and Setup

  1. Clone the Repository:
git clone https://github.com/MAY55A/Kutuby
cd kutuby
  1. Setup MySQL Database: The application is configured to connect to a MySQL database named kutuby, it creates it automatically if it does not exist. The connection settings are specified in the application.properties file:
spring.datasource.url=jdbc:mysql://localhost:3306/kutuby?createDatabaseIfNotExist=true&useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
  1. Run the Application: Uncomment the commandLineRunner beans in the KutubyApplication class during the first run to initialize roles and add admin and sample books.
//@Bean
CommandLineRunner commandLineRunnerUserDetails(UserService userService, RoleService roleService) {...}

//@Bean
CommandLineRunner commandLineRunnerBooks(BookService bookService) {...}
  1. Logging: The logs are stored in the logs folder inside the project directory. You can modify the path or settings in the application.properties.
logging.logback.rollingpolicy.file-name-pattern=C:/Users/mayss/Desktop/kutuby/Kutuby/logs/%d{yyyy-MM-dd}.%i.log
  1. Spring Security: Default security credentials for debugging purposes:
spring.security.user.name=user
spring.security.user.password=password
  1. Run the Application:
./mvnw spring-boot:run

Future Improvements

  • Site Recommendations
  • Comments on Collections
  • User Notifications
  • Comment Moderation by Admins

Contributing

If you'd like to contribute to Kutuby, feel free to open issues or submit pull requests.

License

This project is licensed under the MIT License.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors