# vanshikaposwal/oibsip architecture

> Architecture diagram of the GitHub repository vanshikaposwal/oibsip, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/vanshikaposwal/oibsip
- Repository: https://github.com/vanshikaposwal/oibsip

## Overview

This repository is a collection of OIBSIP internship projects, not one integrated application: a digital library management service, a desktop train reservation system, and a number-guessing game. The library’s principal flow is authenticated or anonymous API use, with book issue/return, reservation, fine, user, catalog, and contact-query capabilities represented by the controller/service/repository structure. The reservation project validates bookings, checks train availability, generates a PNR, and adjusts seats; it also has login, search, cancellation, and history screens. Only sampled sources establish detailed call wiring; other library branches reflect the file tree and are left unconnected where wiring is unverified.

Main entry points: [`JavaDev-Task5-DigitalLibraryManagementSystem/src/main/java/com/library/management/controller`](https://github.com/vanshikaposwal/oibsip/tree/main/JavaDev-Task5-DigitalLibraryManagementSystem/src/main/java/com/library/management/controller) (REST controllers), [`JavaDev-Task1-OnlineReservationSystem/src/main/java/com/vanshika/oibsip/reservation/ui`](https://github.com/vanshikaposwal/oibsip/tree/main/JavaDev-Task1-OnlineReservationSystem/src/main/java/com/vanshika/oibsip/reservation/ui) (Reservation screens), [`JavaDev-Task5-DigitalLibraryManagementSystem/src/main/java/com/library/management/repository`](https://github.com/vanshikaposwal/oibsip/tree/main/JavaDev-Task5-DigitalLibraryManagementSystem/src/main/java/com/library/management/repository) (Persistence repositories), [`JavaDev-Task1-OnlineReservationSystem/src/main/java/com/vanshika/oibsip/reservation/service/ReservationService.java`](https://github.com/vanshikaposwal/oibsip/blob/main/JavaDev-Task1-OnlineReservationSystem/src/main/java/com/vanshika/oibsip/reservation/service/ReservationService.java) (Booking service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_library["Digital Library"]
  node_library_api["REST controllers"]
  node_library_security["Security setup"]
  node_library_users["User service<br/>[UserService.java]"]
  node_library_catalog["Book service<br/>[BookService.java]"]
  node_library_issues["Issue service"]
  node_library_reservations["Reservation service"]
  node_library_fines["Fine service<br/>[FineService.java]"]
  node_library_queries["Contact queries"]
  node_library_repos["Persistence repositories"]
  node_library_db[("Relational database")]
end

subgraph group_reservation["Train Reservations"]
  node_reservation_ui["Reservation screens"]
  node_reservation_main["Application entry<br/>[Main.java]"]
  node_reservation_user_service["User service<br/>[UserService.java]"]
  node_reservation_train_service["Train service<br/>[TrainService.java]"]
  node_reservation_booking["Booking service"]
  node_reservation_dao["Data access"]
  node_reservation_db[("Reservation database")]
end

subgraph group_game["Number Guessing"]
  node_guessing_game["Guessing game"]
end

node_library_user(("Library user"))
node_reservation_user(("Reservation user"))
node_game_player(("Player"))

node_library_user -->|"sends requests"| node_library_api
node_library_api -->|"calls issue flow"| node_library_issues
node_library_api -->|"calls query flow"| node_library_queries
node_library_api -->|"calls user flow"| node_library_users
node_library_issues -->|"reads and writes"| node_library_repos
node_library_queries -->|"reads and writes"| node_library_repos
node_library_users -->|"reads and writes"| node_library_repos
node_library_repos -->|"persists records"| node_library_db
node_reservation_user -->|"uses screens"| node_reservation_ui
node_reservation_ui -->|"books or cancels"| node_reservation_booking
node_reservation_ui -->|"searches trains"| node_reservation_train_service
node_reservation_ui -->|"authenticates"| node_reservation_user_service
node_reservation_booking -->|"reads and writes"| node_reservation_dao
node_reservation_booking -->|"checks and adjusts seats"| node_reservation_train_service
node_reservation_dao -->|"queries records"| node_reservation_db
node_reservation_train_service -->|"queries trains"| node_reservation_dao
node_game_player -->|"plays"| node_guessing_game

click node_library_api "https://github.com/vanshikaposwal/oibsip/tree/main/JavaDev-Task5-DigitalLibraryManagementSystem/src/main/java/com/library/management/controller"
click node_library_security "https://github.com/vanshikaposwal/oibsip/tree/main/JavaDev-Task5-DigitalLibraryManagementSystem/src/main/java/com/library/management/config"
click node_library_users "https://github.com/vanshikaposwal/oibsip/blob/main/JavaDev-Task5-DigitalLibraryManagementSystem/src/main/java/com/library/management/service/UserService.java"
click node_library_catalog "https://github.com/vanshikaposwal/oibsip/blob/main/JavaDev-Task5-DigitalLibraryManagementSystem/src/main/java/com/library/management/service/BookService.java"
click node_library_issues "https://github.com/vanshikaposwal/oibsip/blob/main/JavaDev-Task5-DigitalLibraryManagementSystem/src/main/java/com/library/management/service/BookIssueService.java"
click node_library_reservations "https://github.com/vanshikaposwal/oibsip/blob/main/JavaDev-Task5-DigitalLibraryManagementSystem/src/main/java/com/library/management/service/ReservationService.java"
click node_library_fines "https://github.com/vanshikaposwal/oibsip/blob/main/JavaDev-Task5-DigitalLibraryManagementSystem/src/main/java/com/library/management/service/FineService.java"
click node_library_queries "https://github.com/vanshikaposwal/oibsip/blob/main/JavaDev-Task5-DigitalLibraryManagementSystem/src/main/java/com/library/management/service/ContactQueryService.java"
click node_library_repos "https://github.com/vanshikaposwal/oibsip/tree/main/JavaDev-Task5-DigitalLibraryManagementSystem/src/main/java/com/library/management/repository"
click node_reservation_ui "https://github.com/vanshikaposwal/oibsip/tree/main/JavaDev-Task1-OnlineReservationSystem/src/main/java/com/vanshika/oibsip/reservation/ui"
click node_reservation_main "https://github.com/vanshikaposwal/oibsip/blob/main/JavaDev-Task1-OnlineReservationSystem/src/main/java/com/vanshika/oibsip/reservation/Main.java"
click node_reservation_user_service "https://github.com/vanshikaposwal/oibsip/blob/main/JavaDev-Task1-OnlineReservationSystem/src/main/java/com/vanshika/oibsip/reservation/service/UserService.java"
click node_reservation_train_service "https://github.com/vanshikaposwal/oibsip/blob/main/JavaDev-Task1-OnlineReservationSystem/src/main/java/com/vanshika/oibsip/reservation/service/TrainService.java"
click node_reservation_booking "https://github.com/vanshikaposwal/oibsip/blob/main/JavaDev-Task1-OnlineReservationSystem/src/main/java/com/vanshika/oibsip/reservation/service/ReservationService.java"
click node_reservation_dao "https://github.com/vanshikaposwal/oibsip/tree/main/JavaDev-Task1-OnlineReservationSystem/src/main/java/com/vanshika/oibsip/reservation/dao"
click node_guessing_game "https://github.com/vanshikaposwal/oibsip/blob/main/JavaDev-Task2-NumberGussingGame/NumberGuessingGame.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_library_api,node_library_security,node_library_users,node_library_catalog,node_library_issues,node_library_reservations,node_library_fines,node_library_queries,node_library_repos,node_library_db,node_library_user,node_reservation_user toneBlue
class node_reservation_ui,node_reservation_main,node_reservation_user_service,node_reservation_train_service,node_reservation_booking,node_reservation_dao,node_reservation_db toneAmber
class node_guessing_game toneMint
class node_game_player toneIndigo
```

## Components

### Digital Library

- [REST controllers](https://github.com/vanshikaposwal/oibsip/tree/main/JavaDev-Task5-DigitalLibraryManagementSystem/src/main/java/com/library/management/controller): `JavaDev-Task5-DigitalLibraryManagementSystem/src/main/java/com/library/management/controller`
- [Security setup](https://github.com/vanshikaposwal/oibsip/tree/main/JavaDev-Task5-DigitalLibraryManagementSystem/src/main/java/com/library/management/config): `JavaDev-Task5-DigitalLibraryManagementSystem/src/main/java/com/library/management/config`
- [User service](https://github.com/vanshikaposwal/oibsip/blob/main/JavaDev-Task5-DigitalLibraryManagementSystem/src/main/java/com/library/management/service/UserService.java): `JavaDev-Task5-DigitalLibraryManagementSystem/src/main/java/com/library/management/service/UserService.java`
- [Book service](https://github.com/vanshikaposwal/oibsip/blob/main/JavaDev-Task5-DigitalLibraryManagementSystem/src/main/java/com/library/management/service/BookService.java): `JavaDev-Task5-DigitalLibraryManagementSystem/src/main/java/com/library/management/service/BookService.java`
- [Issue service](https://github.com/vanshikaposwal/oibsip/blob/main/JavaDev-Task5-DigitalLibraryManagementSystem/src/main/java/com/library/management/service/BookIssueService.java): `JavaDev-Task5-DigitalLibraryManagementSystem/src/main/java/com/library/management/service/BookIssueService.java`
- [Reservation service](https://github.com/vanshikaposwal/oibsip/blob/main/JavaDev-Task5-DigitalLibraryManagementSystem/src/main/java/com/library/management/service/ReservationService.java): `JavaDev-Task5-DigitalLibraryManagementSystem/src/main/java/com/library/management/service/ReservationService.java`
- [Fine service](https://github.com/vanshikaposwal/oibsip/blob/main/JavaDev-Task5-DigitalLibraryManagementSystem/src/main/java/com/library/management/service/FineService.java): `JavaDev-Task5-DigitalLibraryManagementSystem/src/main/java/com/library/management/service/FineService.java`
- [Contact queries](https://github.com/vanshikaposwal/oibsip/blob/main/JavaDev-Task5-DigitalLibraryManagementSystem/src/main/java/com/library/management/service/ContactQueryService.java): `JavaDev-Task5-DigitalLibraryManagementSystem/src/main/java/com/library/management/service/ContactQueryService.java`
- [Persistence repositories](https://github.com/vanshikaposwal/oibsip/tree/main/JavaDev-Task5-DigitalLibraryManagementSystem/src/main/java/com/library/management/repository): `JavaDev-Task5-DigitalLibraryManagementSystem/src/main/java/com/library/management/repository`
- **Relational database**

### Train Reservations

- [Reservation screens](https://github.com/vanshikaposwal/oibsip/tree/main/JavaDev-Task1-OnlineReservationSystem/src/main/java/com/vanshika/oibsip/reservation/ui): `JavaDev-Task1-OnlineReservationSystem/src/main/java/com/vanshika/oibsip/reservation/ui`
- [Application entry](https://github.com/vanshikaposwal/oibsip/blob/main/JavaDev-Task1-OnlineReservationSystem/src/main/java/com/vanshika/oibsip/reservation/Main.java): `JavaDev-Task1-OnlineReservationSystem/src/main/java/com/vanshika/oibsip/reservation/Main.java`
- [User service](https://github.com/vanshikaposwal/oibsip/blob/main/JavaDev-Task1-OnlineReservationSystem/src/main/java/com/vanshika/oibsip/reservation/service/UserService.java): `JavaDev-Task1-OnlineReservationSystem/src/main/java/com/vanshika/oibsip/reservation/service/UserService.java`
- [Train service](https://github.com/vanshikaposwal/oibsip/blob/main/JavaDev-Task1-OnlineReservationSystem/src/main/java/com/vanshika/oibsip/reservation/service/TrainService.java): `JavaDev-Task1-OnlineReservationSystem/src/main/java/com/vanshika/oibsip/reservation/service/TrainService.java`
- [Booking service](https://github.com/vanshikaposwal/oibsip/blob/main/JavaDev-Task1-OnlineReservationSystem/src/main/java/com/vanshika/oibsip/reservation/service/ReservationService.java): `JavaDev-Task1-OnlineReservationSystem/src/main/java/com/vanshika/oibsip/reservation/service/ReservationService.java`
- [Data access](https://github.com/vanshikaposwal/oibsip/tree/main/JavaDev-Task1-OnlineReservationSystem/src/main/java/com/vanshika/oibsip/reservation/dao): `JavaDev-Task1-OnlineReservationSystem/src/main/java/com/vanshika/oibsip/reservation/dao`
- **Reservation database**

### Number Guessing

- [Guessing game](https://github.com/vanshikaposwal/oibsip/blob/main/JavaDev-Task2-NumberGussingGame/NumberGuessingGame.java): `JavaDev-Task2-NumberGussingGame/NumberGuessingGame.java`

### Other components

- **Library user**
- **Reservation user**
- **Player**

## Connections

- Library user → REST controllers: sends requests
- REST controllers → Issue service: calls issue flow
- REST controllers → Contact queries: calls query flow
- REST controllers → User service: calls user flow
- Issue service → Persistence repositories: reads and writes
- Contact queries → Persistence repositories: reads and writes
- User service → Persistence repositories: reads and writes
- Persistence repositories → Relational database: persists records
- Reservation user → Reservation screens: uses screens
- Reservation screens → Booking service: books or cancels
- Reservation screens → Train service: searches trains
- Reservation screens → User service: authenticates
- Booking service → Data access: reads and writes
- Booking service → Train service: checks and adjusts seats
- Data access → Reservation database: queries records
- Train service → Data access: queries trains
- Player → Guessing game: plays
