Instructions
In this step, you will create the HTML
front-end for your web app to provide all the CRUD
functionalities described in the CS340 Project Guide, as well as write the queries that will be run on the Database to provide each functionality.
Deliverable
A ZIP
archive containing the FOUT ITEMS detailed below:
- A
.PDF
file containing information from previous steps.
- A
URL
to an index.html
file that contains a list of all your HTML
pages. Include this URL
at the top of your PDF
file and in your discussion post.
- The
.SQL
file with your Data Manipulation Queries. These are the queries used by your website to allow users interact with data. SELECT
, INSERT
, UPDATE
and DELETE
queries are required to provide the functionalities described in the CS340 Project Guide.
- The
.SQL
file that contains your Data Definition Queries as well as the sample data INSERT
statements from the previous step.
Make sure to name your zip file projectgroupX_stepX_DRAFT/FINAL.zip
., e.g. ProjectGroup42_Step3_DRAFT.zip
.
PDF File
-
Updated Project and Database Outlines, ERD
, Schema, and Sample Data
This section should include the revised outline, ERD
, Schema, and sample data based on the feedback from the grader and peers, as well as any design decisions you made on your own. It is required that you use the various design tools you have learned up to this point (such as Normalization steps, ON DELETE CASCADE
, etc.) to review and fix your ERD
and Schema. The application of these concepts will be graded your Final Project submission.
-
Fixes based on Previous Step Feedback:
This section of your PDF
should detail everything you were told to fix in the feedback from the grader and peer reviewers in previous steps, as well as how you fixed it. If you chose not to fix things based on the feedback, this section would explain why you believe they should remain as they are. Please mention if you did not receive feedback from a grader or reviewer on a specific step.
In addition, if you are making any adjustments due to your own revised design choices, they should be listed here along with the justification.
URL
of an index.html
page
You must submit a URL
for an index page that links to all the other static pages in your website (e.g. http://flip2.engr.oregonstate.edu:9124 —or— https://web.engr.oregonstate.edu/~yourONID/cs340/index.html) with a short but informative title for each page such as "Browse existing ships", "Add new ship", "Manage certifications for each character".
These are the static HTML
pages that the user will interact with when visiting your Project Website. Your HTML
pages should be the front-end implementation for all of the CS340 Project Guide's functionalities. These can be plain old HTML
, or you can build them using the templating engine of the web technology you choose (e.g. handlebars
files), as long as each page is browsable and contains the CRUD
forms you intend to implement.
So, basically, you need to create the client-side version of your site, which includes any forms, any client-side validation that you want to perform (though it is not required), and any images, etc. that you want to be included in the website. As a result, the project website is operational without any back-end or database interaction.
You can simply deploy this website inside the public_html
directory on the flip server, or you can create a server running with a port number, as you did in Activity 2 - Connect webapp to database (Individual). Keep in mind that the public_html
servers are running outdated versions of Node.JS
and Python
, which students are unable to update. So, anything other than HTML
(e.g. a templating engine such as handlebars
, jinga
or react
) requires a server running with a port number on one of the flip servers, just like what you did in Activity 2 - Connect webapp to database.
This URL
must be included on the first page of your PDF
as well as in your discussion post.
For a sample website built with the BSG
database, I would submit the URL
to an index.html
page that lists all of the other pages on the site, along with a brief description of what functionality is available on each page. Here is an example of how those files might look.
The Data Manipulation Queries should be contained in a single .SQL
file:
These are the queries used by your website to allow users to interact with data. SELECT
, INSERT
, UPDATE
, and DELETE
queries are required to provide the functionalities described in the CS340 Project Guide.
Anything that is a variable that you expect the user to fill or that is computed by your back-end code and passed to MySQL
/MariaDB
should be surrounded by special characters. This variable is commonly used by your back-end code to send data to the SQL
server. You can choose from a variety of special characters. Simply add a SQL
comment (as shown below) indicating which characters will be used to denote the sample part.
The following query, for example, can be found in bsg_sample_data_manipulation_queries.sql
.
-- Query for add a new character functionality with colon : character being used to
-- denote the variables that will have data from the backend programming language
INSERT INTO bsg_people (fname, lname, homeworld, age)
VALUES (:fnameInput, :lnameInput, :homeworld_id_from_dropdown_Input, :ageInput);
Here, :fnameInput
denotes the variable that will contain the value of First Name when the NodeJS
code processes it. Again, you are free to use any method of denoting these variables.
We only want to see SQL
in this case. Include no code from JavaScript
, PHP
, or any other programming language used to process the data.
Except for the variable part described above, all queries should be syntactically correct and relevant to other parts of your Project and the version of Data Definition Queries that you submit here. This means that if the variable names are replaced with actual data, all of your queries should work.
How do I turn in this assignment?
- Create a post in Ed Discussion called
Group XX Project Step 3 Draft
. Project Step 3 Drafts & Reviews is the category for your posting. Communicate with your team to find out who is submitting the draft. Include both members' names as well as your Group number.
- Post the deliverables described (the
ZIP
file and the URL
of your website) in the Discussions section of the Project Step 3 Draft Version Ed Discussion post.
- After that, copy the
URL
of your Ed post and paste it into Canvas. For the group, only one teammate must submit.
- Each team member should then review two additional drafts — reviews are an important part of the process because you are helping others while learning. Make an effort to make thoughtful and substantial suggestions.
How should I get started?
I recommend creating a list of all CS340 Project functionalities that are relevant to your database. "Add entries to each table," for example, could mean "Add a new BSG person," "Add a new Certification," and so on.
Then, create a prototype of how you want your HTML
page to look. An "Add new BSG person" page, for example, would include fields for first
and last name
, a dropdown for Homeworld
, and an age
field. Also, keep in mind that you do not have to implement all of your functionalities on separate pages. On the page that lists all bsg_people
, I can have a delete
button for each entry.