-
Notifications
You must be signed in to change notification settings - Fork 30
Site Architecture
Maxwell Countryman Skewes edited this page Mar 15, 2022
·
26 revisions
Purpose: current home page that will be the landing page at site launch
Path: src/pages/Home
Structure:
-
index.js
is the parent file that contains its own style section andHome
,MarketingSection
, andCallToAction
components -
sections
subdirectory containsNotableUsersSection.js
andTrendingTopicsSection.js
components - There is a
notableUsers
list that is defined inNotableUsersSection.js
that contains info for CTI contributor orgs -
index.js
importsNotableUsersSection
andTrendingTopicsSection
. It also importsGetStartedCard
fromsrc/components
-
Home
component contains all of the home page and displays the following components from top to bottom:MarketingSection
,CallToActionSection
,NotableUsersSection
,TrendingTopicsSection
,GetStartedCard
Purpose: It shows the steps how to add topic tags to your project.
Path: src/pages/HowToAdd
Structure:
-
HowToAdd
component in the main fileindex.js
, which contains its own style section andImageComponent
component,SettingsGearIcon
component. -
ImageComponent
component insrc/components
usesCardMedia
Material UI component for displaying the images. -
SettingGearIcon
component insrc/components
uses svg which is used to define vector-based-graphics and path is an element in svg library which defines a path that starts from a position and ends to a particular position. The path element uses attribute d which uses M which is used for moving a point to a certain location.
Purpose: provides information on the organization's project
Path: src/pages/About
Structure:
-
About
is the parent component that is exported toApp.js
to render this page in the DOM. -
index.js
is the parent file containing formatting and an object for mapping the images of the page - A
Grid
component contains aniframe
slideshow explaining various aspects of the project -
styles.js
contains the styling for the page
Purpose: provides site navigation Links
and subLinks
in two display sizes
Path: src/components/Header
Structure:
-
Header
is the parent component exported from theindex.js
file contained within the Header folder. - Header is imported into to the
index.js
file of the components folder where it is exported to theLayout
component found undersrc/components/common/Layout.js
where it is exported usingwithRouter
fromreact-router-dom
. The Layout component wraps theSwitch
component imported from thereact-router-dom
package in theApp
component which handles the routing insrc/App.js
. - The
Header
component is broken down into several smaller components with separate files:index
,HeaderLarge
,HeaderSmall
,DropdownList
,SearchContainer
,NavLink
andNavSublink
. Several files make use of thenavigation
array exported from thesrc/navigation.js
file. The Header folder also contains a separatestyles.js
sheet which provides styling to each of the components. -
index.js
exports theHeader
component and is also where the switch between large and small displays is handled utilizing theHidden
component from themui
library. -
HeaderLarge
feeds the values to theNavLink
andNavSublink
components via the.map
method. It also houses the image link of the CTI logo to the landing page and a button link to theSearch Projects
screen. -
HeaderSmall
contains the same links to search and the landing page as HeaderLarge, as well as passing values using the navigation array, but handles the display via ahamburger
button allowing for visible or hidden links. -
SearchContainer
is a component that exports a button link toSearch Projects
screen. -
DropdownList
utilizes severalmui
packages to handle the functionality and display of the sublinks under each page heading. -
NavLink
is a component built off theLink
component frommui
and theNavLink
component (imported as 'NaviLink') fromreact-router-dom
. The styling is built using hooks from thematerial-ui-popup-state
package. - The
NavSublink
component decides between external and internal links, with internal links being handled by a modifiedLink
component (imported as RouterLink) fromreact-router-dom
. Styling of thehover state
of links in the large display dropdown menus are handled in this file.
The Wiki is a working document and we would love to improve it. Please compile any questions and suggestions you may have and submit it via creating an issue on our project board.