We came to consensus as to where user will be able to add a new spot, we decided to place that ability within the map view as it gave a visual representation of there current location so as to not place a spot in a area that is not there actual current location.
When the add spot button is clicked a popup container will appear that will contain a text field to enter the spots name, a camera button to add a photo of the spot and add button to submit the form. When user clicks add it will check that the text field is not empty and that a spot image has been selected before adding it the server.
Images are uploaded to our cloudinary cloud storage and returns a JSON object of the images URL when it is complete, using that URL we submit a POST to add a new spot to our servers DB.
Friday, 28 June 2013
FlashBuilder ArrayCollection Errors
Originally the data returned could be passed to into an arraycollection directly, but we discovered that if the returned data is only 1 object the collection will complain, that it is not an array collection.
To resolve this issue we changed the data format retured from XML to JSON, as it provided a better means to iterate through the data and provide type definition. as we iterate through the list we add each Object into the ArrayColection one by one, instead of passing just the XML data into the collection.
To resolve this issue we changed the data format retured from XML to JSON, as it provided a better means to iterate through the data and provide type definition. as we iterate through the list we add each Object into the ArrayColection one by one, instead of passing just the XML data into the collection.
Thursday, 27 June 2013
Server Security
Okay since the project is officially submitted all of the security measures have been turned on the server. Most of the security was turned off during development. Hopefully this won't break overnight. Will double check the server in the morning...
Photo Upload
I haven't posted in a while but a lot of features have been implemented. Uploading photos to the Cloudinary api and updating our server database works!! I think that is definitely the main feature as our app is content driven and the photos are the main user submitted content.
Wednesday, 26 June 2013
Improved getting spot data
Now when getting spot data it will return the usual spot data plus an extra field that specifies if the user has added this spot to their favored spot list.
Using this query :
$q = "select *,(select COUNT(*) from favourites f where f.userID='".$this->db->escape_str($ID)."' AND f.PlaceID=p.ID) as fav from place p order by p.DateFound desc";
it will return spot data plus create a new field that will compare the spots with the favorites table checking that certain user has liked this spot. it will set the fav filed to 0 if not added to their list or 1 if they have liked it.
This has now been applied to the Client and the appropriate action and icon will appear depending on the fav field of the spot data returned.
Using this query :
$q = "select *,(select COUNT(*) from favourites f where f.userID='".$this->db->escape_str($ID)."' AND f.PlaceID=p.ID) as fav from place p order by p.DateFound desc";
it will return spot data plus create a new field that will compare the spots with the favorites table checking that certain user has liked this spot. it will set the fav filed to 0 if not added to their list or 1 if they have liked it.
This has now been applied to the Client and the appropriate action and icon will appear depending on the fav field of the spot data returned.
Likes and Dislikes added to client
Liking and disliking has been incorporated into the client, and user are able to like and dislike spots.
Also the api calls to like and dislike ahve an added features, where ater the call has been made it will return total likes and dislikes of that spot at that moment of time, these numbers are displayed next to the icons and will update when there is a refresh or the user likes/dislikes a certain spot.a
Also the api calls to like and dislike ahve an added features, where ater the call has been made it will return total likes and dislikes of that spot at that moment of time, these numbers are displayed next to the icons and will update when there is a refresh or the user likes/dislikes a certain spot.a
Monday, 24 June 2013
Likes and Favourites
-Added Functional Like/Dislike options for each Spot.
There is now a table that stores all data relating to what spots that a has either liked or disliked, and based on this data a user will only be able to like or dislike and not both. If u user previously liked a spot but now decides to dislike it will decrements the total likes in the spot data and increment the dislike value, this works in vice versa. This data is stored in the votes table which stores the SpotID, UserID Like and dislike boolean fields.
-Add a favorites list, now users can add and remove spots from their favorites list.
There is now a table that stores all data relating to what spots that a has either liked or disliked, and based on this data a user will only be able to like or dislike and not both. If u user previously liked a spot but now decides to dislike it will decrements the total likes in the spot data and increment the dislike value, this works in vice versa. This data is stored in the votes table which stores the SpotID, UserID Like and dislike boolean fields.
-Add a favorites list, now users can add and remove spots from their favorites list.
There is now a favorites tables that stores the UserUD, and PlaceID, this table represents all the spots favourited by users. Using this table we can determine which spots have been liked by the user.
Monday, 17 June 2013
user added and authenticated, and Taking photos and then upload to server
App now adds user to DB, and all request require USER ID to make requests.
Got getting the camera to appear and take a picture, then upload that picture to cloudinary, and return the link to the image, which is then stored on our server.
Thursday, 13 June 2013
Wednesday, 12 June 2013
Getting and Displaying data
-Created dataService script contains all the functions to Get and Post data to Server.
- it has been modified so that each one now contains an extra field Signature, that is is also generated in the script.
- All functions are working with authenticating signatures, and fails appropriately when the signature is incorrect
- The MapsView, makes a function call to get an XML of all Spots and displays them on the map
MapsView:
-Now displays all spots from the DB (My local Server).
-When you click on a Spot marker it bring up an info window that shows details of that spot name etc, and also when it is clicked it draw a path from current location to spot.
NewSpots:
-Gets the num (5) most recently added spots, and displays images(hardcoded same url for each entry ), which are clickable in the scroll view.
- it has been modified so that each one now contains an extra field Signature, that is is also generated in the script.
- All functions are working with authenticating signatures, and fails appropriately when the signature is incorrect
- The MapsView, makes a function call to get an XML of all Spots and displays them on the map
MapsView:
-Now displays all spots from the DB (My local Server).
-When you click on a Spot marker it bring up an info window that shows details of that spot name etc, and also when it is clicked it draw a path from current location to spot.
NewSpots:
-Gets the num (5) most recently added spots, and displays images(hardcoded same url for each entry ), which are clickable in the scroll view.
Tuesday, 4 June 2013
Database Access
Set up database access for CodeIgniter. First api call testdb (http://ec2-54-214-55-127.us-west-2.compute.amazonaws.com/api/testdb). The api framework is set up and tested. Can start adding any relevant api calls to api.php!
Monday, 3 June 2013
Cloud Image Storage
We decided to go with Cloudinary as our Image Manager in the cloud. This will be where all our Images are going to be stored and retrieved from. We went with this one as it provide a simple and secure means to upload images and retrieve images.
We also tested out uploading images through the app and all the images successfully uploaded to the cloud and returned the appropriate resonses that contained the URl to retrieve the image.
Next step is to store the image location in the SQL Database in the Amazon Web Server
Cloud Storage: http://cloudinary.com/
We also tested out uploading images through the app and all the images successfully uploaded to the cloud and returned the appropriate resonses that contained the URl to retrieve the image.
Next step is to store the image location in the SQL Database in the Amazon Web Server
Cloud Storage: http://cloudinary.com/
Sunday, 26 May 2013
FB Login and Google Maps now Working!
Facebook login and Google Maps are now working!! Quite a pain. Latest version is updated on BitBucket. The login concept art might need to change to accomodate facebook login instead of managing logins our selves.
Design development
More UI development
Benni Otting
UI Testing
I started doing some user interface testing. Realised there were some issues with navigation between pages, so need to rethink some of the design. Getting somewhere though.
Benni Otting
Benni Otting
Saturday, 25 May 2013
Decided to use Restful Approach
Hey guys i decided to go with Sergey suggestion to use Codeigniter PHP framework. It pretty awesome and simple to use, currently I have tested at against the Database I built and it is correctly posting and getting Database entries. For now i am making it return all the data in a XML format, so far no problems.
So far it can:
Next step is putting the controller into the Amazon Web Server.
So far it can:
- Add a New Place to the Database
- Get all the Places.
- Add a Image Location (Possible a link to Flikr address of the image) to the database.
- Get all the images of Place based on its ID.
- Add a Post for a Place to the database.
- Get all the Posts from the database for a Place.
<root>
<element>
<ID>1</ID>
<Name>happy place</Name>
<Latitude>-41.318278</Latitude>
<Longitude>174.79735</Longitude>
<DateFound>2013-05-26 16:28:28</DateFound>
</element>
<element>
<ID>2</ID>
<Name>WonderLand</Name>
<Latitude>-41.318278</Latitude>
<Longitude>174.79735</Longitude>
<DateFound>2013-05-26 16:29:05</DateFound>
</element>
</root>
Created Database
I have created a database, that matched the application current needs. So far there is three tables:
CREATE TABLE IF NOT EXISTS `place` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Name` text NOT NULL,
`Latitude` double NOT NULL,
`Longitude` double NOT NULL,
`DateFound` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
CREATE TABLE IF NOT EXISTS `photos` (
`PhotoID` int(11) NOT NULL AUTO_INCREMENT,
`PlaceID` int(11) NOT NULL,
`ImageURL` text NOT NULL,
PRIMARY KEY (`PhotoID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `posts` (
`PostID` int(11) NOT NULL AUTO_INCREMENT,
`PlaceID` int(11) NOT NULL,
`Post` text NOT NULL,
`DatePosted` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`UserID` int(11) NOT NULL,
`Rating` double NOT NULL DEFAULT '0',
PRIMARY KEY (`PostID`)
- Place table: Which represents each Discovered Place.
- Photo Table: Which is table that contains an images location and the Place it belongs to.
- Posts table: Contains a table filled with posts relating to places and other meta data such as a Time stamp.
I having been testing this Database out in my WAMP server at home. Next Step will be adding this to Amazon Web Server.
CREATE TABLE IF NOT EXISTS `place` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Name` text NOT NULL,
`Latitude` double NOT NULL,
`Longitude` double NOT NULL,
`DateFound` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
CREATE TABLE IF NOT EXISTS `photos` (
`PhotoID` int(11) NOT NULL AUTO_INCREMENT,
`PlaceID` int(11) NOT NULL,
`ImageURL` text NOT NULL,
PRIMARY KEY (`PhotoID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `posts` (
`PostID` int(11) NOT NULL AUTO_INCREMENT,
`PlaceID` int(11) NOT NULL,
`Post` text NOT NULL,
`DatePosted` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`UserID` int(11) NOT NULL,
`Rating` double NOT NULL DEFAULT '0',
PRIMARY KEY (`PostID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
Monday, 20 May 2013
Sunday, 19 May 2013
Hey guys! I've decided we would be better off with an Amazon server so I've set up an instance. You can check it out here: http://ec2-54-214-76-117.us-west-2.compute.amazonaws.com/index.html
@Devyish pm me for access details
Edit: actually it might not work because I will try to keep the server offline when we aren't working on it. It's a free but limited instance and I don't want to go over out limit and have to pay. Cheers.
@Devyish pm me for access details
Edit: actually it might not work because I will try to keep the server offline when we aren't working on it. It's a free but limited instance and I don't want to go over out limit and have to pay. Cheers.
Subscribe to:
Posts (Atom)








































