If this is a school project then its an easy solution, I did a number of these type of controls for home elevators back in the 1990's.
For the standard two floor house we used a Allen Bradley Micrologix plc with relay and contactor interfaces, we used limit switches to detect position and doors closed safe to move. To meet local standards some of the limits were double pole series connected to a manual emergency stop for safety.
For the multi floor units we used a bigger PLC and I developed a simple program (these PLC's used ladder logic for programming which was really just a graphical representation of Boolean), basically store elevator position in one variable, floor call button in a second variable and lift destination button in the third variable. Code looked at which floor called, compared to position of car, if higher go up until position and floor match then stop, unlock door, clear call variable and wait. If car position higher than floor call go down. once in the car simply press floor number and logic is the same.
There were a lot of interlocks around doors being closed before car could move, doors only unlocking when the car was on the floor etc.
All of this is easily duplicated with an Arduino, a handful of limit and pushbuttons for input and if just a project LED's for outputs?