How to fix serial communication?
You have a big 5s delay in your code, right after both serial commands. You don't need a delay there; it does not do anything. But it makes your code unresponsive. So you can simply remove it.
I guess you wanted to do some timed thing there and accidentally left it there.  But in general you should not use any big delay() in any code. As you have seen, it makes your code unresponsive, as the Arduino doesn't do anything during this time. Instead look at the BlinkWithoutDelay example, that comes with the Arduino IDE (Its a really important principle to learn). It uses the millis() function (or alternatively the micros() function) to check, if it is time to do something. If yes, it will execute this, if not, it will exit fast and give the rest of the code an opportunity to execute. Much like you would bake a pizza: You start the baking and then regularly  check the clock, if it is time to take the pizza out. In between you can do other things, like reacting go messages on your phone. Its the same principle, just in code.