Evaluation

Standard

Overall I am very happy with our web-app as we ended up having time to add features that we hadn’t planned to add. As the first time I had made a fully functioning website and having to code in PHP (which I had never done before) I was pleased that by the end of the project I was able to fix errors, add code such as queries and functions and understand the code we had written.

Teamwork played a vital role in being able to finish our web-app. We spent a lot of time outside tutorials trying to fix the code we had written and making sure we had made it to our initial aims of a functioning database connected site with the elements we had set out to incorporate into the site.

Kyle helped us fix the complicated errors and took us through the code that we may not have understood fully, meaning we had a good knowledge of the code we had written. Bootstrap was a very helpful tool in this project and gave us a great CSS basis to work from so we had more time to work out the PHP. We even used a little bit of jQuery to enhance our site and give it some aesthetically pleasing elements like the scrolling down of the log in and sign up forms.

If I was to do this project again I may choose to maybe be a bit more adventurous with the site and do more research on PHP to find some other functions we had not thought of in this project. Design wasn’t our main priority for this project but I would have liked to spend more time on the branding and colours to make a website that would potentially be ready for full use. However I feel that I would be a lot more competent in writing my PHP as I know fully understand its capabilities and how to structure the code to make a fully functioning site.

Advertisements

Fixing Timestamp Error

Standard

When I first added the timestamp function to the code it seemed to work. While finishing the code and testing the site I saw that an error appeared and instead of it saying for example “10 mins ago” it said “-3457 seconds ago”. This meant that the filters for most recent were getting confused to I needed to fix the error.

Example of the error:

Screen Shot 2015-04-19 at 16.21.14

I spent a long time trying to fix the code and realised that it started from -3600 seconds which is an hour. I then realised that it could be because the clocks changed a few days after I finished this code. I then found an alternative to “UTC” as the default timezone on the code on the php site. I had tried other timezones such as EST and GMT just as a test but these apparently aren’t readable by the PHP. This seemed to work successfully and now I had an accurate timezone on my timestamp function.

Screen Shot 2015-04-19 at 16.18.09 Screen Shot 2015-04-19 at 16.17.57

Now the site looks this this:

Screen Shot 2015-04-19 at 16.25.30

Deleting a User’s Posts

Standard

As another extra feature of the site I wanted the user to be able to delete their post so they could either redo it or be able to update it. I had to add a new delete_post.php file and create an if statement so if the user was logged in then the delete button would appear and they were able to delete only their posts. I also created a message if they were not able to delete their post then it would appear with an error message.

Screen Shot 2015-04-19 at 16.49.17

I then needed to add the function to the box1.php as that is where I wanted the button to appear.

<!--?php if ($_SESSION["user_id"]==$row["user_id"]) {?--></pre>
<div id="delete_post" class="delete"><a id="" href="delete_post.php?id=<?php echo $row[">"><button class="btn btn-danger" type="button">Delete Post</button></a></div>
<pre><!--?php } ?-->
<!--?php } else { ?-->
    <!--?php } ?-->

I then wanted to style this button so the text would stand out in  the box and it actually looked like a delete button. I went onto Bootstrap and found the best delete button (the danger button) I could find and added it to the box1.php code.

Screen Shot 2015-04-19 at 16.53.58

This is what the final product looks like:

Screen Shot 2015-04-19 at 17.00.52

Using GitHub

Standard

We only started using GitHub and Git later in the project. I taught myself some of the command line I would need to use it to be able to access my git repository through the terminal.

Screen Shot 2015-03-23 at 21.00.32

This screenshot shows me using command line and Git to upload the latest version of our code

I regret not using GitHub throughout the whole project as once I worked out how to do it seemed like a really easy way to implement version controlling into my workflow. It also saved us making many versions of the project and finding it difficult to work out which was the latest version. I also use GitHub for going back to an old version as for some reason the log in and sign up forms did not appear when I clicked on them so I reverted back to an old version of the code and this seemed to fix the errors I was getting.

This is what our GitHub repository looked like after we had uploaded the final piece of code:

Screen Shot 2015-04-18 at 16.11.21 Screen Shot 2015-04-18 at 16.11.32

Styling the Web-App

Standard

The majority of the code had now been written and I had decided to have a play around with the CSS and styling of the site as it had been quite plain.

