SEOClerks

Developer needed for creating a web app in PHP OOP

Developer needed for creating a web app in PHP OOP

I need a web application to be done. There are user stories that need to be followed. You may create the database with any tables that you deem necessary. Note the following:

Core PHP has to be used. (This means NO FRAMEWORK)
The site does not need to be hosted. I just have to be able to access it via localhost.
It MUST be done in PHP and using OOP.


Requirements

These are the user stories. They have to be followed VERY CAREFULLY. There are 3 actors: Tourist, Tour Guide and User admin.

You have to provide me daily updates on the progress, with code and pictures as well as marking off the stories that are done.


  • As a Tour Guide, I want to be able to register for a Tour Guide account so that I can be a Tour Guide.
  • As a Tour Guide, I want to be able to log in so that I can use my account and access the Tour Guide features.
  • As a Tour Guide, I want to be able to logout of the account so that I can exit the session.
  • As a Tour Guide, I want to be able to view my user profile so that I can view my information.
  • As a Tour Guide, I want to be able to switch the account to be a Tourist so that I can be a Tourist.
  • As a Tour Guide, I want to be able to view all the current tours that I have done so that I can review all the tours created by me.
  • As a Tour Guide, I want to be able to view all the past tours that I have done so that I can review all the past tours done by me.
  • As a Tour Guide, I want to be able to create a new tour so that I can get the Tourist to join the tour.
  • As a Tour Guide, I want to be able to postpone an existing tour so that I can change the date of the tour to a later date.
  • As a Tour Guide, I want to be able to search for tours so that I can view only keyword related tours.
  • As a Tour Guide, I want to be able to edit a tour so that I can make changes to the tour.
  • As a Tour Guide, I want to be able to view the Tourist who signed up for my tour so that I can understand the Tourist better.
  • As a Tour Guide, I want to be able to view the number of people joining the tour so that I can prepare for the tour.
  • As a Tour Guide, I want to be able to rate the Tourist so that I can evaluate the Tourist performance.
  • As a Tour Guide, I want to be able to review the Tourist so that I can provide feedback on the Tourist's performance.
  • As a Tour Guide, I want to be able to view my rating.
  • As a Tour Guide, I want to be able to view my review.
  • As a Tour Guide, I want to be able to view my tour rating.
  • As a Tour Guide, I want to be able to view my tour review.
  • As a Tour Guide, I want to be able to reply to the Tourist review so that I can respond to the Tourist review.
  • As a Tour Guide, I want to be able to reply to the Tour review so that I can respond to the review given by the Tourist.
  • As a Tour Guide, I want to be able to search for a tour so that I can look for a certain tour.
  • As a Tour Guide, I want to be able to leave a message for tourists so that I can communicate with tourists.


  • As a Tourist, I want to be able to register for a Tourist account so that I can be a Tourist.
  • As a Tourist, I want to be able to log in so that I can use my account and access the Tourist features.
  • As a Tourist, I want to be able to logout of the account so that I can exit the session.
  • As a Tourist, I want to be able to view my user profile sot hat I can view my information.
  • As a Tourist, I want to be able to switch the account to Tour Guide so that I can be a Tour Guide.
  • As a Tourist, I want to be able to book a tour so that I can participate in the tour.
  • As a Tourist, I want to be able to search for a tour so that I can view certain tours.
  • As a Tourist, I want to be able to view all the current tours that I have booked so that I can know what are the tours I have joined.
  • As a Tourist, I want to be able to view all the past tours that I have booked so that I can know what are the tours I had joined.
  • As a Tourist, I want to be able to view upcoming tours so that I can know what are the tours I can join.
  • As a Tourist, I want to be able to cancel the tour so that I can withdraw from the tour that I have joined.
  • As a Tourist, I want to be able to rate the tour so that I can evaluate the Tour.
  • As a Tourist, I want to be able to review the tour so that I can provide feedback for the Tour.
  • As a Tourist, I want to be able to rate the Tour Guide so that I can evaluate the Tour Guide on their performance.
  • As a Tourist, I want to be able to review the Tour Guide so that I can provide feedback on the Tour Guide performance.
  • As a Tourist, I want to be able to view my rating.
  • As a Tourist, I want to be able to view my review.
  • As a Tourist, I want to be able to reply to the Tour Guide review so that I can respond to the Tour Guide review.
  • As a Tourist, I want to be able to leave a message for Tour Guide so that I can communicate with the tour guide.


  • As a User Admin, I want to be able to register for a User Admin account so that I can use my account and access User Admin features.
  • As a User Admin, I want to be able to log in so that I can use my account.
  • As a User Admin, I want to be able to logout the account so that I can exit the session.
  • As a User Admin, I want to be able to suspend an account so that I can ban the account from using.
  • As a User Admin, I want to be able to switch the role of the account (Tourist/Tour Guide) so that I can change the user’s role.
  • As a User Admin, I want to be able to view all the accounts so that I can review all the users.
  • As a User Admin, I want to be able to update the account information so that I can update the User’s information.


Skills Required

PHP MySQL HTML CSS OOP

Bids

No bids made yet - be the first!

Bid On Listing

Bid On Listing Created 6 years ago in Programming

Other jobs by Vaunt

Order Now
Process Time: 0.18909287452698

Possible Duplicate queries found!
MatchCountSQLScript
SELECT * FROM wanttobuy A, categories_wanttobuy B, seoclerks.members C WHERE A.wantid='70889' AND A.category=B.CATID AND A.USERID=C.USERID1SELECT A.*, B.name, B.seo, C.username, C.userlevel, C.footer_code, C.rating, C.ratingcount, C.googleplus_profile, C.total_recommendations, C.USERID, C.profilepicture, C.average_response_time, C.lastlogin, C.addtime FROM wanttobuy A, categories_wanttobuy B, seoclerks.members C WHERE A.wantid='70889' AND A.category=B.CATID AND A.USERID=C.USERID

