ITECH3108 Dynamic Web Programming Assignment

Assignment Help Other Subject
Reference no: EM132419000

ITECH3108 Dynamic Web Programming - Federation University

Assignment - Pencil Radar

Overview

This is an individual assignment in which you are required to develop a dynamic web application as described below.

Learning Outcomes

The following course learning outcomes are assessed by completing this assessment:

K3. Detect opportunities for increasing security and privacy of web applications
S1. Develop client/server web applications using client-side and server-side code
S2. Connect to and manipulate a database management system programmatically using server-side code
A1. Design, develop, test, and debug client/server web applications to provided specifications

Assessment Details

For this assignment, you will create a web-based online dating system, vaguely similar to "Plenty of Fish" or "Ok Cupid".

Your platform is dedicated to matching up people with a shared interest in a certain topic - for your assignment the topic is Pencil Radar, a place for pencil enthusiasts to meet.

Users can create accounts, indicate a set of pencils that they like, and find people to message who like similar pencils.

You must implement this platform using PHP and MySQL or MariaDB, with some JavaScript for validation.

Database Structure
The web application uses a relational database. The database has the following structure:

  • User ( id, name, email, password, profile, photo_url )
  • Pencil ( id, title )
  • Likes (user_id, pencil_id)
  • Message (from_user_id, to_user_id, datetime, text)

Primary keys are indicated with underlines or bold formatting, and foreign keys are italicized.

Each record in the User table represents a member of the site who is looking for love. Members can write a short piece of text about themselves (stored in the profile field), and include the URL of a photograph (stored in the photo_url field).

Each record in the Pencil table represents a pencil that a user can indicate that they like.

The Likes table stores information about which Pencil records each member has indicated that they like. These will be used to match with other members of the site who like similar pencil.

If a record (1, 2) exists in Likes, this means the user with id 1 likes the pencil with id 2.

Finally, Pencil Radar should allow members to send messages to each other. The Message table tracks messages sent between members, along with the date and time that the message was sent.

The following constraints should be applied when implementing the application:

The user_id and pencil_id fields in the Likes table form a compound primary key;
The from_user_id and to_user_id fields in the Message table form a compound primary key, and both refer to the id field in the User table - you may choose to use a message_id instead if you prefer; The datetime field should be stored as a MySQL datetime type;
The password field should be a VARCHAR of 255 characters. The name, email and photo_url fields should be VARCHAR of a length that you determine to be reasonable and su?cient;
The User profile and Message text fields should be either VARCHAR or TEXT.

Please note that you are free to extend this database schema if required.

Initial Data

When the database is created, it should be populated with data of your own invention, appropriate to the theme (keep it clean).

You should have at least:

5 pencils; and
5 users, each of whom likes at least 2 pencils (see note below)

One of the users must be you (even if you are not looking for love or even interested in pencils). Use your student id - 30349748 - for the username, and your real name and email address. Invent other users as necessary - perhaps use characters from your favourite movie or band.

One of your users must also have the username tutor and the password guest. You do not need to include any messages in this initial data.
Include this data as part of your written report.

Database creation DDL

Create an SQL file that creates the MySQL database, creates the four tables above, and populates them with your initial data.

Passwords should be hashed using, at minimum, the crypt() PHP function. Prefer to use the PHP
password_hash() function to generate password hashes.

For the password 'guest', the following hash may be used in your database:

PASSWORD = '$2y$10$123847943030000999999uywjMn1I.h5Nu0hziCMLYPkXlu5azSyC'

It is acceptable for all initial users to share the same password for testing.

Use of MD5 or SHA1/2 for password hashes is not acceptable.

Write SQL queries that display all of the initial data using SELECT statements, and list these queries in your report.

User accounts

Write PHP and HTML to allow new users to sign up. The form should request a username, email address and password. The password must be hashed before storing it in the database.

Using PHP, validate that the username is unique, and the password is at least 5 characters (before hashing).

Write PHP code to allow users to log in and log out. This will require the use of sessions and/or cookies.

Setting interests

Allow users to edit their profile - changing their profile text and photo URL.

Write PHP and HTML code to allow a user to choose items from the `` table that they like.

You may implement this using whatever User Interface approach makes sense to you - perhaps either a set of checkboxes, a set of buttons, or using a search box and some JavaScript.

Finding matches

Create a page listing potential matches.

Write PHP and HTML that shows the logged-in user a list of other users who might be a good match based on their overlapping interest in pencils.

A user with whom the logged-in user shares no items in common should not appear in the list.

A user with whom the logged-in user shares all items in common should appear higher in the list than a user with whom they only share a few interests.

It is up to you determine an appropriate way to sort this list. You may choose to adjust your database schema, although it's not required.

Each displayed match should include the match's name, photo and profile text.

