{"id":23768864,"url":"https://github.com/surajsajwan00/booknest","last_synced_at":"2026-04-12T09:46:44.165Z","repository":{"id":252543496,"uuid":"840758692","full_name":"surajsajwan00/BookNest","owner":"surajsajwan00","description":"Social networking site for authors and book enthusiasts","archived":false,"fork":false,"pushed_at":"2024-08-11T09:28:11.000Z","size":661,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-01T01:45:57.869Z","etag":null,"topics":["angular","java","javamail","jwt-authentication","springboot"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/surajsajwan00.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-10T15:42:25.000Z","updated_at":"2024-08-11T09:28:14.000Z","dependencies_parsed_at":"2024-08-10T16:29:16.373Z","dependency_job_id":"49742553-16a3-412e-a3bd-609761ba20ce","html_url":"https://github.com/surajsajwan00/BookNest","commit_stats":null,"previous_names":["surajsajwan00/booknest"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surajsajwan00%2FBookNest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surajsajwan00%2FBookNest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surajsajwan00%2FBookNest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surajsajwan00%2FBookNest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/surajsajwan00","download_url":"https://codeload.github.com/surajsajwan00/BookNest/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239946915,"owners_count":19723018,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","java","javamail","jwt-authentication","springboot"],"created_at":"2025-01-01T01:46:37.828Z","updated_at":"2026-03-28T06:30:19.204Z","avatar_url":"https://github.com/surajsajwan00.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BookNest\n\n## Table of Contents\n\n- [Overview](#overview)\n- [Features](#features)\n- [Technologies Used](#technologies-used)\n    - [Backend (bookNest)](#backend-bookNest)\n    - [Frontend (booknest-ui)](#frontend-booknest-ui)\n- [Learning Objectives](#learning-objectives)\n- [Getting Started](#getting-started)\n\n## Overview\nBookNest is a vibrant social media platform designed for authors and book enthusiasts. Whether you're an aspiring writer, a seasoned author, or simply a lover of literature, BookNest provides a community where you can connect, share, and discover new books. Dive into a world of stories, engage with fellow book lovers, and let your passion for reading flourish. It offers features such as user registration, secure email validation, book management (including creation, updating, sharing, and archiving), book borrowing with checks for availability, book return functionality, and approval of book returns. The application ensures security using JWT tokens and adheres to best practices in REST API design. The backend is built with Java 21, Spring Boot 3.3.1 and Spring Security 6, while the frontend is developed using Angular with Bootstrap for styling.\n\n## Features\n- User Registration: Users can register for a new account.\n- Email Validation: Accounts are activated using secure email validation codes.\n- User Authentication: Existing users can log in to their accounts securely.\n- Book Management: Users can create, update, share, and archive their books.\n- Book Borrowing: Implements necessary checks to determine if a book is borrowable.\n- Book Returning: Users can return borrowed books.\n- Book Return Approval: Functionality to approve book returns.\n\n## Technologies Used\n\n### Backend (bookNest)\n\n- Java 21\n- Spring Boot 3.3.1\n- Spring Security 6\n- JWT Token Authentication\n- Spring Data JPA\n- JSR-303 and Spring Validation\n- OpenAPI and Swagger UI Documentation\n- Docker\n- GitHub Actions\n- Keycloak\n\n### Frontend (booknest-ui)\n\n- Angular\n- Component-Based Architecture\n- Lazy Loading\n- Authentication Guard\n- OpenAPI Generator for Angular\n- Bootstrap\n\n## Learning Objectives\n\nthis project helps in:\n\n- Designing a class diagram from business requirements\n- Implementing a mono repo approach\n- Securing an application using JWT tokens with Spring Security\n- Registering users and validating accounts via email\n- Utilizing inheritance with Spring Data JPA\n- Implementing the service layer and handling application exceptions\n- Object validation using JSR-303 and Spring Validation\n- Handling custom exceptions\n- Implementing pagination and REST API best practices\n- Using Spring Profiles for environment-specific configurations\n- Documenting APIs using OpenAPI and Swagger UI\n- Implementing business requirements and handling business exceptions\n- Dockerizing the infrastructure\n- CI/CD pipeline \u0026 deployment\n\n## Getting Started\n\nTo get started with the BookNest project, follow the setup instructions in the respective directories:\n\n- [Backend Setup Instructions]\n # BookNest - Backend Setup\n\n## Overview\n\nThis document provides instructions for setting up the backend of the BookNest project. Follow the steps below to get the backend up and running.\n\n## Prerequisites\n\n- Docker\n- Maven (for building the project)\n\n## Setup Instructions\n\n1. **Clone the Repository**\n\n   Start by cloning the repository to your local machine:\n\n   ```bash\n   git clone https://github.com/surajsajwan00/BookNest.git\n\n2. **Run Docker Compose**\n\n   Navigate to the root directory of the project and run Docker Compose to set up the required containers:\n\n   ```bash\n   docker-compose up -d\n\n3. **Navigate to the book-social-network directory**\n   ```bash\n   cd book-social-network\n\n4. **Install dependencies (assuming Maven is installed)**\n   ```bash\n    mvn clean install\n\n5. **Run the application**\n\n6. **Access the API documentation using Swagger UI**\n   Open a web browser and go to `http://localhost:8088/swagger-ui/index.html.\n\n- [Frontend Setup Instructions](booknest-ui/README.md)\n\n## Author\n\n- Suraj singh sajwan - [GitHub](https://github.com/surajsajwan00)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsurajsajwan00%2Fbooknest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsurajsajwan00%2Fbooknest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsurajsajwan00%2Fbooknest/lists"}