summaryrefslogtreecommitdiff
path: root/site/src/components
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2022-09-13 17:28:57 +0200
committerGitHub <noreply@github.com>2022-09-13 17:28:57 +0200
commitff7dfda051e0103b0df453473eb0f08cdc37ae85 (patch)
tree2e80525809ecb5afe010faa99898ca479965b95a /site/src/components
parentfde9ba4fb88bada9d9873ba21904e9e1a66b0c46 (diff)
parentfd208941622cd559a0c3a196a0754a1b33db402b (diff)
merge: Add documentation using Docusaurus (#97)
This pull request implements the new OpenDC documentation website using Docusaurus 2. ## Implementation Notes :hammer_and_pick: * Add initial Docusaurus website. * Migrate existing docs to Docusaurus. * Configure Prettier for Docusaurus. * Add tutorials to OpenDC website (#28) * Add deployment workflow via GitHub actions ## External Dependencies :four_leaf_clover: * Docusaurus 2 Closes #28
Diffstat (limited to 'site/src/components')
-rw-r--r--site/src/components/HomepageFeatures/index.js71
-rw-r--r--site/src/components/HomepageFeatures/screenshot-construction.pngbin0 -> 217107 bytes
-rw-r--r--site/src/components/HomepageFeatures/screenshot-explore.pngbin0 -> 249975 bytes
-rw-r--r--site/src/components/HomepageFeatures/screenshot-results.pngbin0 -> 234713 bytes
-rw-r--r--site/src/components/HomepageFeatures/styles.module.css11
-rw-r--r--site/src/components/HomepageIntro/index.js57
-rw-r--r--site/src/components/HomepageIntro/styles.module.css34
-rw-r--r--site/src/components/TeamMembers/index.js144
-rw-r--r--site/src/components/TeamMembers/styles.module.css38
9 files changed, 355 insertions, 0 deletions
diff --git a/site/src/components/HomepageFeatures/index.js b/site/src/components/HomepageFeatures/index.js
new file mode 100644
index 00000000..5beee68d
--- /dev/null
+++ b/site/src/components/HomepageFeatures/index.js
@@ -0,0 +1,71 @@
+import React from 'react'
+import clsx from 'clsx'
+import styles from './styles.module.css'
+
+const FeatureList = [
+ {
+ title: 'Easy to Use',
+ Svg: () => <img src={require('./screenshot-construction.png').default} alt="Building a datacenter in OpenDC" />,
+ description: (
+ <>
+ OpenDC is designed from the ground up to be easily installed and used via its online interface to get
+ your experiments running quickly.
+ </>
+ ),
+ },
+ {
+ title: 'Versatile Models',
+ Svg: () => (
+ <img src={require('./screenshot-explore.png').default} alt="Explore alternative scenarios with OpenDC" />
+ ),
+ description: (
+ <>
+ Explore scenarios around emerging datacenter technologies such as <em>cloud computing</em>,{' '}
+ <em>serverless computing</em>, <em>big data</em>, and <em>machine learning</em>.
+ </>
+ ),
+ },
+ {
+ title: 'Simplified Analysis',
+ Svg: () => (
+ <img
+ src={require('./screenshot-results.png').default}
+ alt="Automated plots and visual summaries generated by OpenDC"
+ />
+ ),
+ description: (
+ <>
+ Investigate datacenter performance using the automated plots and visual summaries provided
+ out-of-the-box by OpenDC.
+ </>
+ ),
+ },
+]
+
+function Feature({ Svg, title, description }) {
+ return (
+ <div className={clsx('col col--4')}>
+ <div className="text--center">
+ <Svg className={styles.featureSvg} role="img" />
+ </div>
+ <div className="text--center padding-horiz--md">
+ <h3>{title}</h3>
+ <p>{description}</p>
+ </div>
+ </div>
+ )
+}
+
+export default function HomepageFeatures() {
+ return (
+ <section className={styles.features}>
+ <div className="container">
+ <div className="row">
+ {FeatureList.map((props, idx) => (
+ <Feature key={idx} {...props} />
+ ))}
+ </div>
+ </div>
+ </section>
+ )
+}
diff --git a/site/src/components/HomepageFeatures/screenshot-construction.png b/site/src/components/HomepageFeatures/screenshot-construction.png
new file mode 100644
index 00000000..8e26526b
--- /dev/null
+++ b/site/src/components/HomepageFeatures/screenshot-construction.png
Binary files differ
diff --git a/site/src/components/HomepageFeatures/screenshot-explore.png b/site/src/components/HomepageFeatures/screenshot-explore.png
new file mode 100644
index 00000000..307aaa1f
--- /dev/null
+++ b/site/src/components/HomepageFeatures/screenshot-explore.png
Binary files differ
diff --git a/site/src/components/HomepageFeatures/screenshot-results.png b/site/src/components/HomepageFeatures/screenshot-results.png
new file mode 100644
index 00000000..f7e5858a
--- /dev/null
+++ b/site/src/components/HomepageFeatures/screenshot-results.png
Binary files differ
diff --git a/site/src/components/HomepageFeatures/styles.module.css b/site/src/components/HomepageFeatures/styles.module.css
new file mode 100644
index 00000000..509d8c75
--- /dev/null
+++ b/site/src/components/HomepageFeatures/styles.module.css
@@ -0,0 +1,11 @@
+.features {
+ display: flex;
+ align-items: center;
+ padding: 2rem 0;
+ width: 100%;
+}
+
+.featureSvg {
+ height: 200px;
+ width: 200px;
+}
diff --git a/site/src/components/HomepageIntro/index.js b/site/src/components/HomepageIntro/index.js
new file mode 100644
index 00000000..33df7256
--- /dev/null
+++ b/site/src/components/HomepageIntro/index.js
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 2022 AtLarge Research
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+import clsx from 'clsx'
+import React from 'react'
+
+import styles from './styles.module.css'
+import DatacenterImage from '@site/static/img/datacenter-drawing.png'
+
+export default function HomepageInto() {
+ return (
+ <section id="intro" className={styles.intro}>
+ <div className="container padding-vert--lg">
+ <div className="row">
+ <div className={clsx('col col--4', styles.textCol)}>
+ <h3>The datacenter (DC) industry...</h3>
+ <ul>
+ <li>Is worth over $200 bn, and growing</li>
+ <li>Has many hard-to-grasp concepts</li>
+ <li>Needs to become accessible to many</li>
+ </ul>
+ </div>
+ <div className="col col--3 text--center">
+ <img src={DatacenterImage} alt="Schematic top-down view of a datacenter" />
+ </div>
+ <div className={clsx('col col--4', styles.textCol)}>
+ <h3>OpenDC provides...</h3>
+ <ul>
+ <li>Online cloud DC modeling</li>
+ <li>Diverse and effective DC simulation</li>
+ <li>Rapid exploratory DC feedback</li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </section>
+ )
+}
diff --git a/site/src/components/HomepageIntro/styles.module.css b/site/src/components/HomepageIntro/styles.module.css
new file mode 100644
index 00000000..53c6f1bb
--- /dev/null
+++ b/site/src/components/HomepageIntro/styles.module.css
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2022 AtLarge Research
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+.intro {
+ background: var(--ifm-color-emphasis-100);
+}
+
+.intro > :global(.container) > :global(.row) {
+ justify-content: center;
+}
+
+.textCol {
+ align-self: center;
+ max-width: 350px;
+}
diff --git a/site/src/components/TeamMembers/index.js b/site/src/components/TeamMembers/index.js
new file mode 100644
index 00000000..45c658e2
--- /dev/null
+++ b/site/src/components/TeamMembers/index.js
@@ -0,0 +1,144 @@
+/*
+ * Copyright (c) 2022 AtLarge Research
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+import React from 'react'
+import clsx from 'clsx'
+
+import styles from './styles.module.css'
+
+const leads = [
+ {
+ name: 'Prof.dr.ir. Alexandru Iosup',
+ title: 'Project Lead',
+ avatar: 'https://www.atlarge-research.com/images/people/aiosup_large.png',
+ url: 'https://www.atlarge-research.com/aiosup/',
+ },
+ {
+ name: 'Fabian Mastenbroek',
+ title: 'Technology Lead',
+ avatar: 'https://www.atlarge-research.com/images/people/fmastenbroek_large.png',
+ url: 'https://www.atlarge-research.com/fmastenbroek/',
+ },
+ {
+ name: 'Georgios Andreadis',
+ title: 'Former Technology Lead (2018-2020)',
+ avatar: 'https://www.atlarge-research.com/images/people/gandreadis_large.png',
+ url: 'https://www.atlarge-research.com/gandreadis/',
+ },
+ {
+ name: 'Vincent van Beek',
+ title: 'Former Technology Lead (2017-2018)',
+ avatar: 'https://www.atlarge-research.com/images/people/vvanbeek_large.png',
+ url: 'https://www.atlarge-research.com/vvanbeek/',
+ },
+]
+
+const members = [
+ {
+ name: 'Matthijs Bijman',
+ avatar: 'https://www.atlarge-research.com/images/people/mbijman_large.png',
+ url: 'https://www.atlarge-research.com/mbijman/',
+ },
+ {
+ name: 'Jaro Bosch',
+ avatar: 'https://www.atlarge-research.com/images/people/jbosch_large.png',
+ url: 'https://www.atlarge-research.com/jbosch/',
+ },
+ {
+ name: 'Jacob Burley',
+ avatar: 'https://www.atlarge-research.com/images/people/jburley_large.png',
+ url: 'https://www.atlarge-research.com/jburley/',
+ },
+ {
+ name: 'Erwin van Eyk',
+ avatar: 'https://www.atlarge-research.com/images/people/evaneyk_large.png',
+ url: 'https://www.atlarge-research.com/evaneyk/',
+ },
+ {
+ name: 'Hongyu He',
+ avatar: 'https://www.atlarge-research.com/images/people/hhe_large.png',
+ url: 'https://www.atlarge-research.com/hhe/',
+ },
+ {
+ name: 'Soufiane Jounaid',
+ avatar: 'https://www.atlarge-research.com/images/people/sjounaid_large.png',
+ url: 'https://www.atlarge-research.com/sjounaid/',
+ },
+ {
+ name: 'Wenchen Lai',
+ avatar: 'https://www.atlarge-research.com/images/people/wlai_large.png',
+ url: 'https://www.atlarge-research.com/wlai/',
+ },
+ {
+ name: 'Leon Overweel',
+ avatar: 'https://www.atlarge-research.com/images/people/loverweel_large.png',
+ url: 'https://www.atlarge-research.com/loverweel/',
+ },
+
+ {
+ name: 'Sacheendra Talluri',
+ avatar: 'https://www.atlarge-research.com/images/people/stalluri_large.png',
+ url: 'https://www.atlarge-research.com/stalluri/',
+ },
+ {
+ name: 'Laurens Versluis',
+ avatar: 'https://www.atlarge-research.com/images/people/lfdversluis_large.png',
+ url: 'https://www.atlarge-research.com/lfdversluis/',
+ },
+]
+
+function TeamMember({ className, name, title, avatar, url, size = 'lg' }) {
+ return (
+ <div className={clsx('avatar avatar--vertical', styles.member, className)}>
+ <a className={`avatar__photo-link avatar__photo avatar__photo--${size}`} href={url}>
+ <img alt={`${name} Profile`} src={avatar} />
+ </a>
+ <div className={clsx(styles.memberIntro, 'avatar__intro')}>
+ <div className="avatar__name">{name}</div>
+ {title && <small className="avatar__subtitle">{title}</small>}
+ </div>
+ </div>
+ )
+}
+
+export default function TeamMembers() {
+ return (
+ <div className="container">
+ <div className={clsx(styles.members, 'row')}>
+ {leads.map(({ name, title, avatar, url }) => (
+ <TeamMember
+ key={name}
+ className="col col--3"
+ name={name}
+ title={title}
+ avatar={avatar}
+ url={url}
+ size="xl"
+ />
+ ))}
+ {members.map(({ name, avatar, url }) => (
+ <TeamMember key={name} className="col col--2" name={name} avatar={avatar} url={url} />
+ ))}
+ </div>
+ </div>
+ )
+}
diff --git a/site/src/components/TeamMembers/styles.module.css b/site/src/components/TeamMembers/styles.module.css
new file mode 100644
index 00000000..34d9135d
--- /dev/null
+++ b/site/src/components/TeamMembers/styles.module.css
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2022 AtLarge Research
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+.members {
+ justify-content: center;
+}
+
+.member {
+ padding: 0.5em;
+}
+
+.memberIntro {
+ justify-content: normal;
+ margin-top: 0.5em;
+}
+
+.memberIntro > :global(.avatar__subtitle) {
+ max-width: 155px;
+}