Is there a way to improve my servo and nodeMCU project?

Im asking just in case my project could be improved or something similarly, this is my first Arduino/nodeMCU project and i’m not sure if something else could be added to make it work better.

My project basically consists on a nodeMCU, 2 servos, 2 buttons, 2 LEDs and 2 NPN transistors. The idea is to be able to create a smart light switcher which connects to the Blynk app to turn on or off the lights from afar but also be able to turn on/off the lights with the buttons. The purpose of the LEDs is just too indicate when a servo is moving and the transistor is to power the servos in order to save power. The servos are the ones that turn on or off the lights. The buttons are switch buttons, when pressed the servo would move from 90º to 180º and stay in that position until pressed again in which it would return to 90º. The virtual button from the Blynk app would do the same.

I created a schematic in EasyEDA but i’m not totally sure if it represents the project correctly since i’m not that good at understanding schematics compared to breadboard schematics. I will attach it to the post as well as the code.

#define BLYNK_PRINT Serial

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

char auth[] = "";

// Your WiFi credentials.
char ssid[] = "";
char pass[] = "";

#include <Servo.h>

Servo servo1; // Servo 1
Servo servo2; // Servo 2

int pos1 = 0; // First servo position
int pos2 = 0; // second servo position

#define LED1 D0 // Light 1
#define LED2 D1 // Light 2

const int button1 = D2; // Button 1
const int button2 = D3; // Button 2

// Button State 1
int buttonState1 = 0;
int directionState1 = 0;

// Button State 2
int buttonState2 = 0;
int directionState2 = 0;

const int transistor1 = D6;
const int transistor2 = D8;

int pinValue1; // Virtual Button 1
int pinValue2; // Virtual Button 2

BLYNK_WRITE(V1) // V1 is the number of Virtual Pin  
{
  pinValue1 = param.asInt();
}

BLYNK_WRITE(V2) // V2 is the number of Virtual Pin  
{
  pinValue2 = param.asInt();
}

void setup()
{
  // Debug console
  Serial.begin(9600);
  
  // SETUP FIRST BUTTON
  pinMode(button1,INPUT_PULLUP);
  pinMode(LED1,OUTPUT);
  pinMode(transistor1,OUTPUT);
  servo1.attach(D5);
  
  // SETUP SECOND BUTTON
  pinMode(button2,INPUT_PULLUP);
  pinMode(LED2,OUTPUT);
  pinMode(transistor2,OUTPUT);
  servo2.attach(D7);
  
  Blynk.begin(auth, ssid, pass);
}

void loop()
{
  Blynk.run();

  
  // First Light
  buttonState1 = digitalRead(button1);
  if (directionState1 == 0) {
    if (buttonState1 == HIGH || pinValue1 == 1) {
      directionState1 = 1;
      digitalWrite(LED1,HIGH);
      digitalWrite(transistor1,HIGH);

      for (pos1 = 90; pos1 < 180; pos1++) {
        servo1.write(pos1);
        delay(15);
      }
      digitalWrite(transistor2,LOW);
      digitalWrite(LED1,LOW);
    }

  } else if (directionState1 == 1) {
    if (buttonState1 == HIGH || pinValue1 == 1) {
      directionState1 = 0;
      digitalWrite(LED1,HIGH);
      digitalWrite(transistor1,HIGH);

      for (pos1 = 180; pos1 > 90; pos1--) {
        servo1.write(pos1);
        delay(15);
      }
      digitalWrite(transistor1,LOW);
      digitalWrite(LED1,LOW);
    }
  }

  
  // Second Light
  buttonState2 = digitalRead(button2);
  if (directionState2 = 0) {
    if (buttonState2 == HIGH || pinValue2 == 1) {
      directionState2 = 1;
      digitalWrite(LED2,HIGH);
      digitalWrite(transistor2,HIGH);

      for (pos2 = 90; pos2 < 180; pos2++) {
        servo2.write(pos2);
        delay(15); 
      }
      digitalWrite(transistor2,LOW);
      digitalWrite(LED2,LOW);
    }
    
  } else if (directionState2 = 1) {
      if (buttonState2 == HIGH || pinValue2 == 1) {
        directionState2 = 0;
        digitalWrite(LED2,HIGH);
        digitalWrite(transistor2,HIGH);

        for (pos2 = 180; pos2 > 90; pos2--) {
          servo2.write(pos2);
          delay(15);
        }
        digitalWrite(transistor2,LOW);
        digitalWrite(LED2,LOW);
      }
    }
  
  // End of code
}

I also originally thought of using my google home or Siri on my phone but had absolutely no idea how to do it.

Any help or commentary about my project would be appreciated :). Thank you!

Well, using servos to throw light switches is a pretty silly sounding idea. Why not use a relay to switch the current to the lights directly?