Create a web-based online dating system

Assignment Help Web Project
Reference no: EM132285759

Assignment 1 - Pencil Harmony

Overview

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

Important: This assignment specification is generated just for you. Do not distribute this specification.

Learning Outcomes Assessed
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 Harmony, 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 Harmony 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 sufficient;
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 - 30339568 - 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$123865933030000999999uekMhNpNUiJm4ZaKgwX8fzMwQ8.2rXpm'

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 **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 (optional!) - 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

It is possible to attain full marks for this assignment without completing this challenge task.
Further details
Documentation
Include a written report containing:

The SQL queries you used to test your database
A list of parts of the assignment you have completed or not completed.
Details of specific assistance you received from people other than your lecturer or tutor, and the names of those assisting.
Anything interesting or cool you'd like to draw your marker's attention to.

Attachment:- Dynamic Web Programming.rar

Verified Expert

This assignment is of PHP/MYSQL web application to create a dating type of site where user having interest in the different types of pencils can come to the website, create their account, and send messages to other user who share the same interest of the type of pencils as user. The user can update its profile and upload the his picture/photo which is displayed in his home page.

Reference no: EM132285759

Questions Cloud

Professional and scientific staff management : Professional and Scientific Staff Management (PSSM) is a unique type of temporary staffing agency.
What laws are relevant to weight and appearance : How might seemingly legitimate appearance requirements result in illegal discrimination? What should organizations do to minimize the likelihood
Explain what is meant by energy efficiency : Explain what is meant by energy efficiency and discuss what measures can be taken to achieve it, using specific examples from both industry and transport
Was the ganger a villain or a victim : Was the "Ganger" a villain or a victim? Explain your choice. With whom do you sympathize more: spacers or frelks? Why?
Create a web-based online dating system : ITECH3108 Dynamic Web Programming - Federation University - Create a web-based online dating system, vaguely similar to Plenty of Fish or Ok Cupid
What is the company year-end total liabilities amount : Beginning the new year, the Orange Company had total assets of $800,000 and total liabilities of $300,000. If total assets decreased by $80,000 and its owner's.
Write a letter to a friend in which you write to explain : You live in Georgia in October 1800 during the particularly nasty campaign between John Adams and Thomas Jefferson.
How an activity-based costing system can be implemented : Discuss how an Activity-Based Costing (ABC) system can be implemented in the company you researched and the benefits that the use will yield to the business.
Comparative effectiveness research compare : What kinds of treatments will comparative effectiveness research compare?

Reviews

len2285759

4/17/2019 1:34:20 AM

Bonus optional task - Moderation Meets specification (user report, moderator list, reputation system) (no partial marks) (+3) Documentation Initial data and test queries 1 Completion of tasks, Assistance statement (lose 1 mark each if not included) (-2) Quality of code Layout, structure, indentation (-1) Appropriate and consistent naming scheme (-1) Valid HTML5 (-1) Total: 20

len2285759

4/17/2019 1:34:13 AM

Profile and Interests Edit profile text and photo URL 1 Select interests 2 Matches List of users based on overlapping interests 3 List sorted appropriately 1 Messaged users do not appear in matches 1 Messages Send a message to a user 2 List messages from other users 2 Aggregate data Top 3 most-liked items 1 Most popular day to send messages 1

len2285759

4/17/2019 1:34:05 AM

Marking Guide: Assignment 1 Feature Criteria Maximum Obtained Initial data Requirements satisfied 1 Creating the database Table structure, data types, field lengths, initial data entry 1 User accounts Account sign-up 1 Validation that password meets complexity requirements (at least 5 characters) 1 Log in and Log out 1 Inappropriate password hashing (MD5, SHA1 or plain-text passwords) (-2)

Write a Review

Web Project Questions & Answers

  Create a web site with at least ten web forms

In this project, students need to create a Web Site with at least 10 web forms as the interface as the front end, plus build database as the back-end by using Visual Studio 2013.

  Expalin the design and functionality of the web site

You will be graded on the design and functionality of the Web site. You will be graded on the usability of the Web site.

  How many levels of headings are necessary

How many levels of headings are necessary? What are the different weights and sizes of the headings? How will text be emphasized?

  Insert a comment containing the text format default is ?at

Assignment: Intro XML Authoring- On the same line as the format attribute de?nition, insert a comment containing the text format default is ?at.

  Who is the intended audience

Visit a website readings that interests you. Review the home page or another pertinent page from the site. Write a summary that includes your reaction to the site. Address the following topics: What is the purpose of the site

  Create three new web pages

You are to create three new Web pages: one assignments directory page and two original pages about you - directory for your assignments

  Evaluate the quality of web sites

As your text states, anyone can put anything on the Web. To evaluate the quality of Web sites, we can think in terms of five criteria for evaluating the credibility of websites.

  Describe the steps you have taken to maintain your site

Describe the steps you have taken to maintain and redesign your site over the past several weeks. How is the process that you followed similar to or different from how sites are maintained and redesigned in the professional environment

  What are type of spry effects that can be added to a webpage

What are the types of Spry effects that can be added to a webpage? Identify three options and discuss how they can be appropriately used on the webpage.

  Graph the demand data

Graph the demand information for YarDarts. Forecast the demand for YarDarts for the next five years using the graphical judgment approach.

  Project budgeting estimating

You must submit both sections as separate files for the completion of this assignment. Label each file name according to the section of the assignment for which it is written. Additionally, you may create and / or assume all necessary assumptions ..

  What is the use of ip addresses and ports

List down the types of Request Method in HTTP protocol - What is the use of IP addresses and ports?

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