Let us worry about your assignment instead!

We Helped With This Programming Assignment: Have A Similar One?

SOLVED
CategoryProgramming
SubjectOther
DifficultyCollege
StatusSolved
More InfoHomework Help Computer Science
45181

Assignment Description

Winter WEBD 236 Lab 3

If you use an external source (i.e. a web-page, the required textbook, or an additional book) to help you answer the questions, then be sure to cite that source.  You should probably always be citing a source.

Problem

Having just learned about sessions and simple authentication, we are ready to add these features to our Q&A forum from Lab 2.  In this lab, you will allow people to register for an account.  Users have the following attributes:

       First name

       Last name

       Email address

       Password (kept in plain text for now)

Furthermore, all questions should now be associated with a registered user.  In other words, you will need to add a column to your questions table that is the primary key of the user.

When you visit the forum, you should see something similar to the following:

Notice that each question now has a user name (as a hyperlink) that is associated with the question.  If you click on the user who posted the entry, you will see a profile screen similar to the following:

Notice that the user profile screen also lists all questions created by that user.  If the user clicks the “Register” link in the upper right hand corner, then they are presented with the following registration page.

Naturally, all fields are required.  Aside from ensuring non-empty fields, the email address must be unique for all users – using an existing e-mail address should be flagged as an error (see below).

 

Once the fields are all validated, the user is created and immediately logged in and redirected to the home page for the forum (see below).  Notice that the forum welcomes them by name, and they now have a link at the bottom to add a question.  Also, the “Register” link has become “My Profile” and the

“Login” link has become “Log out.”

A user who logs out, and wishes to log back in again can click on the “Login” link and be directed to a login page as shown below.

After logging in, the user should be directed back to the main forum screen.

When a user views a question that does not belong to them, they can merely view it (see below).

However, if the user is the owner of the question, then the user can also edit and delete the question (see below). 

The same is true of the profile information.  If the user selects “My Profile” they are taken to the same screen as anyone would be to view another’s profile.  However, they have the additional options of editing and deleting their own profile.  See below.

When a user decides to delete their profile, you must maintain referential integrity in the database.  Therefore, you must first programmatically delete all forum posts belonging to that user and then remove the user and log them out.   For example, if Reginald Cooper deletes himself, then immediately upon clicking “Delete,” you would see the following main page (without his question).

As with all good software, an effort to URL fish into an area that requires a login should redirect to a login page.  Furthermore, if the user is logged in, but tries to URL fish to, say, delete another user, then the program should not permit that action.

Basic Requirements:

       Add a login screen

       Add a user registration screen

       When a user is logged in, the header should welcome the user and have link to the home page, the user profile, and a log out button.

       When no user is logged in, the header should merely have a link to the home page, a link to register, and a link to log in.

       Without logging in, users should be able to view questions and other users’ profiles.

       When logged in, users should be able to create, edit, and delete their own questions (but not others’ questions), and edit and delete their profile.

       No duplicate email addresses should be permitted.

       All sessions should be over HTTPS.

Helpful Hints

       See the LoginExample file posted on the supplemental web site for how to add basic user login capabilities.

       You should use SQLite (not MySQL) for this project.

       Make sure that your project works on any server on any directory.  In other words, you should never hard-code a URL with the name or IP address of your machine.  We won’t be using your machine when we test it.  Also, you should not hard-code a directory name in your application.  It should run as http://localhost/forum/index or as http://localhost/myforum/index or any other directory URL.

       Use the MVC framework developed in class.  This will help, since the project is getting bigger. 

Submission instructions

Create a ZIP file of your entire project contents as it is found under your C:XAMPPhtdocsforum3 directory.  This ZIP file should contain your database, your PHP scripts, style files, etc. Follow proper coding conventions (indentation, commenting, etc.) that you would have learned in previous courses.

Submit the ZIP file to the dropbox for this assignment in the course.

