diff --git a/createdb.sql b/createdb.sql
index e43ec4dd3950f197ba64d0d4e48b98bd5b76d31f..e0cbb2b54d616b50e46659052aaee9ce4be66f2c 100644
--- a/createdb.sql
+++ b/createdb.sql
@@ -38,8 +38,8 @@ CREATE TABLE `Volunteers`(
     fname varchar(35),
     lname varchar(35),
     hoursworked int(8) DEFAULT 0,
-    DBSlastchecked date,
-    SGlastchecked date,
+    DBSdue date,
+    SGdue date,
     emergencycontact varchar(20),
     email varchar(320)
 	);
@@ -82,8 +82,6 @@ CREATE TABLE `Badge`(
 
 DROP TABLE IF EXISTS `BadgeAwarded`;
 CREATE TABLE `BadgeAwarded`(
-	awardedID int(20) not null unique,
-    primary key(awardedID),
 	awardedto varchar(40),
 	evidence varchar(1000),
     awardedby varchar(40),
@@ -262,9 +260,9 @@ CREATE PROCEDURE viewVolunteer(
 BEGIN
 	If LENGTH(volunteervID) = 0
 	then
- 	SELECT s0.VolunteerID , s0.volunteerCode, s0.fname ,s0.lname,s0.DBSlastchecked,s0.SGlastchecked,s0.emergencycontact,s0.email,(select sum(duration) from Sessions where sessionID in(select sessionID from VolunteerAttendance where volunteerID=s0.volunteerID)) from volunteers as s0;
+ 	SELECT s0.VolunteerID , s0.volunteerCode, s0.fname ,s0.lname,s0.DBSdue,s0.SGdue,s0.emergencycontact,s0.email,(select sum(duration) from Sessions where sessionID in(select sessionID from VolunteerAttendance where volunteerID=s0.volunteerID)) from volunteers as s0;
 	else
-	 		SELECT s0.VolunteerID , s0.volunteerCode, s0.fname ,s0.lname,s0.DBSlastchecked,s0.SGlastchecked,s0.emergencycontact,s0.email,(select sum(duration) from Sessions where sessionID in(select sessionID from VolunteerAttendance where volunteerID=s0.volunteerID)) from volunteers as s0 where volunteerID=volunteervID;
+	 		SELECT s0.VolunteerID , s0.volunteerCode, s0.fname ,s0.lname,s0.DBSdue,s0.SGdue,s0.emergencycontact,s0.email,(select sum(duration) from Sessions where sessionID in(select sessionID from VolunteerAttendance where volunteerID=s0.volunteerID)) from volunteers as s0 where volunteerID=volunteervID;
 end if;
 END$$
 DELIMITER ;
@@ -329,8 +327,65 @@ BEGIN
 END$$
 DELIMITER ;
 
+drop procedure if exists updateDBS;
+delimiter $$
+CREATE PROCEDURE updateDBS(
+	IN VolunteerID varchar(40),
+	IN DateOfDBSApproval date)
 
+BEGIN
+        UPDATE volunteers set DBSdue =date_add(DateOfDBSApproval, interval 3 year)  where VolunteerID=volunteerID;
+END$$
+DELIMITER ;
 
+drop procedure if exists updateSG;
+delimiter $$
+CREATE PROCEDURE updateSG(
+	IN VolunteerID varchar(40),
+	IN DateOfSGApproval date)
+
+BEGIN
+        UPDATE volunteers set SGdue =date_add(DateOfSGApproval, interval 5 year)  where VolunteerID=volunteerID;
+END$$
+DELIMITER ;
+
+drop procedure if exists ViewCheckExpiries;
+delimiter $$
+CREATE PROCEDURE ViewCheckExpiries()
+
+BEGIN
+        SELECT volunteerID,fname,lname,DBSdue,SGdue,
+				if(date_sub(DBSdue, interval 6 month) > CURDATE()=1,
+				 		"ALL GOOD",
+						if(CURDATE()>DBSdue=1
+							,concat("already Due ",fname," does not have a valid dbs check"),
+							concat("needs redoing in the before",DBSdue))) as "dbs refiew" ,
+				if(date_sub(SGdue, interval 6 month) > CURDATE()=1 ,
+				"ALL GOOD",
+				if(CURDATE()>DBSdue=1
+					,concat("already Due ",fname," does not have a valid SG check")
+
+							concat("needs redoing in the before",SGdue))) as "SuperGeeks training reviewz"
+					from volunteers where date_sub(DBSdue, interval 6 month) < CURDATE()=1 or  date_sub(SGdue, interval 6 month) < CURDATE()=1;
+
+END$$
+DELIMITER ;
+
+
+drop procedure if exists StudentBadgeApply;
+delimiter $$
+CREATE PROCEDURE StudentBadgeApply(
+    IN studentID varchar(40),
+		IN BadgeID varchar(40),
+		IN badgeEvidence varchar(1000))
+
+BEGIN
+
+        INSERT INTO StudentAttendance(StudentID,sessionID) values
+	(studentID,sessionID);
+
+END$$
+DELIMITER ;
 
 
 
@@ -341,8 +396,9 @@ call addBadge("real badge","this is a totally real badge");
 call addStudent("timothy","jones",'2002-2-11','8e301d6e513165a9c0b6b9a2b10c8305',"EXTREMELYSTRONGPASSWORD");
 call addVolunteer("timothy","jones",'bob@bbc.co.uk','8e301d6e513165a9c0b6b9a2b10c8305',"0777008913");
 
+call updateSG('419fd9859978a9bf79df4ff16c99c5f9',"2015-09-09");
+call updateDBS('419fd9859978a9bf79df4ff16c99c5f9',"2021-09-09");
 
-
+call viewCheckExpiries();
 
 -- select * from volunteers;
-call viewVolunteer("");