Amy and I found a couple of different colour schemes online (specifically the sitehttps://color.adobe.com/explore/newest/?time=all) to start off with to get some inspiration:

Screen Shot 2015-03-17 at 17.07.06Screen Shot 2015-03-17 at 17.05.45Screen Shot 2015-03-17 at 17.05.30Screen Shot 2015-03-17 at 17.05.19

We also found this tile background from http://subtlepatterns.com/ that we could potentially use. This was our background till we decided that we needed to properly style the site.

geometry2

We also had the idea of creating a “cloud theme” background so I put together a basic cloud background in Illustrator and we placed it into the site and decided that it didn’t work at all and we decided to leave the styling to the end of the project.

Screen Shot 2015-03-17 at 17.15.35

cloud backgroundJosh hadn’t contributed much towards the code so we gave him the job of styling the site. He came up with the Mary Poppins inspired logo and used purple and grey as his main colours. After changing the CSS to fit this scheme (for example changing font colour and border colours). However after changing all of these elements and uploading them to the dakar I thought that the scheme didn’t really fit our audience. We had set out to make a modern and aesthetically pleasing website as that made our site different to our competitors. I spent some time playing around with different layouts using the colour palette Josh had suggested but I thought that it didn’t really suit out site. Below is some images of all of some of the layouts I tried.

Screen Shot 2015-03-23 at 19.10.10 Screen Shot 2015-03-24 at 14.16.51 Screen Shot 2015-03-24 at 14.42.27 Screen Shot 2015-03-24 at 15.36.40

After this process I decided to completely start from scratch. I thought that we should have a dark background with some bright colours. I had a look online and found some relevant colour palettes that I could use:

In the end I found one that I liked and used it to create the banners below (found on the carousel).

greybanner1 greybanner2 greybanner3

I also decided to make a small logo for our site. As we had named this web-app Sitter Search I was trying to combine the idea of children and “finding something”. I had the idea to combine a baby rattle and a magnifying glass. I wasn’t completely happy with the result but I didn’t really have enough time to perfect it.

Screen Shot 2015-04-18 at 15.42.04

This is what the site looked like once I had adjusted the CSS and elements like the carousel images:

Screen Shot 2015-04-18 at 15.58.23

Timestamp

Standard

I decided that I would try and add a timestamp to the post that come up on the homepage. To do this I needed to add a timestamp row on PHPMyAdmin so it would record the time that the post was submitted. Adding this feature would prove to be  an aesthetic element to the posts and also meant that sorting the post by most recent would be easier to do.

This is a video someone recommened me to watch that gave me the details to add a timestanmp onto the post:

I used this video to understand what code to write and how it worked. I ended up changing the layout of the timestamp so that It said “3 hours ago” or “2 minutes ago”.

Firstly I had to create the function which would cause the time to be posted in the post box. This code also included the way that the timestamp would be printed and named the function as “$timestamp”. The code below is the code I wrote for the functions.php file.

class convertToAgo {
    function convert_datetime($str) {
        //sets the timezone to UTC
	   date_default_timezone_set('UTC');
        //explode breaks a string into an array
   		list($date, $time) = explode(' ', $str);
    	list($year, $month, $day) = explode('-', $date);
    	list($hour, $minute, $second) = explode(':', $time);
    	$timestamp = mktime($hour, $minute, $second, $month, $day, $year);
    	return $timestamp;
        //this function converts into a timestamp in the "2015-01-01 12:12:12" format
    }
    function makeAgo($timestamp){
	
   		$difference = time() - $timestamp;
   		$periods = array("sec", "min", "hr", "day", "week", "month", "year", "decade");
   		$lengths = array("60","60","24","7","4.35","12","10");
   		for($x = 0; $difference >= $lengths[$x]; $x++){
   			$difference /= $lengths[$x];
   			$difference = round($difference);
        }
   		if($difference != 1) $periods[$x].= "s";
   			$text = "$difference $periods[$x] ago";
   			return $text;
        //this function gives out the differences between the time and the timestamp-time
    }
} 

Screen Shot 2015-04-17 at 18.08.58

The next step was to place the function in box1.php as the timestamp needed to be shown in the box with the other profile information. This linked the database time data with the function so it could find the right information to use.

include_once("../includes/functions.php"); // Include the class library
    $timeAgoObject = new convertToAgo; // Create an object for the time conversion functions
    // Query your database here and get timestamp
    $ts = $row["dateofpost"];
    $convertedTime = ($timeAgoObject -> convert_datetime($ts)); // Convert Date Time
    $when = ($timeAgoObject -> makeAgo($convertedTime)); // Then convert to ago time
    ?>
    
    <div class="time_ago" <h2><?php echo "".$when; ?></h2> </div>

This is the code I placed into the box1.php file. Screen Shot 2015-04-17 at 18.08.01

I then styled this timestamp in the CSS by making the font slightly opaque and giving the text a different colour.

Screen Shot 2015-04-17 at 18.19.46

Creating Sign Up Form

Standard

We created the sign-up form in a slightly different way from other forms like the login form. The ‘SELECT * FROM’ query was used so that it can look up the existing users and lets them log in to the site.  The ‘$_SESSION [“message”]’ and ‘$_SESSION [“username”]’ bits of code echo out a message which tells the user whether or not they have logged in successful.

login-request

This part of the code was slightly complicated as we had to adapt the code so that a user could log in with their username and password. The singup.php was used so submit their details when they signed up. This was code we used in other areas of our site. However we kept on having errors with this code including the data not being placed onto the database and then the user not being able to log in. Another problem we couldn’t overcome was that someone could create a user without typing anything in the fields as we did not know how to set the character limit for the password and username. Kyle helped us sort out some of these errors. He noticed that we had put ‘SELECT*FROM’ in the code but it actually needed to be ‘INSERT INTO’ as we were trying to add data to the database rather than pull it from the database. This finally made the sign up page work and we were now able to log into our site.

This is the code for the sign up page form:

signup-code1

After being able to log in we now realised that when you logged in you could see the log in feature in the nav bar and we wanted to show the ‘New Post’ page at the top so a user was able to create a profile. We thought that this might cause errors and it didn’t look right for it to be there if a user was already logged in so we asked Kyle how to do this and there was an easy fix for it. We had to work out the code that would mean that “if the user isn’t logged in then show the login and sign up button on the page”. It was a simple bit of code to add to hide and show the elements we wanted in different situations.

loginsignup-in-user-loggin