Assignment Description

This is a PHP programming. I am using Aptana, SQ lite. For this lab.

MUST use the MVC template structure.

Example how the files should be separate in their own folders. Please use all the folders and name it as you see it. When I open the folders I need it to look like this.

Assignment Description



Six steps to database design

   Identify the data elements

   Subdivide each element into its smallest useful  components

   Identify the tables and assign columns

   Identify primary and foreign keys (relationships)

   Normalize

   Identify indices


 



Database Design


Example:

Consulting company connects people with the right skills to clients who need those people to work on specific projects

Database Design

 

   Need to know which employees have certain skills (and at what level), and assign them to a project for certain dates.

   A client can have more than one project, but each project has a specific contact person (sponsor) within the client’s organization.

6


 

8

 




Is the database normalized?

   Third normal form:   2NF and every non-key  attribute must depend only on the primary key

   Boyce-Codd normal form: (BCNF) a non   -key  attribute cannot depend on a non-key attribute  

                                   (avoids transitive dependencies )  

   Higher forms: interesting, but not particularly  useful for this course.

12


 


 

       

14

 


      CREATE DATABASE – Needed in a multi- database server (MySQL), but not for SQLite.

CREATE DATABASE IF NOT EXISTS Contracting;

      USE – again, for servers w/ many DBs

USE  Contracting;

      DROP DATABASE – irreversable

DROP DATABASE Contracting;

16


 











22


 





Why load initial data

   Need the DB to be in an initial state for the  application to work

   Need something to test interactively

data.txt file  

               Joe,O'Conner,...                                             containing contact  

               John,Roberts,...                                         information to load

Bill,Kilbourne,...

Ruth,Richardson,...

24


 



















34

 



 

Frequently Asked Questions

Is it free to get my assignment evaluated?

Yes. No hidden fees. You pay for the solution only, and all the explanations about how to run it are included in the price. It takes up to 24 hours to get a quote from an expert. In some cases, we can help you faster if an expert is available, but you should always order in advance to avoid the risks. You can place a new order here.

How much does it cost?

The cost depends on many factors: how far away the deadline is, how hard/big the task is, if it is code only or a report, etc. We try to give rough estimates here, but it is just for orientation (in USD):

Regular homework$20 - $150
Advanced homework$100 - $300
Group project or a report$200 - $500
Mid-term or final project$200 - $800
Live exam help$100 - $300
Full thesis$1000 - $3000

How do I pay?

Credit card or PayPal. You don't need to create/have a Payal account in order to pay by a credit card. Paypal offers you "buyer's protection" in case of any issues.

Why do I need to pay in advance?

We have no way to request money after we send you the solution. PayPal works as a middleman, which protects you in case of any disputes, so you should feel safe paying using PayPal.

Do you do essays?

No, unless it is a data analysis essay or report. This is because essays are very personal and it is easy to see when they are written by another person. This is not the case with math and programming.

Why there are no discounts?

It is because we don't want to lie - in such services no discount can be set in advance because we set the price knowing that there is a discount. For example, if we wanted to ask for $100, we could tell that the price is $200 and because you are special, we can do a 50% discount. It is the way all scam websites operate. We set honest prices instead, so there is no need for fake discounts.

Do you do live tutoring?

No, it is simply not how we operate. How often do you meet a great programmer who is also a great speaker? Rarely. It is why we encourage our experts to write down explanations instead of having a live call. It is often enough to get you started - analyzing and running the solutions is a big part of learning.

What happens if I am not satisfied with the solution?

Another expert will review the task, and if your claim is reasonable - we refund the payment and often block the freelancer from our platform. Because we are so harsh with our experts - the ones working with us are very trustworthy to deliver high-quality assignment solutions on time.

Customer Feedback

"Thanks for explanations after the assignment was already completed... Emily is such a nice tutor! "

Order #13073

Find Us On

soc fb soc insta


Paypal supported