A simple program that finds the seating arrangement for passengers for a given custom airplane seat layout.
๐ฃ Note that this project was purpose-built for a coding challenge (see problem statement).
Before you run this app, make sure you have Node.js installed. yarn
is recommended, but can be used interchangeably with npm
.
git clone https://github.com/paambaati/bumplan
cd bumplan
yarn install && yarn build
yarn start "<seat_layout>" "<passengers_count>"
yarn run coverage
-
The program first builds a "mapping" for the given layout (see
buildSeatMapping()
). Essentially, the input 2D array is flattened and a lookup table is built, along with the seat types.For example, for the layout โ
[[1, 2], [3, 2]]
The mapping built is โ
{ '0_0_0': 'W', '1_0_0': 'A', '1_1_0': 'M', '1_2_0': 'W', '0_0_1': 'W', '1_0_1': 'A', '1_1_1': 'M', '1_2_1': 'W' }
-
The mapping is then used to filter by seat types first and then iterated over to assign passenger number (see
assignSeats()
). As a nice bonus, the method will also optionally take a priority list, so it will be easier to alter the seating rules in the future. -
The seat assignment is then printed on the screen (see
printSeatAssignments()
). It uses the super-lightweightcolorette
to print in colors to quickly distinguish the seat types.