{"id":18584389,"url":"https://github.com/androidlord/book-social-network-api","last_synced_at":"2026-05-07T01:07:37.556Z","repository":{"id":252804624,"uuid":"837636929","full_name":"AndroidLord/book-social-network-API","owner":"AndroidLord","description":"Spring Boot-powered REST API for a book-centric social platform.... check it out here.!","archived":false,"fork":false,"pushed_at":"2024-08-12T15:01:32.000Z","size":42,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-17T16:51:59.479Z","etag":null,"topics":["backend-api","java","postgresql","spring-boot","spring-data-jpa","spring-security","springboot","springframework"],"latest_commit_sha":null,"homepage":"","language":"Java","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/AndroidLord.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-03T15:04:19.000Z","updated_at":"2024-09-02T06:39:19.000Z","dependencies_parsed_at":"2024-08-12T17:18:59.246Z","dependency_job_id":"eef1d938-cc79-42eb-b0e4-ce1dce00bc02","html_url":"https://github.com/AndroidLord/book-social-network-API","commit_stats":null,"previous_names":["androidlord/book-social-network-api"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndroidLord%2Fbook-social-network-API","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndroidLord%2Fbook-social-network-API/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndroidLord%2Fbook-social-network-API/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndroidLord%2Fbook-social-network-API/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AndroidLord","download_url":"https://codeload.github.com/AndroidLord/book-social-network-API/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254473774,"owners_count":22077168,"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":["backend-api","java","postgresql","spring-boot","spring-data-jpa","spring-security","springboot","springframework"],"created_at":"2024-11-07T00:27:21.600Z","updated_at":"2026-05-07T01:07:37.529Z","avatar_url":"https://github.com/AndroidLord.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Book Social Network API Overview\n\nThe **Book Social Network API** is a comprehensive platform designed for book distribution and management. It is built using **Spring Boot**, **Spring JPA**, **Lombok**, **Spring Security**, and **Swagger UI**, following the **MVC architecture**. The API provides various functionalities related to book management, user authentication, feedback, and more.\n\n## **Brief Overview:**\n- User Authentication and Authorization\n- Book Management\n- Feedback Management\n- Book History Management\n- Security and Exception Handling\n- Database\n\n  \n## Key Features\n\n### 1. **User Authentication and Authorization**:\n   - **JWT Authentication**: Secure endpoints with JSON Web Tokens.\n   - **Email Verification**: Adds an extra layer of security with account activation through email verification.\n   - Example API Paths:\n     - **Register User**: `POST https://localhost:8080/auth/register`\n     - **Authenticate User**: `POST https://localhost:8080/auth/authenticate`\n     - **Activate Account**: `GET https://localhost:8080/auth/activate-account?token={token}`\n\n### 2. **Book Management**:\n   - **CRUD Operations**: Manage books with functionalities to create, update, delete, and retrieve books.\n   - **Archiving and Publishing**: Books can be archived or published.\n   - **Two-Way Book Return Policy**: Handles book lending with agreements between lender and owner.\n   - **Book Cover Management**: Allows uploading and updating of book cover images.\n   - **Pagination**: Lists of books are paginated for better performance.\n   - Example API Paths:\n     - **Create Book**: `POST https://localhost:8080/book`\n     - **Get Book by ID**: `GET https://localhost:8080/book/{book-id}`\n     - **Get All Books**: `GET https://localhost:8080/book`\n     - **Get Books by Owner**: `GET https://localhost:8080/book/owner`\n     - **Get Borrowed Books**: `GET https://localhost:8080/book/borrowed`\n     - **Get Returned Books**: `GET https://localhost:8080/book/returned`\n     - **Update Shareable Status**: `PATCH https://localhost:8080/book/shareable/{book-id}`\n     - **Update Archive Status**: `PATCH https://localhost:8080/book/archive/{book-id}`\n     - **Borrow Book**: `POST https://localhost:8080/book/borrow/{book-id}`\n     - **Return Borrowed Book**: `POST https://localhost:8080/book/borrow/return/{book-id}`\n     - **Approve Return**: `POST https://localhost:8080/book/borrow/return/approve/{book-id}`\n     - **Upload Book Cover**: `POST https://localhost:8080/book/cover/{book-id}`\n\n### 3. **Feedback Management**:\n   - **CRUD Operations**: Users can provide feedback on books, with pagination support.\n   - Example API Paths:\n     - **Save Feedback**: `POST https://localhost:8080/feedback`\n     - **Get Feedback by Book ID**: `GET https://localhost:8080/feedback/book/{bookId}`\n\n### 4. **Book History Management**:\n   - **Track User and Book History**: Keep detailed records of book transactions and user interactions.\n\n### 5. **Security and Exception Handling**:\n   - **Custom Exceptions**: Implement custom exception handling for various error scenarios.\n   - **Exception Handlers**: Manage exceptions gracefully across the application.\n   - **Filter for Unauthenticated Access**: Registration and authentication endpoints are accessible without JWT verification.\n\n## Technical Stack\n\n- **Backend Framework**: Spring Boot\n- **Data Persistence**: Spring JPA (Java Persistence API)\n- **Security**: Spring Security with JWT for authentication and email verification for account activation\n- **Database**: PostgreSQL\n- **Utilities**: Lombok for reducing boilerplate code\n- **Documentation**: Swagger UI for API documentation\n- **Architecture**: MVC (Model-View-Controller)\n- **File Handling**: Multipart file handling for book cover uploads\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandroidlord%2Fbook-social-network-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandroidlord%2Fbook-social-network-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandroidlord%2Fbook-social-network-api/lists"}