Create a web-based online networking system

Assignment Help Software Engineering
Reference no: EM132359192

Dynamic Web Programming Assignment - Shared Interest Day

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

Important: Do not distribute this specification.

Learning Outcomes Assessed - The following course learning outcomes are assessed by completing this assessment:

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

Assessment Details -

For this assignment, you will create a web-based online networking system.

Your platform is dedicated to matching up people with a shared interest in certain topics.

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

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, pro?le, photo_url)
  • SharedInterest (id, title)
  • Likes (user_id, sharedinterest_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 ?eld), and include the URL of a photograph (stored in the photo_url field).

Each record in the SharedInterest table represents a shared interest that a user can indicate that they like.

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

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

Finally, Shared Interest Day 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 sharedinterest_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 topics; and
  • 5 users, each of whom likes at least 2 topics (see note below)

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

Topics entires in the database can be anything that captures your interest, for instance the title of a topic could be five entries: Neuralink, Tesla, Open Water, TED, Microbiology.

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.

Use your student id and course code as the database name as follows: ITECH3108_your student number_A1.

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$MTIzcmVibXVuIHRuZWR1d.sN1bplLsAOA428thF.nik7Idz26Bo1K'

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 SharedInterest 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 Collaborators -

Create a page listing potential collaborators.

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 topics.

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, sub-queries 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 topics, ordered in descending order by number of likes;

The most popular day of the week to send messages;

Bonus challenge task (optional!) - New Topics

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

  • Users can add new topics.
  • A moderator can approve new topics.
  • Users found to be in violation of site rules for posting inappropriate topics should have their accounts disabled, but should not be deleted.

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:- Dynamic Web Programming Assignment File.rar

Verified Expert

In this assignment we have studied the current scenario. Here, I have create the database as per given relationship.I have create the php pages in this website. I have performed the create, update ,delete and create operation in this website. User can create account and make like the post if any.

Reference no: EM132359192

Questions Cloud

Research specific leadership and management traits : Research specific leadership and management traits and theories necessary for managing a multidisciplinary and multicultural health care organization
Most important roles in the criminal justice system : The courts have one of the most important roles in the criminal justice system. They are responsible for the interpretation and application of law when crimes
What is the purpose of the organisation : or this assignment, we would like you to think about an organisation - What is the purpose of the organisation? What is the scope of its operations
Most important roles in the criminal justice system : The courts have one of the most important roles in the criminal justice system. They are responsible for the interpretation and application of law
Create a web-based online networking system : ITECH3108 Dynamic Web Programming Assignment - Shared Interest Day, Federation University Australia. Create a web-based online networking system
Person is the right fit for the job and or the organization : How often does the military fill a position without ensuring that person is the right fit for the job and or the organization?
Discuss one constitutional principle related to criminal law : The lecture for this week, you will discuss one constitutional principle related to criminal law that is based on the amendment you selected ·
An introduction containing thesis that states the issue : An introduction containing a thesis that states the issue, your position on the issue, what the paper will cover, and in what order.
Professional dispositions self-assessment survey : statement of your educational philosophy using the results of your "Professional Dispositions Self-Assessment Survey." Your philosophy may be grounded in theory

Reviews

len2359192

8/21/2019 10:06:38 PM

Please read the description carefully and place all the files in a zip folder once the assignment is done. Thank you. Feel free to ask me any confusions! 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.

len2359192

8/21/2019 10:06:29 PM

Assignment support - This assignment is supported by the first 5 lectures and the first 6 labs. Work on the assignment should be spread over several weeks after the relevant lab has been mastered. Submission - All files should be submitted to Moodle by the due date and time. Check with your tutor as to whether a hard copy is required in addition to the electronic submission.

Write a Review

Software Engineering Questions & Answers

  Research report on software design

Write a Research Report on software design and answer diffrent type of questions related to design. Report contain diffrent basic questions related to software design.

  A case study in c to java conversion and extensibility

A Case Study in C to Java Conversion and Extensibility

  Create a structural model

Structural modeling is a different view of the same system that you analyzed from a functional perspective. This model shows how data is organized within the system.

  Write an report on a significant software security

Write an report on a significant software security

  Development of a small software system

Analysis, design and development of a small software system.

  Systems analysis and design requirements

Systems Analysis and Design requirements

  Create a complete limited entry decision table

Create a complete limited entry decision table

  Explain flow boundaries map

Explain flow boundaries map the dfd into a software architecture using transform mapping.

  Frame diagrams

Prepare a frame diagram for the software systems.

  Identified systems and elements of the sap system

Identify computing devices, which could be used to support Your Improved Process

  Design a wireframe prototype

Design a wireframe prototype to meet the needs of the personas and requirements.

  Explain the characteristics of visual studio 2005

Explain the characteristics of Visual Studio 2005.

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