diff --git a/createdb.sql b/createdb.sql
index acbeb46c91a82cb65eb20a185468ed11b85b2347..ab176c47ff41cce0df38f20d09a2f328948e50b3 100644
--- a/createdb.sql
+++ b/createdb.sql
@@ -49,13 +49,16 @@ CREATE TABLE `Sessions`(
 	sessionID varchar(40) not null unique,
     primary key (sessionID),
     leaderID varchar(40),
-    location varchar(55),
+    location varchar(35),
     duration int(10),
-		dayofweek int(2),
+		occuredOn date,
     FOREIGN KEY (leaderID) REFERENCES Volunteers(VolunteerID),
     maxAttendees int(10),
     groupid varchar(40),
-    Nohelpers int(10));
+		reviewOfProgression varchar(400),
+		reviewOfstaffSafety varchar(400),
+		Nohelpers int(10));
+
 DROP TABLE IF EXISTS `Badge`;
 CREATE TABLE `Badge`(
 	BadgeID varchar(40) not null unique,
@@ -105,12 +108,11 @@ CREATE TABLE `StudentAttendance`(
 	FOREIGN KEY (studentID) REFERENCES Students(studentID),
 	FOREIGN KEY (sessionID) REFERENCES Sessions(SessionID)
 );
-CREATE TABLE `SessionHistory`(
-		SessionHistoryID varchar(40),
-	  heldOn date ,
+DROP TABLE IF EXISTS `VolunteerAttendance`;
+CREATE TABLE `VolunteerAttendance`(
+	volunteerID varchar(40),
     sessionID varchar(40),
-		reviewOfProgression varchar(400),
-		reviewOfStaffSafety varchar(400),
+	FOREIGN KEY (VolunteerID) REFERENCES Volunteers(volunteerID),
 	FOREIGN KEY (sessionID) REFERENCES Sessions(SessionID)
 );
 
@@ -153,9 +155,12 @@ BEGIN
     BEGIN
  	SELECT 'User already exists' as ERROR ;
     END;
+		IF INSTR(email,"@") > 0 then
 
         INSERT INTO Volunteers(VolunteerID,fname,lname,email,emergencycontact) values
 	(md5(concat(email,passwerd)),fname,lname,email,phonenum);
+
+	end if;
 END$$
 DELIMITER ;
 
@@ -230,15 +235,51 @@ BEGIN
 
         INSERT INTO Students(StudentID,fname,lname,bday,parentsID) values
 	(md5(concat(fname,lname,passwerd)),fname,lname,bday,parentsID);
+
 END$$
 DELIMITER ;
 
+drop procedure if exists viewStudent;
+delimiter $$
+CREATE PROCEDURE viewStudent(
+	IN studentvID varchar(40))
+BEGIN
+	If LENGTH(studentvID) = 0
+	then
+ 	SELECT s0.StudentID , s0.studentCode, s0.fname ,s0.lname,s0.bday,(select email from parents where parentID = s0.parentsID),(select phonenum from parents where parentID = s0.parentsID) from students as s0;
+	else
+	 	SELECT s0.StudentID , s0.studentCode, s0.fname ,s0.lname,s0.bday,(select email from parents where parentID = s0.parentsID),(select phonenum from parents where parentID = s0.parentsID) from students as s0 where studentvID=s0.studentID;
+end if;
+END$$
+DELIMITER ;
+
+
+drop procedure if exists viewVolunteer;
+delimiter $$
+CREATE PROCEDURE viewVolunteer(
+	IN VolunteervID varchar(40))
+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;
+	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;
+end if;
+END$$
+DELIMITER ;
+
+
+
+
+
 call addParent("jeff","Jones","email@realemail.com","veryStrongPassw0rd",02358254);
 call addStudent("bobby","jones",'2012-2-11','8e301d6e513165a9c0b6b9a2b10c8305',"EXTRASTRONGPASSWORD");
 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");
+
 
 
 
-select * from students;
--- select * from parents;
+-- select * from volunteers;
+call viewVolunteer("");
diff --git a/er1.png b/er1.png
new file mode 100644
index 0000000000000000000000000000000000000000..394732ed4c55c2ad5062e3138e0dbc7fe3649d88
Binary files /dev/null and b/er1.png differ