Need help with Keypad and RFID

Hey guys,

I'm fairly new to using Arduino's. I have a school project where I have a keypad entering passwords to control a 4 relay module. The passcode is displayed on a LCD screen.

The parts I have are an LCD screen, 4 relay module, I2C backpack for the LCD, a 4 x 4 Matrix keypad, and a RFID card reader mfrc522

The things I am having trouble with are:

-Finding a schematic to connect both the matrix Keypad, and RFID mfrc522 at the same time. (to ensure I have correct connections)
-Finding a code that will enable me to only enter passwords, if my RFID card is correct

Right Now I have The RFID, And Keypad connected as follows:

Keypad:
rowPins[ROWS] = {9, 8, 7, 6};
colPins[COLS] = {5, 4, 3, 2};

And for the RFID:

SDA - 11
SCK - 52
MOSI - 51
MISO - 50
IRQ - N/A
GND - GND
RST - 10
3.3V - 3.3V

I am using an Arduino Mega

Can someone please help !!

I have already been successful with controlling a relay, while entering a passcode with the matrix keypad, and having the stuff displayed on the LCD. The coding I have so far is below:

#include <Keypad.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

#define Password_Length 8

int signalPin = 12;

char Data[Password_Length];
char Master[Password_Length] = "123A456";
byte data_count = 0, master_count = 0;
bool Pass_is_good;
char customKey;

const byte ROWS = 4;
const byte COLS = 4;

char hexaKeys[ROWS][COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};

byte rowPins[ROWS] = {9, 8, 7, 6};
byte colPins[COLS] = {5, 4, 3, 2};

Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);

LiquidCrystal_I2C lcd(0x3F,20,4);

void setup(){
lcd.init();
lcd.backlight();
pinMode(signalPin, OUTPUT);
}

void loop(){

lcd.setCursor(3,0);
lcd.print("Enter Passcode:");
lcd.setCursor(2,3);
lcd.print("-Craig Utilities-");

customKey = customKeypad.getKey();
if (customKey){
Data[data_count] = customKey;
lcd.setCursor(data_count,1);
lcd.print(Data[data_count]);
data_count++;
}

if(data_count == Password_Length-1){
lcd.clear();

if (!strcmp(Data, Master)){
lcd.print("Line Isolated");
digitalWrite(signalPin, HIGH);
delay(5000);
digitalWrite(signalPin, LOW);
}
else{
lcd.print("Incorrect Passcode");
delay(1000);
}

lcd.clear();
clearData();
}
}

void clearData(){
while(data_count !=0){
Data[data_count--] = 0;
}
return;
}

Bump