├── .DS_Store ├── .gitignore ├── .idea ├── .gitignore ├── compiler.xml ├── encodings.xml ├── jarRepositories.xml ├── jpa-buddy.xml ├── misc.xml └── vcs.xml ├── README.md ├── notes ├── 00-uml-diagrams-hw.pdf ├── 00-uml-diagrams.md ├── 00-uml-diagrams.pdf ├── 01-design-a-pen-worksheet.md ├── 01-design-a-pen.md ├── 01-design-a-pen.pdf ├── 02-design-tic-tac-toe-in-class.md ├── 02-design-tic-tac-toe-in-class.pdf ├── 02-design-tic-tac-toe-worksheet.md ├── 02-design-tic-tac-toe.md ├── 03-design-snakes-ladders-hw.pdf ├── 03-design-snakes-ladders-in-class.md ├── 03-design-snakes-ladders-in-class.pdf ├── 03-design-snakes-ladders.md ├── 04-design-a-parking-lot-answers.md ├── 04-design-a-parking-lot-answers.pdf ├── 04-design-a-parking-lot-hw-02.pdf ├── 04-design-a-parking-lot-hw.pdf ├── 04-design-a-parking-lot-worksheet.md ├── 04-design-a-parking-lot.md ├── 05-design-a-cache-hw.pdf ├── 06-design-book-my-show-hw.pdf ├── 06-design-book-my-show-worksheet.md ├── 06-design-book-my-show.md ├── 06-design-book-my-show.pdf ├── 07-design-splitwise-hw-02.pdf ├── 07-design-splitwise-hw-03.pdf ├── 07-design-splitwise-hw.pdf ├── 07-design-splitwise-worksheet.md └── 07-design-splitwise.md ├── pom.xml ├── practice-problems ├── 01-design-atm-worksheet.md ├── 02-design-chess-worksheet.md ├── 03-design-restaurant-mgmt-worksheet.md └── README.md ├── src ├── main │ ├── java │ │ └── com │ │ │ └── scaler │ │ │ └── lld │ │ │ ├── .DS_Store │ │ │ ├── App.java │ │ │ ├── bookmyshow │ │ │ ├── controllers │ │ │ │ ├── AdminController.java │ │ │ │ ├── BookingController.java │ │ │ │ ├── CustomerController.java │ │ │ │ └── MovieController.java │ │ │ ├── dtos │ │ │ │ ├── CreateBookingDTO.java │ │ │ │ ├── CreateCustomerDTO.java │ │ │ │ └── CreateUserDTO.java │ │ │ ├── models │ │ │ │ ├── Admin.java │ │ │ │ ├── Auditable.java │ │ │ │ ├── Booking.java │ │ │ │ ├── BookingStatus.java │ │ │ │ ├── Cinema.java │ │ │ │ ├── CinemaHall.java │ │ │ │ ├── Customer.java │ │ │ │ ├── HallSeat.java │ │ │ │ ├── Movie.java │ │ │ │ ├── Role.java │ │ │ │ ├── Show.java │ │ │ │ ├── ShowSeat.java │ │ │ │ └── User.java │ │ │ ├── repositories │ │ │ │ └── interfaces │ │ │ │ │ ├── AdminRepository.java │ │ │ │ │ ├── BookingRepository.java │ │ │ │ │ ├── CinemaRepository.java │ │ │ │ │ ├── CustomerRepository.java │ │ │ │ │ ├── HallRepository.java │ │ │ │ │ ├── HallSeatRepository.java │ │ │ │ │ ├── MovieRepository.java │ │ │ │ │ ├── RoleRepository.java │ │ │ │ │ ├── ShowRepository.java │ │ │ │ │ ├── ShowSeatRepository.java │ │ │ │ │ └── UserRepository.java │ │ │ └── services │ │ │ │ ├── BookingService.java │ │ │ │ ├── CustomerService.java │ │ │ │ ├── MovieService.java │ │ │ │ ├── RefundService.java │ │ │ │ ├── RoleService.java │ │ │ │ ├── ShowSeatService.java │ │ │ │ ├── UserService.java │ │ │ │ └── password │ │ │ │ ├── PasswordEncoder.java │ │ │ │ └── PlainTextPasswordEncoder.java │ │ │ ├── cache │ │ │ ├── InMemoryCache.java │ │ │ ├── eviction │ │ │ │ └── RandomEvictionStrategy.java │ │ │ ├── interfaces │ │ │ │ ├── Cache.java │ │ │ │ ├── Consumer.java │ │ │ │ ├── EvictionStrategy.java │ │ │ │ ├── Producer.java │ │ │ │ └── WriteStrategy.java │ │ │ └── models │ │ │ │ └── EventType.java │ │ │ ├── inclass │ │ │ ├── cache │ │ │ │ ├── InMemoryCache.java │ │ │ │ ├── eviction │ │ │ │ │ ├── EvictionStrategy.java │ │ │ │ │ └── RandomEvictionStrategy.java │ │ │ │ └── interfaces │ │ │ │ │ └── Cache.java │ │ │ └── parking │ │ │ │ ├── controllers │ │ │ │ ├── ParkingLotController.java │ │ │ │ ├── ParkingSpotController.java │ │ │ │ └── TicketController.java │ │ │ │ ├── dtos │ │ │ │ └── CreateLotRequest.java │ │ │ │ ├── models │ │ │ │ ├── BaseModel.java │ │ │ │ ├── DisplayBoard.java │ │ │ │ ├── EntryGate.java │ │ │ │ ├── ExitGate.java │ │ │ │ ├── Gate.java │ │ │ │ ├── Invoice.java │ │ │ │ ├── ParkingAttendant.java │ │ │ │ ├── ParkingFloor.java │ │ │ │ ├── ParkingLot.java │ │ │ │ ├── ParkingSpot.java │ │ │ │ ├── Payment.java │ │ │ │ ├── PaymentCounter.java │ │ │ │ ├── PaymentStatus.java │ │ │ │ ├── PaymentType.java │ │ │ │ ├── SpotStatus.java │ │ │ │ ├── SpotType.java │ │ │ │ ├── Ticket.java │ │ │ │ ├── TicketStatus.java │ │ │ │ ├── Vehicle.java │ │ │ │ └── VehicleType.java │ │ │ │ ├── repositories │ │ │ │ └── ParkingLotRepository.java │ │ │ │ └── services │ │ │ │ ├── ParkingLotService.java │ │ │ │ ├── ParkingSpotRepository.java │ │ │ │ ├── ParkingSpotService.java │ │ │ │ └── TickerService.java │ │ │ ├── parkinglot │ │ │ ├── README.md │ │ │ ├── controllers │ │ │ │ ├── EntryGateController.java │ │ │ │ └── ExitGateController.java │ │ │ ├── dtos │ │ │ │ └── GetTicketDTO.java │ │ │ ├── models │ │ │ │ ├── BaseModel.java │ │ │ │ ├── DisplayBoard.java │ │ │ │ ├── EntryGate.java │ │ │ │ ├── ExitGate.java │ │ │ │ ├── Gate.java │ │ │ │ ├── Invoice.java │ │ │ │ ├── Operator.java │ │ │ │ ├── ParkingFloor.java │ │ │ │ ├── ParkingLot.java │ │ │ │ ├── ParkingSpot.java │ │ │ │ ├── Payment.java │ │ │ │ ├── PaymentStatus.java │ │ │ │ ├── PaymentType.java │ │ │ │ ├── SpotStatus.java │ │ │ │ ├── Ticket.java │ │ │ │ ├── TicketStatus.java │ │ │ │ ├── Vehicle.java │ │ │ │ └── VehicleType.java │ │ │ ├── repositories │ │ │ │ ├── ParkingSpotRepository.java │ │ │ │ └── TicketRepository.java │ │ │ ├── services │ │ │ │ ├── EntryGateService.java │ │ │ │ ├── FeeCalculatorService.java │ │ │ │ ├── ParkingSpotService.java │ │ │ │ ├── SlotAllocationService.java │ │ │ │ └── TicketService.java │ │ │ └── strategies │ │ │ │ ├── FeesCalculationFactory.java │ │ │ │ ├── FeesStrategy.java │ │ │ │ ├── FeesStrategyFactory.java │ │ │ │ ├── dynamic │ │ │ │ ├── DynamicFeesFactory.java │ │ │ │ └── SmallVehicleDynamicStrategy.java │ │ │ │ └── timebased │ │ │ │ ├── LargeVehicleTimeStrategy.java │ │ │ │ ├── MediumVehicleTimeStrategy.java │ │ │ │ ├── SmallVehicleTimeStrategy.java │ │ │ │ └── TimeBasedFeesStrategyFactory.java │ │ │ ├── pen │ │ │ ├── abstractclasses │ │ │ │ ├── FountainPen.java │ │ │ │ ├── GelPen.java │ │ │ │ ├── NonRefillablePen.java │ │ │ │ ├── Pen.java │ │ │ │ └── RefillablePen.java │ │ │ ├── factories │ │ │ │ └── PenFactory.java │ │ │ ├── interfaces │ │ │ │ ├── RefillPen.java │ │ │ │ └── Writable.java │ │ │ ├── models │ │ │ │ ├── GelPen.java │ │ │ │ ├── Ink.java │ │ │ │ ├── InkType.java │ │ │ │ ├── Nib.java │ │ │ │ ├── NibType.java │ │ │ │ ├── Pen.java │ │ │ │ ├── PenBody.java │ │ │ │ ├── PenInk.java │ │ │ │ ├── PenNib.java │ │ │ │ ├── PenType.java │ │ │ │ ├── Pencil.java │ │ │ │ └── Refill.java │ │ │ ├── multipleclasses │ │ │ │ ├── FountainPen.java │ │ │ │ ├── GelPen.java │ │ │ │ └── Pen.java │ │ │ ├── singleclass │ │ │ │ └── Pen.java │ │ │ ├── strategies │ │ │ │ ├── FillInkStrategy.java │ │ │ │ ├── RefillableStrategy.java │ │ │ │ ├── RoughWritingStrategy.java │ │ │ │ ├── SmoothWritingStrategy.java │ │ │ │ └── WritingStrategy.java │ │ │ ├── withbuilder │ │ │ │ └── Pen.java │ │ │ ├── withinterface │ │ │ │ ├── FountainPen.java │ │ │ │ ├── GelPen.java │ │ │ │ └── Pen.java │ │ │ └── withstrategy │ │ │ │ └── Pen.java │ │ │ ├── penv2 │ │ │ ├── interfaces │ │ │ │ └── RefillPen.java │ │ │ ├── models │ │ │ │ ├── FountainPen.java │ │ │ │ ├── GelPen.java │ │ │ │ ├── Ink.java │ │ │ │ ├── Nib.java │ │ │ │ ├── NibType.java │ │ │ │ ├── Pen.java │ │ │ │ ├── PenType.java │ │ │ │ ├── Refill.java │ │ │ │ └── RefillType.java │ │ │ └── strategies │ │ │ │ ├── SmoothWritingStrategy.java │ │ │ │ └── WritingStrategy.java │ │ │ ├── snakesladders │ │ │ ├── Client.java │ │ │ ├── commands │ │ │ │ ├── Command.java │ │ │ │ ├── CommandRegistry.java │ │ │ │ ├── CreateGame.java │ │ │ │ └── CreateUser.java │ │ │ ├── controllers │ │ │ │ ├── BoardController.java │ │ │ │ ├── GameController.java │ │ │ │ └── UserController.java │ │ │ ├── exceptions │ │ │ │ └── InvalidCommandException.java │ │ │ ├── models │ │ │ │ ├── BaseCell.java │ │ │ │ ├── Board.java │ │ │ │ ├── Cell.java │ │ │ │ ├── CellType.java │ │ │ │ ├── Colour.java │ │ │ │ ├── Dice.java │ │ │ │ ├── Game.java │ │ │ │ ├── GameRequest.java │ │ │ │ ├── Ladder.java │ │ │ │ ├── Piece.java │ │ │ │ ├── Player.java │ │ │ │ ├── Snake.java │ │ │ │ └── User.java │ │ │ ├── repositories │ │ │ │ ├── GameRepository.java │ │ │ │ └── UserRepository.java │ │ │ └── services │ │ │ │ ├── BoardService.java │ │ │ │ ├── GameService.java │ │ │ │ └── UserService.java │ │ │ └── tictactoe │ │ │ ├── README.md │ │ │ ├── models │ │ │ ├── Board.java │ │ │ ├── BoardCell.java │ │ │ ├── Bot.java │ │ │ ├── Game.java │ │ │ ├── GameSymbol.java │ │ │ ├── HumanPlayer.java │ │ │ ├── Player.java │ │ │ └── User.java │ │ │ └── strategies │ │ │ ├── DefaultPlayingStrategy.java │ │ │ ├── PlayingStrategy.java │ │ │ └── WinningStrategy.java │ └── resources │ │ └── application.properties └── test │ └── java │ └── com │ └── scaler │ └── lld │ ├── AppTest.java │ ├── cache │ └── CacheTest.java │ ├── inclass │ ├── cache │ │ └── CacheTest.java │ └── parking │ │ └── ParkingLotTest.java │ ├── pen │ ├── PenTest.java │ ├── abstractclasses │ │ └── PenTest.java │ ├── multipleclasses │ │ └── PenTest.java │ ├── singleclass │ │ └── PenTest.java │ └── withinterface │ │ └── PenTest.java │ ├── snakesladders │ └── services │ │ └── GameServiceTest.java │ └── tictactoe │ └── TicTacToeTest.java └── target └── classes └── application.properties /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/.DS_Store -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/.gitignore -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/.idea/.gitignore -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/.idea/compiler.xml -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/.idea/encodings.xml -------------------------------------------------------------------------------- /.idea/jarRepositories.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/.idea/jarRepositories.xml -------------------------------------------------------------------------------- /.idea/jpa-buddy.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/.idea/jpa-buddy.xml -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/.idea/misc.xml -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/.idea/vcs.xml -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/README.md -------------------------------------------------------------------------------- /notes/00-uml-diagrams-hw.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/notes/00-uml-diagrams-hw.pdf -------------------------------------------------------------------------------- /notes/00-uml-diagrams.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/notes/00-uml-diagrams.md -------------------------------------------------------------------------------- /notes/00-uml-diagrams.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/notes/00-uml-diagrams.pdf -------------------------------------------------------------------------------- /notes/01-design-a-pen-worksheet.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/notes/01-design-a-pen-worksheet.md -------------------------------------------------------------------------------- /notes/01-design-a-pen.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/notes/01-design-a-pen.md -------------------------------------------------------------------------------- /notes/01-design-a-pen.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/notes/01-design-a-pen.pdf -------------------------------------------------------------------------------- /notes/02-design-tic-tac-toe-in-class.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/notes/02-design-tic-tac-toe-in-class.md -------------------------------------------------------------------------------- /notes/02-design-tic-tac-toe-in-class.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/notes/02-design-tic-tac-toe-in-class.pdf -------------------------------------------------------------------------------- /notes/02-design-tic-tac-toe-worksheet.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/notes/02-design-tic-tac-toe-worksheet.md -------------------------------------------------------------------------------- /notes/02-design-tic-tac-toe.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/notes/02-design-tic-tac-toe.md -------------------------------------------------------------------------------- /notes/03-design-snakes-ladders-hw.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/notes/03-design-snakes-ladders-hw.pdf -------------------------------------------------------------------------------- /notes/03-design-snakes-ladders-in-class.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/notes/03-design-snakes-ladders-in-class.md -------------------------------------------------------------------------------- /notes/03-design-snakes-ladders-in-class.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/notes/03-design-snakes-ladders-in-class.pdf -------------------------------------------------------------------------------- /notes/03-design-snakes-ladders.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/notes/03-design-snakes-ladders.md -------------------------------------------------------------------------------- /notes/04-design-a-parking-lot-answers.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/notes/04-design-a-parking-lot-answers.md -------------------------------------------------------------------------------- /notes/04-design-a-parking-lot-answers.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/notes/04-design-a-parking-lot-answers.pdf -------------------------------------------------------------------------------- /notes/04-design-a-parking-lot-hw-02.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/notes/04-design-a-parking-lot-hw-02.pdf -------------------------------------------------------------------------------- /notes/04-design-a-parking-lot-hw.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/notes/04-design-a-parking-lot-hw.pdf -------------------------------------------------------------------------------- /notes/04-design-a-parking-lot-worksheet.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/notes/04-design-a-parking-lot-worksheet.md -------------------------------------------------------------------------------- /notes/04-design-a-parking-lot.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/notes/04-design-a-parking-lot.md -------------------------------------------------------------------------------- /notes/05-design-a-cache-hw.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/notes/05-design-a-cache-hw.pdf -------------------------------------------------------------------------------- /notes/06-design-book-my-show-hw.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/notes/06-design-book-my-show-hw.pdf -------------------------------------------------------------------------------- /notes/06-design-book-my-show-worksheet.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/notes/06-design-book-my-show-worksheet.md -------------------------------------------------------------------------------- /notes/06-design-book-my-show.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/notes/06-design-book-my-show.md -------------------------------------------------------------------------------- /notes/06-design-book-my-show.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/notes/06-design-book-my-show.pdf -------------------------------------------------------------------------------- /notes/07-design-splitwise-hw-02.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/notes/07-design-splitwise-hw-02.pdf -------------------------------------------------------------------------------- /notes/07-design-splitwise-hw-03.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/notes/07-design-splitwise-hw-03.pdf -------------------------------------------------------------------------------- /notes/07-design-splitwise-hw.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/notes/07-design-splitwise-hw.pdf -------------------------------------------------------------------------------- /notes/07-design-splitwise-worksheet.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/notes/07-design-splitwise-worksheet.md -------------------------------------------------------------------------------- /notes/07-design-splitwise.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/notes/07-design-splitwise.md -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/pom.xml -------------------------------------------------------------------------------- /practice-problems/01-design-atm-worksheet.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/practice-problems/01-design-atm-worksheet.md -------------------------------------------------------------------------------- /practice-problems/02-design-chess-worksheet.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/practice-problems/02-design-chess-worksheet.md -------------------------------------------------------------------------------- /practice-problems/03-design-restaurant-mgmt-worksheet.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/practice-problems/03-design-restaurant-mgmt-worksheet.md -------------------------------------------------------------------------------- /practice-problems/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/practice-problems/README.md -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/.DS_Store -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/App.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/App.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/controllers/AdminController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/controllers/AdminController.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/controllers/BookingController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/controllers/BookingController.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/controllers/CustomerController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/controllers/CustomerController.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/controllers/MovieController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/controllers/MovieController.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/dtos/CreateBookingDTO.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/dtos/CreateBookingDTO.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/dtos/CreateCustomerDTO.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/dtos/CreateCustomerDTO.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/dtos/CreateUserDTO.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/dtos/CreateUserDTO.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/models/Admin.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/models/Admin.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/models/Auditable.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/models/Auditable.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/models/Booking.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/models/Booking.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/models/BookingStatus.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/models/BookingStatus.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/models/Cinema.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/models/Cinema.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/models/CinemaHall.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/models/CinemaHall.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/models/Customer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/models/Customer.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/models/HallSeat.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/models/HallSeat.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/models/Movie.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/models/Movie.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/models/Role.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/models/Role.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/models/Show.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/models/Show.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/models/ShowSeat.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/models/ShowSeat.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/models/User.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/models/User.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/repositories/interfaces/AdminRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/repositories/interfaces/AdminRepository.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/repositories/interfaces/BookingRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/repositories/interfaces/BookingRepository.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/repositories/interfaces/CinemaRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/repositories/interfaces/CinemaRepository.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/repositories/interfaces/CustomerRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/repositories/interfaces/CustomerRepository.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/repositories/interfaces/HallRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/repositories/interfaces/HallRepository.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/repositories/interfaces/HallSeatRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/repositories/interfaces/HallSeatRepository.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/repositories/interfaces/MovieRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/repositories/interfaces/MovieRepository.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/repositories/interfaces/RoleRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/repositories/interfaces/RoleRepository.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/repositories/interfaces/ShowRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/repositories/interfaces/ShowRepository.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/repositories/interfaces/ShowSeatRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/repositories/interfaces/ShowSeatRepository.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/repositories/interfaces/UserRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/repositories/interfaces/UserRepository.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/services/BookingService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/services/BookingService.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/services/CustomerService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/services/CustomerService.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/services/MovieService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/services/MovieService.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/services/RefundService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/services/RefundService.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/services/RoleService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/services/RoleService.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/services/ShowSeatService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/services/ShowSeatService.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/services/UserService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/services/UserService.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/services/password/PasswordEncoder.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/services/password/PasswordEncoder.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/bookmyshow/services/password/PlainTextPasswordEncoder.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/bookmyshow/services/password/PlainTextPasswordEncoder.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/cache/InMemoryCache.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/cache/InMemoryCache.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/cache/eviction/RandomEvictionStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/cache/eviction/RandomEvictionStrategy.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/cache/interfaces/Cache.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/cache/interfaces/Cache.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/cache/interfaces/Consumer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/cache/interfaces/Consumer.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/cache/interfaces/EvictionStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/cache/interfaces/EvictionStrategy.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/cache/interfaces/Producer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/cache/interfaces/Producer.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/cache/interfaces/WriteStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/cache/interfaces/WriteStrategy.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/cache/models/EventType.java: -------------------------------------------------------------------------------- 1 | package com.scaler.lld.cache.models; 2 | 3 | public enum EventType { 4 | READ, WRITE, DELETE 5 | } 6 | -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/cache/InMemoryCache.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/inclass/cache/InMemoryCache.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/cache/eviction/EvictionStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/inclass/cache/eviction/EvictionStrategy.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/cache/eviction/RandomEvictionStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/inclass/cache/eviction/RandomEvictionStrategy.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/cache/interfaces/Cache.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/inclass/cache/interfaces/Cache.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/parking/controllers/ParkingLotController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/inclass/parking/controllers/ParkingLotController.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/parking/controllers/ParkingSpotController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/inclass/parking/controllers/ParkingSpotController.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/parking/controllers/TicketController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/inclass/parking/controllers/TicketController.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/parking/dtos/CreateLotRequest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/inclass/parking/dtos/CreateLotRequest.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/parking/models/BaseModel.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/inclass/parking/models/BaseModel.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/parking/models/DisplayBoard.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/inclass/parking/models/DisplayBoard.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/parking/models/EntryGate.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/inclass/parking/models/EntryGate.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/parking/models/ExitGate.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/inclass/parking/models/ExitGate.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/parking/models/Gate.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/inclass/parking/models/Gate.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/parking/models/Invoice.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/inclass/parking/models/Invoice.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/parking/models/ParkingAttendant.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/inclass/parking/models/ParkingAttendant.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/parking/models/ParkingFloor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/inclass/parking/models/ParkingFloor.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/parking/models/ParkingLot.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/inclass/parking/models/ParkingLot.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/parking/models/ParkingSpot.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/inclass/parking/models/ParkingSpot.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/parking/models/Payment.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/inclass/parking/models/Payment.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/parking/models/PaymentCounter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/inclass/parking/models/PaymentCounter.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/parking/models/PaymentStatus.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/inclass/parking/models/PaymentStatus.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/parking/models/PaymentType.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/inclass/parking/models/PaymentType.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/parking/models/SpotStatus.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/inclass/parking/models/SpotStatus.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/parking/models/SpotType.java: -------------------------------------------------------------------------------- 1 | package com.scaler.lld.inclass.parking.models; 2 | 3 | public enum SpotType { 4 | SMALL, MEDIUM, LARGE 5 | } 6 | -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/parking/models/Ticket.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/inclass/parking/models/Ticket.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/parking/models/TicketStatus.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/inclass/parking/models/TicketStatus.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/parking/models/Vehicle.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/inclass/parking/models/Vehicle.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/parking/models/VehicleType.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/inclass/parking/models/VehicleType.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/parking/repositories/ParkingLotRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/inclass/parking/repositories/ParkingLotRepository.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/parking/services/ParkingLotService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/inclass/parking/services/ParkingLotService.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/parking/services/ParkingSpotRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/inclass/parking/services/ParkingSpotRepository.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/parking/services/ParkingSpotService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/inclass/parking/services/ParkingSpotService.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/inclass/parking/services/TickerService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/inclass/parking/services/TickerService.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/README.md -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/controllers/EntryGateController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/controllers/EntryGateController.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/controllers/ExitGateController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/controllers/ExitGateController.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/dtos/GetTicketDTO.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/dtos/GetTicketDTO.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/models/BaseModel.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/models/BaseModel.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/models/DisplayBoard.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/models/DisplayBoard.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/models/EntryGate.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/models/EntryGate.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/models/ExitGate.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/models/ExitGate.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/models/Gate.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/models/Gate.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/models/Invoice.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/models/Invoice.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/models/Operator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/models/Operator.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/models/ParkingFloor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/models/ParkingFloor.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/models/ParkingLot.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/models/ParkingLot.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/models/ParkingSpot.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/models/ParkingSpot.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/models/Payment.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/models/Payment.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/models/PaymentStatus.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/models/PaymentStatus.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/models/PaymentType.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/models/PaymentType.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/models/SpotStatus.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/models/SpotStatus.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/models/Ticket.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/models/Ticket.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/models/TicketStatus.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/models/TicketStatus.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/models/Vehicle.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/models/Vehicle.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/models/VehicleType.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/models/VehicleType.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/repositories/ParkingSpotRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/repositories/ParkingSpotRepository.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/repositories/TicketRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/repositories/TicketRepository.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/services/EntryGateService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/services/EntryGateService.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/services/FeeCalculatorService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/services/FeeCalculatorService.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/services/ParkingSpotService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/services/ParkingSpotService.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/services/SlotAllocationService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/services/SlotAllocationService.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/services/TicketService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/services/TicketService.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/strategies/FeesCalculationFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/strategies/FeesCalculationFactory.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/strategies/FeesStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/strategies/FeesStrategy.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/strategies/FeesStrategyFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/strategies/FeesStrategyFactory.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/strategies/dynamic/DynamicFeesFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/strategies/dynamic/DynamicFeesFactory.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/strategies/dynamic/SmallVehicleDynamicStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/strategies/dynamic/SmallVehicleDynamicStrategy.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/strategies/timebased/LargeVehicleTimeStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/strategies/timebased/LargeVehicleTimeStrategy.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/strategies/timebased/MediumVehicleTimeStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/strategies/timebased/MediumVehicleTimeStrategy.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/strategies/timebased/SmallVehicleTimeStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/strategies/timebased/SmallVehicleTimeStrategy.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/parkinglot/strategies/timebased/TimeBasedFeesStrategyFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/parkinglot/strategies/timebased/TimeBasedFeesStrategyFactory.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/abstractclasses/FountainPen.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/abstractclasses/FountainPen.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/abstractclasses/GelPen.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/abstractclasses/GelPen.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/abstractclasses/NonRefillablePen.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/abstractclasses/NonRefillablePen.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/abstractclasses/Pen.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/abstractclasses/Pen.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/abstractclasses/RefillablePen.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/abstractclasses/RefillablePen.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/factories/PenFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/factories/PenFactory.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/interfaces/RefillPen.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/interfaces/RefillPen.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/interfaces/Writable.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/interfaces/Writable.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/models/GelPen.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/models/GelPen.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/models/Ink.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/models/Ink.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/models/InkType.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/models/InkType.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/models/Nib.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/models/Nib.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/models/NibType.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/models/NibType.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/models/Pen.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/models/Pen.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/models/PenBody.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/models/PenBody.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/models/PenInk.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/models/PenInk.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/models/PenNib.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/models/PenNib.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/models/PenType.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/models/PenType.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/models/Pencil.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/models/Pencil.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/models/Refill.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/models/Refill.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/multipleclasses/FountainPen.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/multipleclasses/FountainPen.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/multipleclasses/GelPen.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/multipleclasses/GelPen.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/multipleclasses/Pen.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/multipleclasses/Pen.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/singleclass/Pen.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/singleclass/Pen.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/strategies/FillInkStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/strategies/FillInkStrategy.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/strategies/RefillableStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/strategies/RefillableStrategy.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/strategies/RoughWritingStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/strategies/RoughWritingStrategy.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/strategies/SmoothWritingStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/strategies/SmoothWritingStrategy.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/strategies/WritingStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/strategies/WritingStrategy.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/withbuilder/Pen.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/withbuilder/Pen.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/withinterface/FountainPen.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/withinterface/FountainPen.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/withinterface/GelPen.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/withinterface/GelPen.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/withinterface/Pen.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/withinterface/Pen.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/pen/withstrategy/Pen.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/pen/withstrategy/Pen.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/penv2/interfaces/RefillPen.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/penv2/interfaces/RefillPen.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/penv2/models/FountainPen.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/penv2/models/FountainPen.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/penv2/models/GelPen.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/penv2/models/GelPen.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/penv2/models/Ink.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/penv2/models/Ink.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/penv2/models/Nib.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/penv2/models/Nib.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/penv2/models/NibType.java: -------------------------------------------------------------------------------- 1 | package com.scaler.lld.penv2.models; 2 | 3 | public enum NibType { 4 | SILVER, GOLD, PLASTIC 5 | } 6 | -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/penv2/models/Pen.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/penv2/models/Pen.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/penv2/models/PenType.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/penv2/models/PenType.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/penv2/models/Refill.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/penv2/models/Refill.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/penv2/models/RefillType.java: -------------------------------------------------------------------------------- 1 | package com.scaler.lld.penv2.models; 2 | 3 | public enum RefillType { 4 | GEL, BALL 5 | } 6 | -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/penv2/strategies/SmoothWritingStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/penv2/strategies/SmoothWritingStrategy.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/penv2/strategies/WritingStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/penv2/strategies/WritingStrategy.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/snakesladders/Client.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/snakesladders/Client.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/snakesladders/commands/Command.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/snakesladders/commands/Command.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/snakesladders/commands/CommandRegistry.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/snakesladders/commands/CommandRegistry.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/snakesladders/commands/CreateGame.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/snakesladders/commands/CreateGame.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/snakesladders/commands/CreateUser.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/snakesladders/commands/CreateUser.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/snakesladders/controllers/BoardController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/snakesladders/controllers/BoardController.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/snakesladders/controllers/GameController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/snakesladders/controllers/GameController.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/snakesladders/controllers/UserController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/snakesladders/controllers/UserController.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/snakesladders/exceptions/InvalidCommandException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/snakesladders/exceptions/InvalidCommandException.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/snakesladders/models/BaseCell.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/snakesladders/models/BaseCell.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/snakesladders/models/Board.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/snakesladders/models/Board.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/snakesladders/models/Cell.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/snakesladders/models/Cell.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/snakesladders/models/CellType.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/snakesladders/models/CellType.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/snakesladders/models/Colour.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/snakesladders/models/Colour.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/snakesladders/models/Dice.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/snakesladders/models/Dice.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/snakesladders/models/Game.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/snakesladders/models/Game.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/snakesladders/models/GameRequest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/snakesladders/models/GameRequest.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/snakesladders/models/Ladder.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/snakesladders/models/Ladder.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/snakesladders/models/Piece.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/snakesladders/models/Piece.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/snakesladders/models/Player.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/snakesladders/models/Player.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/snakesladders/models/Snake.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/snakesladders/models/Snake.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/snakesladders/models/User.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/snakesladders/models/User.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/snakesladders/repositories/GameRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/snakesladders/repositories/GameRepository.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/snakesladders/repositories/UserRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/snakesladders/repositories/UserRepository.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/snakesladders/services/BoardService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/snakesladders/services/BoardService.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/snakesladders/services/GameService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/snakesladders/services/GameService.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/snakesladders/services/UserService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/snakesladders/services/UserService.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/tictactoe/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/tictactoe/README.md -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/tictactoe/models/Board.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/tictactoe/models/Board.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/tictactoe/models/BoardCell.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/tictactoe/models/BoardCell.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/tictactoe/models/Bot.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/tictactoe/models/Bot.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/tictactoe/models/Game.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/tictactoe/models/Game.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/tictactoe/models/GameSymbol.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/tictactoe/models/GameSymbol.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/tictactoe/models/HumanPlayer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/tictactoe/models/HumanPlayer.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/tictactoe/models/Player.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/tictactoe/models/Player.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/tictactoe/models/User.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/tictactoe/models/User.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/tictactoe/strategies/DefaultPlayingStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/tictactoe/strategies/DefaultPlayingStrategy.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/tictactoe/strategies/PlayingStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/tictactoe/strategies/PlayingStrategy.java -------------------------------------------------------------------------------- /src/main/java/com/scaler/lld/tictactoe/strategies/WinningStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/java/com/scaler/lld/tictactoe/strategies/WinningStrategy.java -------------------------------------------------------------------------------- /src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/main/resources/application.properties -------------------------------------------------------------------------------- /src/test/java/com/scaler/lld/AppTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/test/java/com/scaler/lld/AppTest.java -------------------------------------------------------------------------------- /src/test/java/com/scaler/lld/cache/CacheTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/test/java/com/scaler/lld/cache/CacheTest.java -------------------------------------------------------------------------------- /src/test/java/com/scaler/lld/inclass/cache/CacheTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/test/java/com/scaler/lld/inclass/cache/CacheTest.java -------------------------------------------------------------------------------- /src/test/java/com/scaler/lld/inclass/parking/ParkingLotTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/test/java/com/scaler/lld/inclass/parking/ParkingLotTest.java -------------------------------------------------------------------------------- /src/test/java/com/scaler/lld/pen/PenTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/test/java/com/scaler/lld/pen/PenTest.java -------------------------------------------------------------------------------- /src/test/java/com/scaler/lld/pen/abstractclasses/PenTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/test/java/com/scaler/lld/pen/abstractclasses/PenTest.java -------------------------------------------------------------------------------- /src/test/java/com/scaler/lld/pen/multipleclasses/PenTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/test/java/com/scaler/lld/pen/multipleclasses/PenTest.java -------------------------------------------------------------------------------- /src/test/java/com/scaler/lld/pen/singleclass/PenTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/test/java/com/scaler/lld/pen/singleclass/PenTest.java -------------------------------------------------------------------------------- /src/test/java/com/scaler/lld/pen/withinterface/PenTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/test/java/com/scaler/lld/pen/withinterface/PenTest.java -------------------------------------------------------------------------------- /src/test/java/com/scaler/lld/snakesladders/services/GameServiceTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/test/java/com/scaler/lld/snakesladders/services/GameServiceTest.java -------------------------------------------------------------------------------- /src/test/java/com/scaler/lld/tictactoe/TicTacToeTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/src/test/java/com/scaler/lld/tictactoe/TicTacToeTest.java -------------------------------------------------------------------------------- /target/classes/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kanmaytacker/design-questions/HEAD/target/classes/application.properties --------------------------------------------------------------------------------