SYST24444 Assignment 2
SYST24444 Assignment 2
● Create a new Angular app called A2yourloginname (ex. A2doejane) - NOTE: Marks off if not named as specified
o Use New Angular Application With Material in the Angular References Module on starting a new project
with defaults.
▪ This will be a mobile assignment formatted for landscape view only
● Note: Styling included is mostly for testing Angular concepts and mobile layout
● Copy the Assignment02.json file into the assets/data folder and open the A2Info.txt file
● Include the code in the A2Info.txt file to update the tsconfig.json file
● Update the Assignment02.json file to include your personal/Sheridan information where indicated AND update the
myBooks array with your own data (Note: published field is a number data type)
o NOTE: You may want to validate the file after making changes (jsonlint.com)
● Create a file called yourusenameInterface.ts in the app folder and include interfaces for the following:
o a2Personal information myBooks array structure campusData array structure
● In app.component.ts (parent), import ALL your interfaces AND the JSON file
o Include a variable called yourloginnamePersonal to hold your personal data from the JSON file
o Include a variable called yourloginnameBooks to hold the book data from the JSON file (remember, this will
be an array variable)
o Include a variable called yourloginnameCampus to hold the campus data from the JSON file (remember, this
will be an array variable)
● Create a header component called header-yourloginname and a footer component called footer-yourloginname
and include in app.component.html:
o Use the Sharing procedure to pass your personal information only included in the JSON file from the app
component to both header and footer components. The variable in both components to accept shared data
must be called yourloginnameMyData
o Header: Add a header element (I would suggest an <h3> tag since it is more mobile)
▪ A2 – Winter 2024 for <YOUR full name from JSON - uppercase> / <YOUR Sheridan ID from JSON>
o Footer: Add a header element (I would suggest an <h3> tag since it is more mobile)
▪ Email: <YOUR Sheridan Email from JSON > / Program: <YOUR Sheridan Program from JSON>
1
SYST24444 Assignment #2 Detail
o Update global stye sheet to format both components:
▪ Minimum: background colour, text colour, center align
● In app.component.html
o Between the header and footer components, include an Angular Material tab grouping structure from
Common_Angular_Material_Structures_And_Options document in SLATE
● Include the following tabs within the <mat-tab-group> structure using text AND an icon (your choice) for each
o My Book List – YOUR name ICON
o Campus Info – YOUR name ICON
● books-yourloginname
o Use the Sharing procedure to pass the myBooks array information only included in the JSON file from the
app component to this component. The variable in component to accept shared data must be called
myBooksyourstudentnumber (ex. myBooks991123456)
o Create a mat-table layout and include all book data from JSON file (there will be some scrolling)
● campus-yourloginname
o Use the Sharing procedure to pass the campusData array information only included in the JSON file from
the app component to this component. The variable in component to accept shared data must be called
campusDatayourstudentnumber (ex. campusData991123456)
o Inset a header element and include “Sheridan College – Select a Campus to View Address”
o When a user selects a campus, fill in the address area of the page by including an event call from the select
dropdown sending in the campus chosen and coding the function to build an output in the declared variable
(must use template literals to build output); Will need to do a for/of loop and if to check for correct campus
2
SYST24444 Assignment #2 Detail
o Include formatting so output fits within mobile layout without scrolling and without too much whitespace
3
SYST24444 Assignment #2 Detail
Grading View:
€ I will be using the Chrome Toggle Device Bar for Samsung Galaxy S20 Ultra in Landscape mode only when
grading your site
€ REMEMBER, this must be in a mobile layout; too much scrolling or whitespace will reduce your mark
€ Grading rubric:
JSON updated, interfaces and retrieval in parent component using variables specified 2.5
Mat Grouping with tab label contents and icons and correctly named components included 2
Header and Footer components with styling and sharing setup 1.5
Tab #1 component including sharing setup 2
Tab #2 component including sharing setup 2
4
SYST24444 Assignment #2 Detail
Example outputs for reference ONLY
5
SYST24444 Assignment #2 Detail