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.
- Introduction
- Overview
- Features
- Technologies
- Installation and Setup
- Future Improvements
- Contributing
- License
The goal of this project is to develop an online platform where users can:
- Discover new books.
- Create collections of books they want to read, are currently reading, or have finished.
- Rate and review books.
- Get personalized book recommendations.
Main Focus: The main feature of this platform is to allow users to create, manage, and explore collections of books.
-
Home
-
Login
-
Books catalog
-
Book details
-
Collection details
-
Leaderboard
-
Admin dashboard
-
Books management
-
Collections management
-
User management
- Account creation.
- Browse the book catalog.
- Browse collections.
- Perform advanced searches and apply filters.
- Log in and log out.
- Browse and search the book catalog.
- Browse collections.
- Manage their collections:
- Books in progress.
- Completed books.
- Books to read.
- Custom collections (public or private).
- Rate books.
- View other users' collections.
- Like other users' collections.
- Receive personalized book recommendations.
- Option to leave comments on books.
- Manage books in the catalog.
- Delete users.
- Delete collections.
- Manage comments on books and collections.
- 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.
- 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
- Clone the Repository:
git clone https://github.com/MAY55A/Kutuby
cd kutuby- 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.propertiesfile:
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- 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) {...}- 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- Spring Security: Default security credentials for debugging purposes:
spring.security.user.name=user
spring.security.user.password=password- Run the Application:
./mvnw spring-boot:run- Site Recommendations
- Comments on Collections
- User Notifications
- Comment Moderation by Admins
If you'd like to contribute to Kutuby, feel free to open issues or submit pull requests.
This project is licensed under the MIT License.