Messages

Write PHP and HTML to allow a logged-in user to send a message to another user of the site. Sending a message should be implemented by adding an entry to the Message table.

Create a messages page that displays the messages sent and received by the logged-in user, including the date and time for each message.

Adjust your matches page so that users no longer appear as a match once they have been messaged.

Aggregate data

Create a page that displays the following information, using SQL aggregation such as COUNT and SUM, subqueries or nested SELECT statements, inner joins and (left or right) outer joins.

The total number of messages sent on the site;
The **top 3 most-liked **, ordered in descending order by number of likes; The most popular day of the week to send messages;

Bonus challenge task  - Moderation

Extend the data model and write code to implement moderation features:

Users can report users for violating site rules;
A moderator can review reported users, sorted by number of reports, weighted by the reporting user's reputation (descending order)
Users found to be in violation of site rules should have their accounts disabled, but should not be deleted Users who incorrectly report users for being in violation when they are not should have reputation reduced, so their reports are less important in future
Users who correctly report other users should have their reputation increased, so their reports are more important in future

There are no partial marks awarded for this bonus task - you must complete all features to attain the bonus marks.

It is possible to attain full marks for this assignment without completing this challenge task.

Attachment:- Pencil Radar.rar

Verified Expert

This assignment is of creating a dynamic website using PHP/MySql for PENCIL RADAR which is a website for pencil lovers. In the website user can create their account, and login and logout. The each user can edit their profile and select the type of pencil they likes. The user can see the other user who share the same likes of the pencil. The users can send and receive messages from other user which have same likes. The website also gives the aggregate reports of the top three likes.

Reference no: EM132419000

Questions Cloud

Prepare journal entries of runner company : On January 1, 2017, Runner Company pays $10 million for 40% of the outstanding common stock of a supplier called Jog, Inc. On December 1, 2017 Jog, Inc
Describing the 4ps of marketing and its importance : Describing the 4Ps of marketing and its importance in company success and provide example from the business world to support your explanation.
EEE470 Protection Project Assignment : EEE470 Protection Project Assignment - Build a simulation of the above system using PowerWorld. Design a distance (impedance) protection system
Discuss iron sports competitive advantage challenge : Discuss Iron Sports competitive advantage challenge
ITECH3108 Dynamic Web Programming Assignment : ITECH3108 Dynamic Web Programming Assignment Help and Solution, Pencil Radar Assessment help - Federation University - develop a dynamic web application.
About maestro assignment : About Maestro Assignment help and solutions:- Develop the company's pricing and distribution strategy and Develop your public relations, sales promotion
Report on how public relations works in industry : Report on how public relations works in industry-by folowing the steps of choosing industry, overview, websites review, purpose and CSR and finalize the report.
Compute the depreciation expense for 2017 : Compute the Depreciation Expense for 2017 under both the straight-line and double-declining balance depreciation methods.
Journal entries-united delivery services : Question: Prepare the journal entries necessary to record these transactions. Please describe your solutions.

Reviews

Write a Review

Other Subject Questions & Answers

  Cross-cultural opportunities and conflicts in canada

Short Paper on Cross-cultural Opportunities and Conflicts in Canada.

  Sociology theory questions

Sociology are very fundamental in nature. Role strain and role constraint speak about the duties and responsibilities of the roles of people in society or in a group. A short theory about Darwin and Moths is also answered.

  A book review on unfaithful angels

This review will help the reader understand the social work profession through different concepts giving the glimpse of why the social work profession might have drifted away from its original purpose of serving the poor.

  Disorder paper: schizophrenia

Schizophrenia does not really have just one single cause. It is a possibility that this disorder could be inherited but not all doctors are sure.

  Individual assignment: two models handout and rubric

Individual Assignment : Two Models Handout and Rubric,    This paper will allow you to understand and evaluate two vastly different organizational models and to effectively communicate their differences.

  Developing strategic intent for toyota

The following report includes the description about the organization, its strategies, industry analysis in which it operates and its position in the industry.

  Gasoline powered passenger vehicles

In this study, we examine how gasoline price volatility and income of the consumers impacts consumer's demand for gasoline.

  An aspect of poverty in canada

Economics thesis undergrad 4th year paper to write. it should be about 22 pages in length, literature review, economic analysis and then data or cost benefit analysis.

  Ngn customer satisfaction qos indicator for 3g services

The paper aims to highlight the global trends in countries and regions where 3G has already been introduced and propose an implementation plan to the telecom operators of developing countries.

  Prepare a power point presentation

Prepare the power point presentation for the case: Santa Fe Independent School District

  Information literacy is important in this environment

Information literacy is critically important in this contemporary environment

  Associative property of multiplication

Write a definition for associative property of multiplication.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd