In completing this assignment you MAY use/access the following resources:
- Examples and sample code found here:
https://josephus.hsutx.edu/classes/db/source/
- The SQL handout provided in class and also available here:
https://josephus.hsutx.edu/classes/db/source/sql.pdf
- A text editor (or VSCode) that provides syntax highlighting. You MAY
NOT USE an extensions to such editors/IDEs that produce code.
- The phpPgAdmin front end to your personal database (login is here:
https://csci.hsutx.edu/phpPgAdmin/
- Video instructions provided in Canvas as part of this course. You MAY
NOT USE any other video resources.
- Any handouts provided by the instructor as part of this course.
- Your own course notes
- Your instructor
- Discussions about the assignment with other students as long as you
never look at the code produced by another student and you never receive
instructions about solving the homework. That is, discussions need to
be about concepts and understanding the technologies and not about
how to solve the particular problem posed in this assignment.
You may NOT use/access:
- Resources not expressly listed above, including, but not limited to,
the following ...
- Source code not provided as part of this assignment. (Obviously, this
includes, but is not limited to, source code written by other students
whether current or in the past).
- Code-generating tools (of which ChatGPT is one example).
Failure to abide by these guidelines will result in a zero for the assignment
and the incident will be reported to the university provost as a violation of
the university academic integrity policy. A second incident of academic
dishonesty (whether from this course or another computer science course) will
result in an F in the course.
You will design a database, populate it with a script, and perform an aggregate query
to display data from it. Your script will will saved as hw14.js.
As in the previous assignment the final script should begin with a command to
remove all data from existing collections so that each time the script is run
there is a clean starting point. The hw14.js file should be executable by
the provided mongoexec script on csci.hsutx.edu.
Suppose you are creating a database for a web-based business that serves
customers across the world. The database will need to store information about
customers, purchases, and countries. Information that must be stored or able
to be calculated by queries:
- customer name, email, phone, date of birth, location
- customer login credentials
- country name, number of customers in country, geographical borders (leave
a placeholder for this, but no need to populate it with actual coordinates),
number of outlets in country
- customer order history (date and amount of each order)
- total revenue generated by each customer and country
Your design should have more than one collection and should make appropriate use
of nested documents. After you have written a script to create and populate your
collection write an aggregate lookup query to combine your collections and
display results from them.
In Canvas, upload your final working hw14.js script that shows your design
and implementation.