/opt/clerks-staging/docroot/viewwant.php 163 () ()

SELECT * FROM ratings_buyer WHERE USERID=8663591SELECT sum(good) as thumbup, sum(bad) as thumbdown FROM ratings_buyer WHERE USERID=866359

/opt/clerks-staging/docroot/include/functions/main.php 19523 GetRatingsAsBuyerTotal() ()

SELECT * FROM wanttobuy A, categories_wanttobuy B WHERE A.wantid != 70889 AND A.category=B.CATID AND A.active=1 AND (A.tags like '%PHP MySQL HTML CSS OOP%' ) LIMIT 41SELECT A.wantid, A.title, A.p1, A.maxprice, B.name, B.seo FROM wanttobuy A, categories_wanttobuy B WHERE A.wantid != 70889 AND A.category=B.CATID AND A.active=1 AND (A.tags like '%PHP MySQL HTML CSS OOP%' ) LIMIT 4

/opt/clerks-staging/docroot/viewwant.php 551 () ()

SELECT * FROM wanttobuy A, categories_wanttobuy B WHERE A.wantid != 70889 AND A.category=B.CATID AND A.active=1 AND A.USERID=866359 LIMIT 41SELECT A.wantid, A.title, A.p1, A.maxprice, B.name, B.seo FROM wanttobuy A, categories_wanttobuy B WHERE A.wantid != 70889 AND A.category=B.CATID AND A.active=1 AND A.USERID=866359 LIMIT 4

/opt/clerks-staging/docroot/viewwant.php 568 () ()

SELECT * FROM wantcomments a, seoclerks.members b WHERE a.PID='70889' AND a.USERID=b.USERID and b.status='1' AND a.status=1 order by a.CID asc1SELECT a.comment, a.USERID, a.CID, a.time_added, a.istranslated, a.parentid, b.username, b.profilepicture FROM wantcomments a, seoclerks.members b WHERE a.PID='70889' AND a.USERID=b.USERID and b.status='1' AND a.status=1 order by a.CID asc

/opt/clerks-staging/docroot/viewwant.php 835 () ()

UPDATE wanttobuy SET viewcount = viewcount + 1 WHERE wantid='70889'1UPDATE wanttobuy SET viewcount = viewcount + 1 WHERE wantid='70889'

/opt/clerks-staging/docroot/include/functions/main.php 1729 update_wantviewcount() ()

SELECT * FROM wantbids as w, seoclerks.members AS m WHERE w.active=1 AND m.USERID=w.USERID AND m.status=1 AND w.USERID>0 AND w.wantid='70889' ORDER BY w.bidid ASC 1SELECT w.bidid, w.PID, w.comment, w.title, w.pricepublic, w.USERID, w.adjustedprice, w.ip, m.profilepicture FROM wantbids as w, seoclerks.members AS m WHERE w.active=1 AND m.USERID=w.USERID AND m.status=1 AND w.USERID>0 AND w.wantid='70889' ORDER BY w.bidid ASC

/opt/clerks-staging/docroot/viewwant.php 1192 () ()

SELECT * FROM categories_wanttobuy1SELECT * FROM categories_wanttobuy

/opt/clerks-staging/docroot/libraries/adodb5/adodb.inc.php 1899 CacheExecute() parseRedundantQueriesCache()

SELECT * FROM posts WHERE USERID=8663591SELECT sum(positive_ratings) as thumbup, sum(negative_ratings) as thumbdown FROM posts WHERE USERID=866359

/opt/clerks-staging/docroot/libraries/adodb5/adodb.inc.php 1899 CacheExecute() GetBuyerRatingsTotal()

SELECT * FROM categories1SELECT * FROM categories

/opt/clerks-staging/docroot/libraries/adodb5/adodb.inc.php 1899 CacheExecute() parseRedundantQueriesCache()

select * from categories_software order by name asc1select * from categories_software order by name asc

/opt/clerks-staging/docroot/libraries/adodb5/adodb.inc.php 1899 CacheExecute() insert_GetSoftwareCategories()

select * from categories_wanttobuy order by name asc1select * from categories_wanttobuy order by name asc

/opt/clerks-staging/docroot/libraries/adodb5/adodb.inc.php 1899 CacheExecute() insert_get_wantcategories()

select * from categories_wanttotrade order by name asc1select * from categories_wanttotrade order by name asc

/opt/clerks-staging/docroot/libraries/adodb5/adodb.inc.php 1899 CacheExecute() insert_get_tradecategories()

SELECT * FROM seoclerks.members WHERE USERID='866359'1SELECT profile_data FROM seoclerks.members WHERE USERID='866359'

/opt/clerks-staging/docroot/include/functions/main.php 1927 getUserBackground() include()

Invalid SQL

count(*)sql1error_msg

Expensive SQL

Tuning the following SQL could reduce the server load substantially
LoadCountSQLMaxMin

Suspicious SQL

The following SQL have high average execution times
Avg TimeCountSQLMaxMin
0.1174011SELECT A.wantid, A.title, A.p1, A.maxprice, B.name, B.seo FROM wanttobuy A, categories_wanttobuy B WHERE A.wantid != 70889 AND A.category=B.CATID AND A.active=1 AND (A.tags like '%PHP MySQL HTML CSS OOP%' ) LIMIT 40.1174010.117401
0.1147181SELECT * FROM members WHERE show_freelancer = 1 AND status = 1 AND total_recommendations > 0 AND (skills LIKE '%cordova%') ORDER BY total_recommendations desc LIMIT 0,400.1147180.114718