230 likes | 252 Views
A comprehensive presentation of the Messenger project development process by team members Jonas Wadsten, Muhammad Irfan Tahir, Zdenek Svoboda, Zahid Mukhtar, Marko Bejuk, and Tihana Knaffl. Includes web interface, database design, source code, and documentation. Explore the Class Relationship Diagram (CRD) and Object Sequence Diagrams (OSD) showcasing various system operations. Engage with Messenger product overview, GUI enhancement, and database management progress.
E N D
Members of Messenger project Final presentation
Project members Jonas Wadsten: Team leader, documentation, web, database Muhammad Irfan Tahir Sourcecode, database Zdenek Svoboda Web interface, documentation, testing Zahid Mukhtar Chief of documentation + UML Marko Bejuk Testing, documentation of tech stuff Tihana Knaffl Programming c/c++, the core of the program (sourcecode master)
Process • Design • Database • Source code • Software • Web interface • Documentation • Questions?
Object Sequence diagrams (OSD) • OSD OF System Startup • OSD of Login Session • OSD of Add I/M, Delete I/M, Search • OSD of chat
Object Sequence diagrams OSD OF System Startup
Object Sequence diagrams OSD of Login Session
Object Sequence diagrams OSD of Add I/M, Delete I/M, Search
Object Sequence diagrams OSD of chat
Database Progress… Tables Created(2)
Database Progress… Tables Created(3)
Source Code • general issues • technical issues • Yahoo! messenger • simplified GUI design • satisfied requirements • upgrade possibilities
Web interface • frame • html design • php code • homepage • favorites
Web interface • <?php • ############################################# • # name : project.php • # location : include/ • # by who : jonas wadsten • # purpose : here u can add and change projects • # as long as u are logged in as • # an administrator • # date : 2004-12-18 • # revision/what/who/when: • # changed design, Zdenek, 2004-12-28 • # added edit part + change design, jonas, 2005-01-13 • # added add part, jonas , 2005-01-17 • ############################################# • if ($_SESSION[login] == "") • { • print "<table class='normal'><tr><td>hey, your are not logged in yet...</td></tr></table>"; • } • else • { • print "<table class='normal'>"; • if ($do == "delete") • { • # delet the project, it just change delete value to 1 • $project = $_REQUEST['ProjectID']; • #UPDATE Person SET FirstName = 'Nina' WHERE LastName = 'Rasmussen' • $qUpdateProject = "UPDATE Project SET Deleted = 1 WHERE ProjectID = $project"; • $resultUpdate = mysql_query(qUpdateProject) or die("SQL: $qUpdateProject <br>".mysql_error()); • } • elseif ($do == "add") • { • $what = $_REQUEST['what']; • if ($what == "addProject") • { • $qAddProject = "INSERT INTO Project (ProjectName, StartDate, EndDate, AddedBy) • VALUES('{$_REQUEST['ProjectName']}', '{$_REQUEST['StartDate']}','{$_REQUEST['EndDate']}','{$_REQUEST['AddedBy']}')"; • $resultAddProject = mysql_query($qAddProject) or die("SQL: $qAddProject <br>".mysql_error()); • print "<tr><td colspan=2>project '{$_REQUEST['ProjectName']}' has been added to database....</td></tr>"; • }?> • <tr><td colspan="3" align="left">:: add a project</td></tr> • <tr><td colspan=3> </td></tr> • <tr height=2><td colspan=3 style='background-color: brown'></td></tr> • <tr><td colspan=3> </td></tr> • <form action="index.php?page=project&do=add&what=addProject" method="post" name="add_project"> • <input type="hidden" name="AddedBy" value=<?PHP echo"$_SESSION[memberID]"; ?>> • <tr><td width=150>:: name of project</td><td><input type="text" name="ProjectName"></td></tr> • <tr><td>:: start date</td><td><input type="text" name="StartDate"></td></tr> • <tr><td>:: end date</td><td><input type="text" name="EndDate"></td></tr> • <tr><td>:: added by</td><td><input disabled value="<?PHP echo"$_SESSION[FirstName] $_SESSION[LastName]"; ?>" type="text" name="Name"></td></tr> • <tr><td align="center" height="30"><a href='#' onClick='reset()'>:: reset ::</a></td><td align="center"><a href='#' onClick='add_project.submit()'>:: submit ::</a></td></tr> • </form> • <?PHP • } • elseif ($do == "edit") • { • $what = $_REQUEST['what']; • if ($what == "addPerson") • { • # adds a person to the project • $qAddPerson = "INSERT INTO MemberInProject (ProjectID, MemberID) VALUES('$projectID', '{$_POST['memberID']}')"; • $resultAdd = mysql_query($qAddPerson) or die("SQL: $qAddPerson <br>".mysql_error()); • } • elseif ($what == "update") • { • # update the project • $qUpdateProject = "UPDATE Project SET ProjectName='{$_POST['ProjectName']}', StartDate='{$_POST['StartDate']}', EndDate='{$_POST['EndDate']}' WHERE ProjectID = '{$_POST['ProjectID']}'"; • $resultUpdate = mysql_query(qUpdateProject) or die("SQL: $qUpdateProject <br>".mysql_error()); • } • # if you selected an project via a link this sql query will be executed • if ($projectID != '') • { • # get the project info from 2 tables, Project and TeamMember • $qGetOneProject = "SELECT * FROM Project, TeamMember WHERE ProjectID = $projectID AND Project.AddedBy = TeamMember.MemberID"; • $result2 = mysql_query($qGetOneProject) or die("Query failed: qGetOneProject <br>".mysql_error()); • $numRows2 = mysql_num_rows ($result2); • while ($line = mysql_fetch_array($result2)) • { • $t0 = $line['ProjectID']; • $t1 = $line['ProjectName']; • $t2 = $line['StartDate']; • $t3 = $line['EndDate']; • $t4 = $line['FirstName']; • $t5 = $line['LastName']; • $t6 = $line['AddedBy']; • $t7 = $line['Deleted']; • } • # get info about the teammembers in the project that has been shosen.... • $qGetProjectMembers = "SELECT * FROM MemberInProject, TeamMember WHERE ProjectID = $t0 AND TeamMember.MemberID = MemberInProject.MemberID"; • $result3 = mysql_query($qGetProjectMembers) or die("Query failed: qGetProjectMembers <br>".mysql_error()); • $numRows2 = mysql_num_rows ($result3); • # get info about all the teammembers for adding in project • $qGetAllMembers = "SELECT * FROM TeamMember WHERE deleted = 0"; • $result4 = mysql_query($qGetAllMembers) or die("Query failed: qGetAllMembers <br>".mysql_error()); • $numRows4 = mysql_num_rows ($result4); • } • # Here is the query that collects all the projects in database... • $qGetProjects = "SELECT * FROM Project"; • $result = mysql_query($qGetProjects) or die("Query failed qGetProjects <br>".mysql_error()); • $numRows = mysql_num_rows ($result); • # Here all the projects in database is printed • print "<form name='pick_project' method='post' action='index.php?page=project&do=edit'><tr><td width=150>:: pick a project: </td>"; • print "<td><select name='projectID'>"; • while ($line = mysql_fetch_array($result)) • { • $s0 = $line['ProjectID']; • $s1 = $line['ProjectName']; • $s2 = $line['Deleted']; • print "<option value='$s0'"; • if ($projectID == $s0) • print " selected"; • print ">$s1"; • if ($s2 == 1) • print " (deleted)"; • print "</option>"; • } • print "</select></td><td> <a href='#' onClick='pick_project.submit()'>:: choose ::</a></td></tr></form>"; • # if a project is selected the info will be shown here and possible to edit it • if ($projectID != '') • { • ?> • <tr><td colspan=3> </td></tr> • <tr height=2><td colspan=3 style='background-color: brown'></td></tr> • <tr><td colspan=3> </td></tr> • <form action="index.php?page=project&do=edit&what=update" method="post" name="update_project"> • <input type="hidden" name="AddedBy" value="<?PHP echo"$t6"; ?>"> • <input type="hidden" name="ProjectID" value="<?PHP echo"$t0"; ?>"> • <tr><td width=150>:: name of project</td> • <td colspan="2"><input type="text" name="ProjectName" value="<?PHP echo"$t1"; ?>"> • <?PHP • if ($_SESSION[AccessRights] == 3) • print "<a href='index.php?page=project&do=delete&ProjectID=$t0'>:: delete ::</a>"; • ?> • </td></tr> • <tr><td>:: start date</td><td colspan="2"><input type="text" name="StartDate" value="<?PHP echo"$t2"; ?>"></td></tr> • <tr><td>:: end date</td><td colspan="2"><input type="text" name="EndDate" value="<?PHP echo"$t3"; ?>"></td></tr> • <tr><td>:: added by</td><td><input disabled value="<?PHP echo"$t4 $t5"; ?>" type="text" name="Name"></td> • <td align="center"><a href='#' onClick='update_project.submit()'>:: update ::</a></td></tr> • </form> • <tr><td colspan=3> </td></tr> • <tr height=2><td colspan=3 style='background-color: brown'></td></tr> • <tr><td colspan=3> </td></tr> • <tr><td>:: people in this project (email)</td><td colspan="2" align="left">:: company</td></tr> • <tr><td colspan=3> </td></tr> • <?PHP • # here is the result of the query qGetProjectMembers printed, shows all the membes in selected project • if ($numRows2 == 0 || $numRows2 == "") • { • print "<tr><td colspan=3>no people in this project...</td></tr>"; • } • else • { • while ($line = mysql_fetch_array($result3)) • { • $u0 = $line['FirstName']; • $u1 = $line['LastName']; • $u2 = $line['Email']; • $u3 = $line['Phone']; • $u4 = $line['AccessRights']; • $u5 = $line['Company']; • $u6 = $line['Deleted']; • $u7 = $line['MemberID']; • print "<tr><td>$u0 $u1 (<a href='mailto:$u2'>$u2</a>) </td>"; • print "<td> $u5</td><td><a href='index.php?page=project&do=delete&ProjectID=$u7'>:: delete ::</a></td></tr>"; • } • } • print "<tr><td colspan=3> </td></tr><tr height=2><td colspan=3 style='background-color: brown'></td></tr><tr><td colspan=3> </td></tr>"; • # here is the result of the query qGetAllMembers printed, here can you add a person to the project • print "<form name='pick_member' method='post' action='index.php?page=project&do=edit&what=addPerson'><tr><td>:: add member to project: </td>"; • print "<td><select name='memberID'>"; • while ($line = mysql_fetch_array($result4)) • { • $v0 = $line['FirstName']; • $v1 = $line['LastName']; • $v2 = $line['MemberID']; • print "<option value='$v2'> $v0 $v1</option>"; • } • print "</select></td><td> <a href='#' onClick='pick_member.submit()'>:: add ::</a></td></tr>"; • print "<input type=hidden name=projectID value=$projectID></form>"; • } • } • else # If something is wrong and logged in you will get this error-message... • { ?> • <tr><td>hey, your are logged in and looking at the projects (project.php)<br><br>but something is wrong.. try again...</td></tr> • <?PHP } ?> • </table> • <?PHP } ?>
Documentation • Chat contents • Minutes of meeting • Mail correspondence • Importance • The repository http://www.fer.hr/rasip/dsd/projects/8/docs