Repository: thenewboston-developers/Website
Pull request #1613 (2021-03-26 18:41:10)

Updated teams and job postings


Patch:
diff --git a/src/apis/authentication/index.ts b/src/apis/authentication/index.ts
new file mode 100644
index 0000000..d4b58ff
--- /dev/null
+++ b/src/apis/authentication/index.ts
@@ -0,0 +1,5 @@
+import axios from 'axios';
+
+export async function login({email, password}: {email: string; password: string}) {
+  return axios.post(`${process.env.REACT_APP_BACKEND_API}/login`, {email, password});
+}
diff --git a/src/apis/github/index.ts b/src/apis/github/index.ts
new file mode 100644
index 0000000..7c2b0b3
--- /dev/null
+++ b/src/apis/github/index.ts
@@ -0,0 +1,13 @@
+import axios from 'axios';
+
+import {BaseRelease, FetchGithubReleasesParams} from 'types/github';
+
+export async function getIssuesForRepo(repoPathName: string) {
+  return axios.get(`https://api.github.com/repos/thenewboston-developers/${repoPathName}/issues`);
+}
+
+export async function getAccountManagerReleases(params: FetchGithubReleasesParams) {
+  return axios.get<BaseRelease[]>('https://api.github.com/repos/thenewboston-developers/Account-Manager/releases', {
+    params,
+  });
+}
diff --git a/src/apis/users/index.ts b/src/apis/users/index.ts
new file mode 100644
index 0000000..aca82e2
--- /dev/null
+++ b/src/apis/users/index.ts
@@ -0,0 +1,15 @@
+import axios from 'axios';
+
+import {standardHeaders} from 'utils/requests';
+
+export async function createUser({
+  display_name,
+  email,
+  password,
+}: {
+  display_name: string;
+  email: string;
+  password: string;
+}) {
+  return axios.post(`${process.env.REACT_APP_BACKEND_API}/users`, {display_name, email, password}, standardHeaders());
+}
diff --git a/src/apis/webmap/index.ts b/src/apis/webmap/index.ts
new file mode 100644
index 0000000..b29385e
--- /dev/null
+++ b/src/apis/webmap/index.ts
@@ -0,0 +1,11 @@
+import axios from 'axios';
+
+import * as apiEndpoints from 'constants/api-endpoints';
+
+export async function getAllNodes() {
+  return axios.all([axios.get(apiEndpoints.VALIDATOR_ENDPOINT), axios.get(apiEndpoints.BANK_ENDPOINT)]);
+}
+
+export async function getAllValidatorIps(validatorIps: any) {
+  return axios.post(apiEndpoints.IPAPI_ENDPOINT, validatorIps);
+}
diff --git a/src/components/CodeSnippet/BaseCodeSnippet/index.tsx b/src/components/CodeSnippet/BaseCodeSnippet/index.tsx
index b5496ea..35f7580 100644
--- a/src/components/CodeSnippet/BaseCodeSnippet/index.tsx
+++ b/src/components/CodeSnippet/BaseCodeSnippet/index.tsx
@@ -1,12 +1,12 @@
 import React, {FC} from 'react';
-import {Light as SyntaxHighlighter} from 'react-syntax-highlighter';
-import {obsidian, routeros} from 'react-syntax-highlighter/dist/esm/styles/hljs';
-import bashLang from 'react-syntax-highlighter/dist/esm/languages/hljs/bash';
-import jsonLang from 'react-syntax-highlighter/dist/esm/languages/hljs/json';
+import {PrismLight as SyntaxHighlighter} from 'react-syntax-highlighter';
+import {duotoneDark, solarizedlight} from 'react-syntax-highlighter/dist/esm/styles/prism';
+import bashLang from 'react-syntax-highlighter/dist/esm/languages/prism/bash';
+import jsonLang from 'react-syntax-highlighter/dist/esm/languages/prism/json';
 import jsxLang from 'react-syntax-highlighter/dist/esm/languages/prism/jsx';
-import pythonLang from 'react-syntax-highlighter/dist/esm/languages/hljs/python';
-import scssLang from 'react-syntax-highlighter/dist/esm/languages/hljs/scss';
-import typescriptLang from 'react-syntax-highlighter/dist/esm/languages/hljs/typescript';
+import pythonLang from 'react-syntax-highlighter/dist/esm/languages/prism/python';
+import scssLang from 'react-syntax-highlighter/dist/esm/languages/prism/scss';
+import typescriptLang from 'react-syntax-highlighter/dist/esm/languages/prism/typescript';
 
 export enum SnippetLang {
   bash = 'bash',
@@ -36,7 +36,7 @@ const BaseCodeSnippet: FC<BaseCodeSnippetProps> = ({code, language, light = fals
     <SyntaxHighlighter
       language={language}
       showLineNumbers={showLineNumbers}
-      style={light ? routeros : obsidian}
+      style={light ? solarizedlight : duotoneDark}
       data-testid="BaseCodeSnippet"
     >
       {code}
diff --git a/src/components/Footer/index.tsx b/src/components/Footer/index.tsx
index 640047d..8f06195 100644
--- a/src/components/Footer/index.tsx
+++ b/src/components/Footer/index.tsx
@@ -46,10 +46,6 @@ const navLists = [
         title: 'Team',
         url: '/teams',
       },
-      {
-        title: 'Leaderboard',
-        url: '/leaderboard/All',
-      },
     ],
   },
   {
diff --git a/src/components/Modal/index.tsx b/src/components/Modal/index.tsx
index 9f512a9..b64b424 100644
--- a/src/components/Modal/index.tsx
+++ b/src/components/Modal/index.tsx
@@ -1,4 +1,4 @@
-import React, {CSSProperties, FC, ReactNode, useMemo} from 'react';
+import React, {CSSProperties, FC, ReactNode, useCallback, useEffect, useMemo} from 'react';
 import {createPortal} from 'react-dom';
 import clsx from 'clsx';
 import noop from 'lodash/noop';
@@ -46,6 +46,20 @@ const Modal: FC<ComponentProps> = ({
   submitting = false,
   validationSchema,
 }) => {
+  const handleKeyDown = useCallback(
+    (e: KeyboardEvent) => {
+      if (e.key === 'Escape') {
+        close();
+      }
+    },
+    [close],
+  );
+
+  useEffect(() => {
+    document.addEventListener('keydown', handleKeyDown);
+    return () => document.removeEventListener('keydown', handleKeyDown);
+  }, [handleKeyDown]);
+
   const ignoreDirty = useMemo<boolean>(() => ignoreDirtyProps || Object.keys(initialValues).length === 0, [
     ignoreDirtyProps,
     initialValues,
diff --git a/src/containers/App.tsx b/src/containers/App.tsx
index cc91ff7..5530531 100644
--- a/src/containers/App.tsx
+++ b/src/containers/App.tsx
@@ -15,7 +15,6 @@ import Faq from './Faq';
 import Governance from './Governance';
 import Guide from './Guide';
 import Home from './Home';
-import Leaderboard from './Leaderboard';
 import Openings from './Openings';
 import PrimaryValidatorApi from './PrimaryValidatorApi';
 import Profile from './Profile';
@@ -61,14 +60,12 @@ const App: FC = () => {
       <Layout>
         <Switch>
           <Route exact path="/" component={Home} />
-          <Route exact path="/create-account" component={CreateAccount} />
+          <Route exact path="/create-account" render={() => <CreateAccount disabled />} />
           <Route exact path="/donate" component={Donate} />
           <Route exact path="/faq" component={Faq} />
           <Route exact path="/assets" component={Assets} />
-          <Redirect exact from="/leaderboard" to="/leaderboard/All" />
-          <Route exact path="/leaderboard/:repository" component={Leaderboard} />
           <Redirect exact from="/openings" to="/openings/All" />
-          <Route exact path="/openings/:category/:openingId?" render={() => <Openings openingsFrozen />} />
+          <Route exact path="/openings/:category/:openingId?" render={() => <Openings />} />
           <Route exact path="/social" component={Social} />
           <Redirect exact from="/tasks" to="/tasks/All" />
           <Route exact path="/tasks/:repository" component={Tasks} />
diff --git a/src/containers/CreateAccount/CreateAccount.scss b/src/containers/CreateAccount/CreateAccount.scss
new file mode 100644
index 0000000..472d16c
--- /dev/null
+++ b/src/containers/CreateAccount/CreateAccount.scss
@@ -0,0 +1,26 @@
+.CreateAccount {
+  &__disabled {
+    align-items: center;
+    display: flex;
+    flex-direction: column;
+    height: 80vh;
+    justify-content: center;
+    line-height: 1.5;
+    padding: 0 20px 0px 20px;
+    text-align: center;
+    width: 100%;
+
+    h1 {
+      font-weight: 400;
+      margin-bottom: 24px;
+    }
+
+    h3 {
+      font-weight: 900;
+    }
+
+    h3 span {
+      color: #ed5f74;
+    }
+  }
+}
diff --git a/src/containers/CreateAccount/index.tsx b/src/containers/CreateAccount/index.tsx
index 540bac3..4bbadba 100644
--- a/src/containers/CreateAccount/index.tsx
+++ b/src/containers/CreateAccount/index.tsx
@@ -1,12 +1,13 @@
 import React, {FC, ReactNode, useState} from 'react';
-import axios from 'axios';
 
+import * as api from 'apis/users';
 import {AuthContainer} from 'components';
 import {Form, FormButton, FormInput} from 'components/FormComponents';
 import {formatAPIError} from 'utils/errors';
-import {standardHeaders} from 'utils/requests';
 import yup from 'utils/yup';
 
+import './CreateAccount.scss';
+
 const initialValues = {
   confirmPassword: '',
   display_name: '',
@@ -16,7 +17,11 @@ const initialValues = {
 
 export type FormValues = typeof initialValues;
 
-const CreateAccount: FC = () => {
+interface ComponentProps {
+  disabled?: boolean;
+}
+
+const CreateAccount: FC<ComponentProps> = ({disabled = false}) => {
   const [creatingAccount, setCreatingAccount] = useState(true);
   const [errorMessage, setErrorMessage] = useState<string>('');
   const [submitting, setSubmitting] = useState<boolean>(false);
@@ -26,11 +31,7 @@ const CreateAccount: FC = () => {
       const trimmedDisplayName = display_name.trim(); // remove trailing spaces in display name before sending BE
       setErrorMessage('');
       setSubmitting(true);
-      await axios.post(
-        `${process.env.REACT_APP_BACKEND_API}/users`,
-        {display_name: trimmedDisplayName, email, password},
-        standardHeaders(),
-      );
+      await api.createUser({display_name: trimmedDisplayName, email, password});
       setCreatingAccount(false);
     } catch (error) {
       setErrorMessage(formatAPIError(error));
@@ -76,6 +77,17 @@ const CreateAccount: FC = () => {
     );
   };
 
+  const renderDisabledMessage = (): ReactNode => {
+    return (
+      <div className="CreateAccount__disabled">
+        <h1>Create Account</h1>
+        <h3>
+          Account Creation is currently <span>disabled until beta</span>. Please check back later!
+        </h3>
+      </div>
+    );
+  };
+
   const validationSchema = yup.object().shape({
     confirmPassword: yup
       .string()
@@ -90,9 +102,15 @@ const CreateAccount: FC = () => {
   });
 
   return (
-    <AuthContainer errorMessage={errorMessage} heading={creatingAccount ? 'Create an Account' : 'Verify Email'}>
-      {renderAuthContainerContent()}
-    </AuthContainer>
+    <div className="CreateAccount">
+      {disabled ? (
+        renderDisabledMessage()
+      ) : (
+        <AuthContainer errorMessage={errorMessage} heading={creatingAccount ? 'Create an Account' : 'Verify Email'}>
+          {renderAuthContainerContent()}
+        </AuthContainer>
+      )}
+    </div>
   );
 };
 
diff --git a/src/containers/Guide/GuideTransactionFees/index.tsx b/src/containers/Guide/GuideTransactionFees/index.tsx
index e2137a5..2de09c2 100644
--- a/src/containers/Guide/GuideTransactionFees/index.tsx
+++ b/src/containers/Guide/GuideTransactionFees/index.tsx
@@ -6,7 +6,7 @@ import './GuideTransactionFees.scss';
 
 const GuideTransactionFees: FC = () => {
   return (
-    <DocContainer className="GuideTransactionFees" title="Transaction Fees" lastUpdated="10 Mar 2021">
+    <DocContainer className="GuideTransactionFees" title="Transaction Fees" lastUpdated="24 Mar 2021">
       <p>
         Through the collection of transaction fees, individuals are motivated to maintain nodes. Node maintainers set
         their own transaction fee amounts. End users will probably use the nodes that offer the lowest transaction fees.
@@ -60,24 +60,24 @@ const GuideTransactionFees: FC = () => {
 
       <DocList variant="ol">
         <li>Amy's node validates the following:</li>
-        <ol type="a">
+        <ul>
           <li>The transaction (Tx) is formatted properly (according to network protocol).</li>
           <li>The fees included in Amy's signed block are in agreement with the expected fees of the network.</li>
           <li>
             All aspects of the block can be validated, otherwise an error will be returned to Amy and the process will
             stop.
           </li>
-        </ol>
+        </ul>
         <li>The block is forwarded to the PV.</li>
         <li>The PV validates that:</li>
-        <ol type="a">
+        <ul>
           <li>
             The block and all transactions are formatted properly (a necessary step before storing the data on the
             blockchain and updating account balances).
           </li>
           <li>The correct fees to the PV are included.</li>
           <li>Amy has enough funds to cover the total cost of all Txs.</li>
-        </ol>
+        </ul>
         <li>If the block is confirmed, the PV adds a confirmation block to the blockchain.</li>
         <li>The PV adds update the coin balances for Amy, Brian, the node, and the PV (itself).</li>
       </DocList>
diff --git a/src/containers/Home/HomeSteps/index.tsx b/src/containers/Home/HomeSteps/index.tsx
index 90fa1f2..8d43b59 100644
--- a/src/containers/Home/HomeSteps/index.tsx
+++ b/src/containers/Home/HomeSteps/index.tsx
@@ -2,7 +2,6 @@ import React from 'react';
 import {NavLink} from 'react-router-dom';
 
 import {A, StepIndicator} from 'components';
-import {Repository} from 'types/github';
 
 import './HomeSteps.scss';
 
@@ -31,13 +30,7 @@ const HomeSteps = (): JSX.Element => {
         </div>
         <div className="HomeSteps__Step">
           <StepIndicator number={3} text="Earn coins" />
-          <div className="HomeSteps__instructional-text">
-            Climb the{' '}
-            <NavLink to={`/leaderboard/${Repository.all}`} className="HomeSteps__instructional-link">
-              leaderboard
-            </NavLink>{' '}
-            to become a top developer.
-          </div>
+          <div className="HomeSteps__instructional-text">Earn coins and be a part of our community.</div>
         </div>
       </div>
     </div>
diff --git a/src/containers/Leaderboard/Leaderboard.scss b/src/containers/Leaderboard/Leaderboard.scss
deleted file mode 100644
index b156ce8..0000000
--- a/src/containers/Leaderboard/Leaderboard.scss
+++ /dev/null
@@ -1,60 +0,0 @@
-.Leaderboard {
-  display: grid;
-  grid-template-columns: 240px auto;
-  grid-template-rows: fit-content(0) auto;
-  height: 100%;
-  overflow: hidden;
-
-  &__BreadcrumbMenu {
-    display: none;
-  }
-
-  &__contributor-list {
-    grid-column: 2 / span 1;
-    grid-row: 2 / span 1;
-    overflow-y: auto;
-    padding-bottom: 48px;
-  }
-
-  &__empty-page {
-    margin-bottom: 48px;
-  }
-
-  &__left-menu {
-    grid-column: 1 / span 1;
-    grid-row: 1 / -1;
-  }
-
-  &__TimeFilter {
-    grid-column: 2 / span 1;
-    grid-row: 1 / span 1;
-    padding: 42px 16px 18px;
-    text-align: right;
-  }
-
-  @media (max-width: 992px) {
-    grid-template-columns: auto;
-    grid-template-rows: fit-content(0) fit-content(0) auto;
-
-    &__BreadcrumbMenu {
-      box-shadow: 0 2px 4px rgba(0, 0, 0, 0.06);
-      display: block;
-      grid-column: 1 / span 1;
-      grid-row: 1 / span 1;
-    }
-
-    &__contributor-list {
-      grid-column: 1 / span 1;
-      grid-row: 3 / span 1;
-    }
-
-    &__left-menu {
-      display: none;
-    }
-
-    &__TimeFilter {
-      grid-column: 1 / span 1;
-      grid-row: 2 / span 1;
-    }
-  }
-}
diff --git a/src/containers/Leaderboard/LeaderboardContributor/LeaderboardContributor.scss b/src/containers/Leaderboard/LeaderboardContributor/LeaderboardContributor.scss
deleted file mode 100644
index 0494010..0000000
--- a/src/containers/Leaderboard/LeaderboardContributor/LeaderboardContributor.scss
+++ /dev/null
@@ -1,145 +0,0 @@
-.LeaderboardContributor {
-  border-radius: 12px;
-  box-shadow: 0 0 10px rgba(85, 108, 214, 0.18);
-  display: flex;
-  font-size: var(--font-size-small);
-  line-height: 1.25;
-  margin: 0 24px 12px;
-  padding: 12px;
-
-  &:focus {
-    outline: none;
-  }
-
-  &:first-of-type {
-    margin-top: 24px;
-  }
-
-  &:last-of-type {
-    border-bottom: none;
-  }
-
-  &__account-details {
-    display: flex;
-    flex-direction: column;
-    width: 240px;
-  }
-
-  &__ContributorTasks {
-    flex: 1;
-    margin-left: 32px;
-  }
-
-  &__CopyableAccountNumber {
-    margin-top: 12px;
-  }
-
-  &__main-details {
-    display: flex;
-    justify-content: space-between;
-  }
-
-  &__qr-container {
-    margin-top: 12px;
-  }
-
-  &__right {
-    flex: 1;
-    margin-left: 24px;
-    overflow: hidden;
-  }
-
-  &__user-avatar-container {
-    position: relative;
-  }
-
-  &__user-avatar-rank {
-    align-items: center;
-    background-color: var(--color-sail-gray-100);
-    border: 2px solid var(--color-white);
-    border-radius: 50%;
-    color: var(--color-primary);
-    display: flex;
-    font-size: 20px;
-    height: 42px;
-    justify-content: center;
-    position: absolute;
-    width: 42px;
-
-    &--top-3 {
-      background-color: var(--color-tertiary);
-      color: var(--color-white);
-    }
-  }
-
-  &__user-login {
-    font-size: var(--font-size-medium);
-    font-weight: 700;
-    line-height: 1.25;
-    overflow: hidden;
-    text-overflow: ellipsis;
-    white-space: nowrap;
-
-    &:hover {
-      text-decoration: underline;
-    }
-  }
-
-  .TotalAmount {
-    align-items: flex-end;
-    display: flex;
-    flex-basis: 150px;
-    flex-direction: column;
-    line-height: 1;
-    margin-left: 40px;
-
-    @media (max-width: 768px) {
-      display: block;
-      margin-left: 0;
-
-      &__amount {
-        font-size: var(--font-size-regular);
-      }
-
-      &__title {
-        display: none;
-      }
-    }
-  }
-
-  @media (max-width: 1200px) {
-    &__ContributorTasks {
-      display: none;
-    }
-  }
-
-  @media (max-width: 768px) {
-    cursor: pointer;
-    transition: all 0.1s ease-in-out;
-
-    &:hover {
-      transform: scale(1.006);
-    }
-
-    &__account-details {
-      display: none;
-    }
-
-    &__ContributorTasks {
-      display: none;
-    }
-
-    &__user-avatar-rank {
-      font-size: var(--font-size-small);
-      height: 28px;
-      left: -8px;
-      top: -8px;
-      width: 28px;
-    }
-
-    &__user-login {
-      font-size: var(--font-size-regular);
-      margin-top: 4px;
-    }
-  }
-}
diff --git a/src/containers/Leaderboard/LeaderboardContributor/index.tsx b/src/containers/Leaderboard/LeaderboardContributor/index.tsx
deleted file mode 100644
index f32c623..0000000
--- a/src/containers/Leaderboard/LeaderboardContributor/index.tsx
+++ /dev/null
@@ -1,100 +0,0 @@
-import React, {FC, useState} from 'react';
-import clsx from 'clsx';
-
-import {A, Avatar, ContributorTasks, CopyableAccountNumber, Qr, TotalAmount} from 'components';
-import SlideUpAccountDetails from 'containers/SlideUpAccountDetails';
-import {useWindowDimensions} from 'hooks';
-import {Task} from 'types/github';
-
-import './LeaderboardContributor.scss';
-
-interface ComponentProps {
-  account_number: string;
-  github_avatar_url: string;
-  github_username: string;
-  rank: number;
-  tasks: Task[];
-  total_earnings: number;
-}
-
-const LeaderboardContributor: FC<ComponentProps> = ({
-  account_number,
-  github_avatar_url,
-  github_username,
-  rank,
-  tasks,
-  total_earnings,
-}) => {
-  const [displaySlideUp, setDisplaySlideUp] = useState(false);
-  const {width} = useWindowDimensions();
-
-  const handleClick = (e: any): void => {
-    if (e.target.nodeName === 'A') return;
-    if (width > 768) return;
-    setDisplaySlideUp(true);
-  };
-
-  const renderAvatar = () => (
-    <div className="LeaderboardContributor__user-avatar-container">
-      <div
-        className={clsx('LeaderboardContributor__user-avatar-rank', {
-          'LeaderboardContributor__user-avatar-rank--top-3': rank <= 3,
-        })}
-      >
-        {rank}
-      </div>
-      <Avatar size={width > 768 ? 178 : 54} src={github_avatar_url} />
-    </div>
-  );
-
-  const renderMainDetails = () => (
-    <div className="LeaderboardContributor__main-details">
-      <div className="LeaderboardContributor__account-details">
-        <CopyableAccountNumber
-          accountNumber={account_number}
-          className="LeaderboardContributor__CopyableAccountNumber"
-        />
-        <div className="LeaderboardContributor__qr-container">
-          <Qr text={account_number} width={80} />
-        </div>
-      </div>
-      <ContributorTasks className="LeaderboardContributor__ContributorTasks" tasks={tasks} />
-      <TotalAmount amount={total_earnings} title="Total Earnings" />
-    </div>
-  );
-
-  const renderRight = () => (
-    <div className="LeaderboardContributor__right">
-      <div className="LeaderBoardContributor__user-container">
-        <A className="LeaderboardContributor__user-login" href={`https://github.com/${github_username}`}>
-          {github_username}
-        </A>
-      </div>
-      {renderMainDetails()}
-    </div>
-  );
-
-  const renderSlideUp = () => {
-    if (!displaySlideUp) return null;
-    return (
-      <SlideUpAccountDetails
-        account_number={account_number}
-        close={() => setDisplaySlideUp(false)}
-        github_avatar_url={github_avatar_url}
-        github_username={github_username}
-      />
-    );
-  };
-
-  return (
-    <>
-      {renderSlideUp()}
-      <div className="LeaderboardContributor" onClick={handleClick} role="button" tabIndex={0}>
-        {renderAvatar()}
-        {renderRight()}
-      </div>
-    </>
-  );
-};
-
-export default LeaderboardContributor;
diff --git a/src/containers/Leaderboard/index.tsx b/src/containers/Leaderboard/index.tsx
deleted file mode 100644
index 1c0ac1d..0000000
--- a/src/containers/Leaderboard/index.tsx
+++ /dev/null
@@ -1,143 +0,0 @@
-import React, {ReactNode, useEffect, useState} from 'react';
-import {useHistory, useParams} from 'react-router-dom';
-import sub from 'date-fns/sub';
-
-import {BreadcrumbMenu, EmptyPage, FlatNavLinks, PageTitle, TimeFilter} from 'components';
-import {
-  Contributor,
-  ContributorWithTasks,
-  Repository,
-  RepositoryUrlParams,
-  Task,
-  TaskDict,
-  Time,
-  TimeFilterType,
-} from 'types/github';
-import {getContributors, getTasks} from 'utils/data';
-import {REPOSITORY_FILTERS} from 'constants/github';
-import {sortByDateKey, sortByNumberKey} from 'utils/sort';
-
-import LeaderboardContributor from './LeaderboardContributor';
-import './Leaderboard.scss';
-
-const timeFilterMap = {
-  [Time.days7]: 7,
-  [Time.days30]: 30,
-  [Time.all]: null,
-};
-
-const Leaderboard = (): JSX.Element => {
-  const history = useHistory();
-  const {repository} = useParams<RepositoryUrlParams>();
-  const [repositoryFilter, setRepositoryFilter] = useState<Repository>(repository);
-  const [timeFilter, setTimeFilter] = useState<TimeFilterType>(Time.days30);
-
-  useEffect(() => {
-    setRepositoryFilter(repository);
-  }, [repository]);
-
-  const getContributorsWithTasks = (): ContributorWithTasks[] => {
-    const contributors = getContributors();
-    const tasks = getTasks();
-
-    return contributors
-      .map(
-        (contributor: Contributor): ContributorWithTasks => {
-          const contributorsTasks = getContributorsTasks(tasks, contributor.github_username);
-          return {
-            ...contributor,
-            tasks: contributorsTasks,
-          };
-        },
-      )
-      .filter((contributor: ContributorWithTasks) => !!contributor.tasks.length);
-  };
-
-  const getContributorsTasks = (tasks: TaskDict, github_username: string): Task[] => {
-    let contributorsTasks: Task[] = tasks[github_username];
-    if (!contributorsTasks || !contributorsTasks.length) return [];
-
-    contributorsTasks =
-      repositoryFilter === Repository.all
-        ? contributorsTasks
-        : contributorsTasks.filter((task: Task) => task.repository === repositoryFilter);
-
-    if (timeFilter !== Time.all) {
-      const now = new Date();
-      const days = timeFilterMap[timeFilter];
-      const past = sub(now, {days});
-      contributorsTasks = contributorsTasks.filter((task: Task) => task.completed_date > past);
-    }
-
-    if (!contributorsTasks.length) return [];
-    contributorsTasks = contributorsTasks.sort(sortByDateKey('completed_date', 'desc'));
-
-    return contributorsTasks;
-  };
-
-  const getContributorsWithTotalEarnings = () => {
-    const contributorsWithTasks = getContributorsWithTasks();
-    return contributorsWithTasks.map((contributor: ContributorWithTasks) => ({
-      ...contributor,
-      total_earnings: getTotalEarnings(contributor.tasks),
-    }));
-  };
-
-  const getTotalEarnings = (tasks: Task[]) => {
-    const amounts = tasks.map(({amount_paid}: Task) => parseInt(amount_paid, 10));
-    return amounts.reduce((a, b) => a + b, 0);
-  };
-
-  const handleNavOptionClick = (option: Repository) => (): void => {
-    history.push(`/leaderboard/${option}`);
-  };
-
-  const renderContributors = () => {
-    const contributorsWithTotalEarnings = getContributorsWithTotalEarnings();
-    if (!contributorsWithTotalEarnings.length) return <EmptyPage className="Leaderboard__empty-page" />;
-    return contributorsWithTotalEarnings
-      .sort(sortByNumberKey('total_earnings', 'desc'))
-      .map(({account_number, github_avatar_url, github_username, tasks, total_earnings}, index) => (
-        <LeaderboardContributor
-          account_number={account_number}
-          github_avatar_url={github_avatar_url}
-          github_username={github_username}
-          key={github_username}
-          rank={index + 1}
-          tasks={tasks}
-          total_earnings={total_earnings}
-        />
-      ));
-  };
-
-  const renderNavLinks = (): ReactNode => {
-    return (
-      <FlatNavLinks handleOptionClick={handleNavOptionClick} options={REPOSITORY_FILTERS} selectedOption={repository} />
-    );
-  };
-
-  const renderTopSections = () => (
-    <>
-      <BreadcrumbMenu
-        className="Leaderboard__BreadcrumbMenu"
-        menuItems={renderNavLinks()}
-        pageName={repository}
-        sectionName="Leaderboard"
-      />
-      <TimeFilter className="Leaderboard__TimeFilter" selectedFilter={timeFilter} setSelectedFilter={setTimeFilter} />
-    </>
-  );
-
-  return (
-    <>
-      <PageTitle title="Leaderboard" />
-      <div className="Leaderboard">
-        {renderTopSections()}
-        <div className="Leaderboard__left-menu">{renderNavLinks()}</div>
-        <div className="Leaderboard__contributor-list">{renderContributors()}</div>
-      </div>
-    </>
-  );
-};
-
-export default Leaderboard;
diff --git a/src/containers/Openings/OpeningDetails/OpeningDetails.scss b/src/containers/Openings/OpeningDetails/OpeningDetails.scss
index 7ae890d..20a3d10 100644
--- a/src/containers/Openings/OpeningDetails/OpeningDetails.scss
+++ b/src/containers/Openings/OpeningDetails/OpeningDetails.scss
@@ -4,6 +4,10 @@
   $self: &;
   margin: 36px 54px;
 
+  @media (max-width: 768px) {
+    margin: 16px 24px;
+  }
+
   &__A {
     color: var(--color-secondary);
 
@@ -16,21 +20,6 @@
     margin-bottom: 16px;
   }
 
-  &__application-method-note {
-    color: var(--color-sail-gray-500);
-    max-width: 400px;
-  }
-
-  &__application-method-row {
-    align-items: center;
-    display: flex;
-    margin-top: 12px;
-
-    &:first-of-type {
-      margin-top: 16px;
-    }
-  }
-
   &__back-container {
     align-items: center;
     color: var(--color-secondary);
@@ -55,11 +44,6 @@
     margin-top: 24px;
   }
 
-  &__MarketingButton {
-    margin-right: 12px;
-    width: 140px;
-  }
-
   &__position {
     color: var(--color-primary);
     font-size: 36px;
@@ -77,15 +61,4 @@
     margin-top: 4px;
     padding-inline-start: 18px;
   }
-
-  @media (max-width: 768px) {
-    margin: 16px 24px;
-  }
-
-  @media (max-width: 600px) {
-    &__application-method-note {
-      max-width: 150px;
-      @include word-wrap;
-    }
-  }
 }
diff --git a/src/containers/Openings/OpeningDetails/index.tsx b/src/containers/Openings/OpeningDetails/index.tsx
index 30b0295..d8f4ea0 100644
--- a/src/containers/Openings/OpeningDetails/index.tsx
+++ b/src/containers/Openings/OpeningDetails/index.tsx
@@ -1,24 +1,11 @@
 import React, {FC, ReactNode} from 'react';
 import {useHistory, useLocation} from 'react-router-dom';
-import {A, Icon, IconType, MarketingButton} from 'components';
 
+import {A, Icon, IconType} from 'components';
 import {Opening} from 'types/openings';
-import {SocialMedia} from 'types/social-media';
 
 import './OpeningDetails.scss';
 
-const customLinks = {
-  [SocialMedia.discord]: 'https://discord.gg/thenewboston',
-  [SocialMedia.facebook]: '',
-  [SocialMedia.github]: '',
-  [SocialMedia.instagram]: '',
-  [SocialMedia.linkedin]: 'https://www.linkedin.com/in/buckyroberts/',
-  [SocialMedia.reddit]: 'https://www.reddit.com/message/compose?to=/r/thenewboston',
-  [SocialMedia.twitch]: '',
-  [SocialMedia.twitter]: '',
-  [SocialMedia.youtube]: '',
-};
-
 interface ComponentProps {
   opening: Opening;
 }
@@ -36,28 +23,6 @@ const OpeningDetails: FC<ComponentProps> = ({opening}) => {
     history.replace(`/openings/${opening.category}`);
   };
 
-  const renderApplicationMethodList = (): ReactNode => {
-    const rows = opening.applicationMethods.map(({channel, note}) => (
-      <div className="OpeningDetails__application-method-row" key={channel}>
-        <MarketingButton
-          className="OpeningDetails__MarketingButton"
-          customLink={customLinks[channel]}
-          website={channel}
-        />
-        {note && <span className="OpeningDetails__application-method-note">{note}</span>}
-      </div>
-    ));
-
-    return (
-      <>
-        <div className="OpeningDetails__list-label">
-          To apply, leave a message in the #intros channel with the position you are interested in!
-        </div>
-        <div className="OpeningDetails__application-method-container">{rows}</div>
-      </>
-    );
-  };
-
   const renderContent = (): ReactNode => (
     <>
       <div className="OpeningDetails__position">{opening.position}</div>
@@ -71,35 +36,9 @@ const OpeningDetails: FC<ComponentProps> = ({opening}) => {
       <div className="OpeningDetails__description">{opening.description}</div>
       {renderStringList(opening.responsibilities, 'Responsibilities')}
       {renderStringList(opening.technologyRequirements, 'Technology Requirements')}
-      {renderReportsToList()}
-      {renderStringList(opening.payNotes, 'Pay')}
-      {renderApplicationMethodList()}
     </>
   );
 
-  const renderReportsToList = (): ReactNode => {
-    const listItems = opening.reportsTo.map(({githubUsername, name}) => (
-      <li key={name}>
-        {name}{' '}
-        {githubUsername && (
-          <>
-            <span>-</span>{' '}
-            <A className="OpeningDetails__A" href={`https://github.com/${githubUsername}`}>
-              {githubUsername}
-            </A>
-          </>
-        )}
-      </li>
-    ));
-
-    return (
-      <>
-        <div className="OpeningDetails__list-label">Reports To</div>
-        <ul className="OpeningDetails__ul">{listItems}</ul>
-      </>
-    );
-  };
-
   const renderStringList = (listData: string[], listLabel: string): ReactNode => {
     return (
       <>
diff --git a/src/containers/Openings/Openings.scss b/src/containers/Openings/Openings.scss
index e787ba5..25955f4 100644
--- a/src/containers/Openings/Openings.scss
+++ b/src/containers/Openings/Openings.scss
@@ -1,26 +1,3 @@
-.hiring-freeze {
-  align-items: center;
-  display: flex;
-  flex-direction: column;
-  height: 90vh;
-  justify-content: center;
-  padding-bottom: 5rem;
-  text-align: center;
-  width: 100%;
-}
-
-.hiring-freeze h1 {
-  font-weight: 400;
-}
-
-.hiring-freeze h3 {
-  font-weight: 900;
-}
-
-.hiring-freeze h3 span {
-  color: #ed5f74;
-}
-
 .Openings {
   display: grid;
   grid-template-columns: 240px auto;
diff --git a/src/containers/Openings/index.tsx b/src/containers/Openings/index.tsx
index 700d82a..97affd4 100644
--- a/src/containers/Openings/index.tsx
+++ b/src/containers/Openings/index.tsx
@@ -20,11 +20,7 @@ const OPENING_CATEGORY_FILTERS: NavOption[] = [
   {pathname: OpeningCategory.marketing, title: 'Marketing'},
 ];
 
-interface ComponentProps {
-  openingsFrozen: boolean;
-}
-
-const Openings: FC<ComponentProps> = ({openingsFrozen}) => {
+const Openings: FC = () => {
   const history = useHistory();
   const {category: categoryParam, openingId: openingIdParam} = useParams<OpeningsUrlParams>();
   const [categoryFilter, setCategoryFilter] = useState<OpeningCategory>(OpeningCategory.all);
@@ -80,18 +76,7 @@ const Openings: FC<ComponentProps> = ({openingsFrozen}) => {
     return <OpeningDetails opening={opening} />;
   };
 
-  return openingsFrozen ? (
-    <>
-      <PageTitle title="Openings" />
-      <div className="hiring-freeze">
-        <h1>Openings</h1>
-        <br />
-        <h3>
-          We are on a <span>hiring freeze</span> until further notice
-        </h3>
-      </div>
-    </>
-  ) : (
+  return (
     <>
       <PageTitle title="Openings" />
       <div className="Openings">
diff --git a/src/containers/TopNav/TopNavDesktopItems/index.tsx b/src/containers/TopNav/TopNavDesktopItems/index.tsx
index a174633..43017ac 100644
--- a/src/containers/TopNav/TopNavDesktopItems/index.tsx
+++ b/src/containers/TopNav/TopNavDesktopItems/index.tsx
@@ -28,12 +28,6 @@ const communityPopoverItems: TopNavPopoverItemType[] = [
     title: 'Teams',
     to: '/teams',
   },
-  {
-    description: 'View the highest ranked contributors',
-    iconType: IconType.trophy,
-    title: 'Leaderboard',
-    to: '/leaderboard/All',
-  },
 ];
 
 const getStartedPopoverItems: TopNavPopoverItemType[] = [
diff --git a/src/containers/TopNav/TopNavMobileMenu/index.tsx b/src/containers/TopNav/TopNavMobileMenu/index.tsx
index 3974fed..f4ffcdb 100644
--- a/src/containers/TopNav/TopNavMobileMenu/index.tsx
+++ b/src/containers/TopNav/TopNavMobileMenu/index.tsx
@@ -94,7 +94,6 @@ const TopNavMobileMenu: FC<ComponentProps> = ({closeMenu, menuOpen, smallDevice,
               {renderMobileLink('Join the Community!', '/social')}
               {renderMobileLink('Openings', '/openings')}
               {renderMobileLink('Teams', '/teams')}
-              {renderMobileLink('Leaderboard', '/leaderboard/All')}
             </>,
           )}
           {renderColumn(
diff --git a/src/containers/Webmap/index.tsx b/src/containers/Webmap/index.tsx
index 2e499ec..218977e 100644
--- a/src/containers/Webmap/index.tsx
+++ b/src/containers/Webmap/index.tsx
@@ -1,11 +1,10 @@
 import React, {FC, useEffect, useState} from 'react';
 import {Map, Marker, Popup, TileLayer} from 'react-leaflet';
-import axios from 'axios';
 import {Icon} from 'leaflet';
 
 import bankSvg from 'assets/svgs/bank1.svg';
 import validatorSvg from 'assets/svgs/validator.svg';
-import * as apiEndpoints from 'constants/api-endpoints';
+import * as api from 'apis/webmap';
 import {useWindowDimensions} from 'hooks';
 
 import './Webmap.scss';
@@ -39,17 +38,14 @@ const Webmap: FC = () => {
 
   useEffect(() => {
     async function fetchData() {
-      const nodeResponse = await axios.all([
-        axios.get(apiEndpoints.VALIDATOR_ENDPOINT),
-        axios.get(apiEndpoints.BANK_ENDPOINT),
-      ]);
+      const nodeResponse = await api.getAllNodes();
       const nodeResponses = nodeResponse[0].data.results.concat(nodeResponse[1].data.results);
       const validatorIps = [];
       for (let i = 0; i < nodeResponses.length; i += 1) {
         const ipAddress = nodeResponses[i].ip_address;
         validatorIps.push({query: ipAddress});
       }
-      const resultBatch = await axios.post(apiEndpoints.IPAPI_ENDPOINT, validatorIps);
+      const resultBatch = await api.getAllValidatorIps(validatorIps);
       const merged = nodeResponses.map((result: any, i: string | number) => ({
         ...result,
         ...resultBatch.data[i],
diff --git a/src/data/contributors.json b/src/data/contributors.json
deleted file mode 100644
index 2d78a22..0000000
--- a/src/data/contributors.json
+++ /dev/null
@@ -1,852 +0,0 @@
-[
-  {
-    "github_username": "aayushi14",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/33564949?v=4",
-    "account_number": "100c627095785ab8a7ed04d548b53f4b0638c44b49c46aea6c003d7b06294881"
-  },
-  {
-    "github_username": "amarjeet987",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/38986305?v=4",
-    "account_number": "f967bd5b2f846bc74cf7e7512fb0fab8ce7188a1e28cd9db2c6c77b42467ca10"
-  },
-  {
-    "github_username": "angle943",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/5943963?v=4",
-    "account_number": "67077b2397f99fb6c63185af25cdf49d43736b22b7ea5dd68089a04cd4dbf8cf"
-  },
-  {
-    "github_username": "AntonFredrikSvensson",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/45607799?v=4",
-    "account_number": "c636813810492c91fc4fd3d64b8effc2c3f3abc0e790e7d945cc4577e9e410d7"
-  },
-  {
-    "github_username": "avgust13",
-    "github_avatar_url": "https://avatars3.githubusercontent.com/u/12826211?v=4",
-    "account_number": "e68952859eaf8d68f9ebb6f23e944ac00380a8a93c82b5363cb845ffe055a195"
-  },
-  {
-    "github_username": "brian316",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/3878246?v=4",
-    "account_number": "575a4da111c27e9f387faa143ae86901928e8a227b7ee5f4e30579914913cd93"
-  },
-  {
-    "github_username": "brmendez",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/7778620?v=4",
-    "account_number": "553a2068397d4838a5341a3233852c0cf6bd1a3262dc7dfba72bf3b95274be73"
-  },
-  {
-    "github_username": "buckyroberts",
-    "github_avatar_url": "https://avatars3.githubusercontent.com/u/8547538?v=4",
-    "account_number": "a37e2836805975f334108b55523634c995bd2a4db610062f404510617e83126f"
-  },
-  {
-    "github_username": "colfax23",
-    "github_avatar_url": "https://avatars3.githubusercontent.com/u/914240?v=4",
-    "account_number": "3cdb51ef0b7da3db65f47c170ec1815f3409c9781d4d8ca6c976273a732c9218"
-  },
-  {
-    "github_username": "cubedtear",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/1618573?v=4",
-    "account_number": "2daf7c9e243d52a8f5798e481528232dc33f1da7c23ced6bb206073d162c0c73"
-  },
-  {
-    "github_username": "dahelg",
-    "github_avatar_url": "https://avatars3.githubusercontent.com/u/12250897?v=4",
-    "account_number": "b04321cb6b514ae3afa86f457cb587a81e5a4122efbc88c1972a676278d440a2"
-  },
-  {
-    "github_username": "danielivert",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/5331300?v=4",
-    "account_number": "8c9d8b309b9004f5718f0a4b91856fdf4434c4e19f53dc3bc3946da375849d7f"
-  },
-  {
-    "github_username": "dorlivniopen",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/26517228?v=4",
-    "account_number": "e9dd6c2837a03386ebad6dabc8a7d55ab88e3db37700214dd25ad487b5c916a3"
-  },
-  {
-    "github_username": "DucPhamTV",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/26954027?v=4",
-    "account_number": "ec5aa47719460ee5bcd16ab3cfe94c521d702eb9fc7d80f603762c23014f8ab8"
-  },
-  {
-    "github_username": "fadyadal",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/24705058?v=4",
-    "account_number": "e4fc4a58dacf924b90f1068e021a6ed0e12a14c917bd4785fc7ca99c1051ac42"
-  },
-  {
-    "github_username": "ganeshvicky",
-    "github_avatar_url": "https://avatars3.githubusercontent.com/u/23272853?v=4",
-    "account_number": "f1730dba36195d5e40ddbc4421018feb1d70450c6a7e50167583d3f1f2e4f126"
-  },
-  {
-    "github_username": "GermaVinsmoke",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/32815509?v=4",
-    "account_number": "8ff54e36f7fc534230faa1420c0116b2805abc4d8edb6a3661905ea0b4c875bd"
-  },
-  {
-    "github_username": "hawyar",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/42186608?v=4",
-    "account_number": "0ead156c2d20480aa075ac8450feb158876010a6579c9a6594836e5740e05606"
-  },
-  {
-    "github_username": "henctv",
-    "github_avatar_url": "https://avatars3.githubusercontent.com/u/74022113?v=4",
-    "account_number": "12e463566602adc89c9a986c2691f14d50b7ae70ebe67ab3d5ffbc5b7e84a039"
-  },
-  {
-    "github_username": "hLudde",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/8746009?v=4",
-    "account_number": "49d44680c0bff895e1c8ed7d3f8ae85b299f2a484e2e6b836f7ea585fdc018f2"
-  },
-  {
-    "github_username": "Hristijan95",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/5727677?v=4",
-    "account_number": "1002530d2ef3da6207c5a5070d427984a8508a715ce18afb07f394aa47d73751"
-  },
-  {
-    "github_username": "itsnikhil",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/20350674?v=4",
-    "account_number": "e9c5acac0806aca6ba2c0ade74d93ec4f9a89d8743fa477c52ce9b7817dcad95"
-  },
-  {
-    "github_username": "jagdisharma",
-    "github_avatar_url": "https://avatars3.githubusercontent.com/u/28952749?v=4",
-    "account_number": "36846b3d4bfdfbeee3b66f6a5b8cc671b3b92e7c4dc5203b0ab941a953945cc1"
-  },
-  {
-    "github_username": "JayBIOS",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/3018607?v=4",
-    "account_number": "eb388c838dd1bf865f49142982616994b3c08940b0a00ef60d3b6f2ccd388c28"
-  },
-  {
-    "github_username": "kristykjlee",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/68207101?v=4",
-    "account_number": "a2d73cf3b37a62276ade44a96860495510d0e7d7c468950d4e49ac8a62b3d31d"
-  },
-  {
-    "github_username": "lapstjup",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/29139815?v=4",
-    "account_number": "f5f87358644304217252fb6908417cfdaf1cc981b74d41ac8ff3d8717cdad725"
-  },
-  {
-    "github_username": "leelatanniru",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/22635016?v=4",
-    "account_number": "c487afb017b9a52c5bd2e0ad889060056b85b64b0b8ee71327d004cfd36a4ac4"
-  },
-  {
-    "github_username": "moki298",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/21165330?v=4",
-    "account_number": "893c0079f86c4bb1f732b796694c818b790af460caf4682a28790592d2d30a1f"
-  },
-  {
-    "github_username": "Niekon01",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/55133485?v=4",
-    "account_number": "18c07b4227cb0993fa7a1db834834e42461a0d9f61b2b157dfbfee625bbf3de6"
-  },
-  {
-    "github_username": "phase7",
-    "github_avatar_url": "https://avatars3.githubusercontent.com/u/19484371?v=4",
-    "account_number": "c34813975c177780d233550841cd7b3d13766e0b474f374a3a36c67d12f5c167"
-  },
-  {
-    "github_username": "Ramin-RX7",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/52785580?v=4",
-    "account_number": "508a84db71724851eba1996ec374743efa0deba62e42129ef930e60ae13c832a"
-  },
-  {
-    "github_username": "rizqyep",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/29106932?v=4",
-    "account_number": "5d608c2154b21be60d810b68c151005b05cf7cb3bec936693f06f7cbf1dcc7c3"
-  },
-  {
-    "github_username": "robMakasi",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/17672996?v=4",
-    "account_number": "0dbea1e0b614301795249c2d9b06195f49df847daab033fa9f8e33ca9e9aac87"
-  },
-  {
-    "github_username": "shahraizali",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/15216270?v=4",
-    "account_number": "1d4efd5650e56f28cce68e69058f42b3ea53640639344fb8e1261b7bd4b68e8d"
-  },
-  {
-    "github_username": "thesanjeevsharma",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/29539278?v=4",
-    "account_number": "644cdaf382c1f711fb05fb4328409a62713ecc7a3e83fa07427cc3539a8a23ac"
-  },
-  {
-    "github_username": "tpikachu",
-    "github_avatar_url": "https://avatars3.githubusercontent.com/u/46133358?v=4",
-    "account_number": "6f48e7a4f0fded580734d9d07353af445d0924271102017245667a1d5dc89227"
-  },
-  {
-    "github_username": "Vangaorth",
-    "github_avatar_url": "https://avatars3.githubusercontent.com/u/5150343?v=4",
-    "account_number": "f148a8a614c4d5d0b63d97b45a33901c9d9663825fc53b9e5912cdfd7bb4e570"
-  },
-  {
-    "github_username": "VictorABoye",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/35064405?v=4",
-    "account_number": "e90ccee30b2922a1422142d8a6cfaa67774e1486b92fb978b4fd971197b0e9fd"
-  },
-  {
-    "github_username": "VJKLFT",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/6117581?v=4",
-    "account_number": "2d393659c46601a64dcd02676cba40c6d145ad76694c1a21387d8b0164608a3c"
-  },
-  {
-    "github_username": "webdeveloperswj",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/59204822?v=4",
-    "account_number": "15e164325715c9552911caf7e3ea1759f4c2ccba5fd82864a4d811d67935c4f9"
-  },
-  {
-    "github_username": "xmac11",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/55348322?v=4",
-    "account_number": "8ff92d181cb09f18ef2a1b03badb5bf4a8962f7e5bb55641d0358d99bf7d5655"
-  },
-  {
-    "github_username": "ZokaSoce",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/30030406?v=4",
-    "account_number": "89b655215f48c82b320784817b1f407b39bf2170a4228e08e3b2e486faa6ea4a"
-  },
-  {
-    "github_username": "alexkimeu0",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/61450115?v=4",
-    "account_number": "3972dfcfb9fd488cf90644b599558d3e265bdb883686933f62e8450aaee974b1"
-  },
-  {
-    "github_username": "sdhiaeddine",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/1119638?v=4",
-    "account_number": "119329b4d39d5483775efa0495487d04099bfce3fc6755345b5cc43da0b3611b"
-  },
-  {
-    "github_username": "jaelee0409",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/22688846?v=4",
-    "account_number": "d640e137a05157e5faccb8af58566937e56923ffa568dfe1ff743c2df3ef2806"
-  },
-  {
-    "github_username": "jamessspanggg",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/32864116?v=4",
-    "account_number": "c54c04774efaae20746fd3f29cdd619fea512e119bc1082b863572b2e8844104"
-  },
-  {
-    "github_username": "rasabel",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/16491986?v=4",
-    "account_number": "4fd2c96c470a8020e6cac97b7ce5b0320e52c62364daf0768e331da5fc3a50ac"
-  },
-  {
-    "github_username": "singh-sarabjeet",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/11057104?v=4",
-    "account_number": "c5778aee3cfd83c2088ae81c178c3d34931399f20c1492c33044d8cd85e21898"
-  },
-  {
-    "github_username": "manishram",
-    "github_avatar_url": "https://avatars3.githubusercontent.com/u/22790904?v=4",
-    "account_number": "0f92e975101eb96cea80dce430d74efd3172fa229377818d467ded85dcf2ab6c"
-  },
-  {
-    "github_username": "mthomas-io",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/10713217?v=4",
-    "account_number": "cd9e5d25a39baa7ef490d9521cf56a5c9bc7350c095ad7c7c60e75b8575f72bc"
-  },
-  {
-    "github_username": "jtavak",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/36283105?v=4",
-    "account_number": "55bce9177483a0e4b1afc6f431c1f6104d3b84c6e6444fd978c33e9c031807bf"
-  },
-  {
-    "github_username": "whitelionx",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/31674307?v=4",
-    "account_number": "fb84a32a698a03dd327c4ce673f19fa0acf6e68cb50f143d5d7c080471bc4625"
-  },
-  {
-    "github_username": "avinashupadhya99",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/52544819?v=4",
-    "account_number": "94cf53921e9c5ddf48dc5589b7cdf111f7acdc93dc3073b94880416d4676b9ae"
-  },
-  {
-    "github_username": "alhuang2",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/15304250?v=4",
-    "account_number": "08b8b85b3a63615d295fd123ce7b7209b3650c550db6dccdf355ed6dbc048ec7"
-  },
-  {
-    "github_username": "velibor7",
-    "github_avatar_url": "https://avatars3.githubusercontent.com/u/43258788?v=4",
-    "account_number": "514983fc77ebf39bedb82de179d2312497757e1a0e4276835844479dbfa80e5f"
-  },
-  {
-    "github_username": "Reeler",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/67256731?v=4",
-    "account_number": "aa4d2b47910a3583e5b8b14219e9462f3a063d65df90fdb587024bbfe3de055e"
-  },
-  {
-    "github_username": "h3cksamrat",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/53104092?v=4",
-    "account_number": "c628d4ef5d1c3a93debdc6ede5bdebe5ec1c1e42e4f3af63129bb2efd184a42a"
-  },
-  {
-    "github_username": "DenverCoder1",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/20955511?v=4",
-    "account_number": "c70c8cc52f35414d7e011ade3fc4539f10f33863a67eab9094cb6f79096ae6ea"
-  },
-  {
-    "github_username": "virtualdesigner",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/30769960?v=4",
-    "account_number": "f92d9fd020060e415f2938babd3cb10ff4e754a7ac0ae3a82890fb969a7bd9cb"
-  },
-  {
-    "github_username": "mprateek14",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/36787357?v=4",
-    "account_number": "252d1bc6282d17251d828efd9a628f9bbcd3c6bf1d49cebbc8c6af5b9a5d14f3"
-  },
-  {
-    "github_username": "cebisom",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/37108200?v=4",
-    "account_number": "643464ab44ec231aea969a46e987e23d13d956f0652184ef95d6f6cdd1a01181"
-  },
-  {
-    "github_username": "kagisojamesthomba",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/72046892?v=4",
-    "account_number": "d7dd7e21596add067bd9ab8a767b6c314098d3d6f13285eea23612c69e76aaf2"
-  },
-  {
-    "github_username": "jonathanlee06",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/43515846?v=4",
-    "account_number": "f47f8b9d6086ac226b66ea6edd403dbf6231e61f90417b51776c5cbb6b366259"
-  },
-  {
-    "github_username": "ionutzaharia",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/19253025?v=4",
-    "account_number": "37f45e2eec79ff2cff9460d980b048e97e54a256831427ee8f8a6f257cbd007e"
-  },
-  {
-    "github_username": "nberic",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/45942050?v=4",
-    "account_number": "dc874f3df2f4ef76d4029303ae4b42804afe5a54275e732de0226a4a794a67e6"
-  },
-  {
-    "github_username": "ProdexOne",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/69591862?v=4",
-    "account_number": "d69250da1fec11ce7a635e7667f969e6bd4ce053f88db2e28f8fde3ac977da55"
-  },
-  {
-    "github_username": "RoyVoetman",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/23026444?v=4",
-    "account_number": "5c1b00cfc53e7fee7aaef8dc9d81f25672416f32b7c8d73c277bb7408b6d724a"
-  },
-  {
-    "github_username": "FaiyazMdAbdul",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/12680434?v=4",
-    "account_number": "30ec10ff13e15f9281afc5bb7eebe6844d143db9559e57db6628e437fa5c03d3"
-  },
-  {
-    "github_username": "hienqn",
-    "github_avatar_url": "https://avatars3.githubusercontent.com/u/54326918?v=4",
-    "account_number": "dfddf07ec15cbf363ecb52eedd7133b70b3ec896b488460bcecaba63e8e36be5"
-  },
-  {
-    "github_username": "MirkoHotsHot",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/54214783?v=4",
-    "account_number": "802f34851bdfa1572f11fc4e58e44be3c01e92399bc4ba8d81e98b02254a0106"
-  },
-  {
-    "github_username": "zalkar-z",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/25925393?v=4",
-    "account_number": "42a6c58e12d1f929d1b10bcb9d0beada5d2caa0213c6a2d6eaefba74c133e006"
-  },
-  {
-    "github_username": "naveedahmad99",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/5438968?v=4",
-    "account_number": "04ab47908bf0e72161f1b4c3b93e87c3d09b8e20162c220e3284972e3f82ab2b"
-  },
-  {
-    "github_username": "sarveshkolte",
-    "github_avatar_url": "https://avatars3.githubusercontent.com/u/49856843?v=4",
-    "account_number": "925b945f1c3a55a26cb709e8c3736426d8f70b2ada3786466630f8de43e4c44f"
-  },
-  {
-    "github_username": "donmbelembe",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/10473277?v=4",
-    "account_number": "6279a5ae4f1eec18a46671992eaaa6680ffb26c556a3ebf10112bd4d3d5bc131"
-  },
-  {
-    "github_username": "lukas-kasticky",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/20475412?v=4",
-    "account_number": "33926149a84a1513ec75e15fedfda11b2b8a18f0222950f79548161ebeaf96a7"
-  },
-  {
-    "github_username": "xZliman",
-    "github_avatar_url": "https://avatars3.githubusercontent.com/u/7897182?v=4",
-    "account_number": "dad0bec19e39f755440a295a24095633c7b1f18e104655b12b34ff945345f4c6"
-  },
-  {
-    "github_username": "wilsongayo",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/46436931?v=4",
-    "account_number": "e639afaaa92ea2372fde3f20e998eb9b1f76d0d2e5d6a54a10dc31b3e7fb9376"
-  },
-  {
-    "github_username": "reeveng",
-    "github_avatar_url": "https://avatars3.githubusercontent.com/u/36441093?v=4",
-    "account_number": "50b50e9a8bd346d3ae54daedf8e6ae4f35244420036e18180f3ee436660f0d46"
-  },
-  {
-    "github_username": "zinoadidi",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/30411401?v=4",
-    "account_number": "e6877a1a3f9bfbe313c7d2022675c6cf409fcf4eb425793acec4f2d69cb86fcb"
-  },
-  {
-    "github_username": "DinShpati",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/25906602?v=4",
-    "account_number": "3b59cd93d7cb88fd55caaea77f07328b57cce7e3d1a14b13410291c698dccf2e"
-  },
-  {
-    "github_username": "kenmusima",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/39400444?v=4",
-    "account_number": "65c3defcc249d17d61d8d789b4fcb9397714dfc36ebb91ec4130297bd3d2843d"
-  },
-  {
-    "github_username": "shcul333",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/69748263?v=4",
-    "account_number": "c52424dacafed79abc730139eff7eec612873d650e938864b1c765fb5282d2fd"
-  },
-  {
-    "github_username": "A-A-2",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/71636358?v=4",
-    "account_number": "bc7decf57ad5d66601b6ca291cf9f3fb798ccab97b2836a9b5a521f3a2f70b97"
-  },
-  {
-    "github_username": "JonasPik",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/22433001?v=4",
-    "account_number": "f6e015e67563ae5d0bde71477e9d7b7a8a759fb252b50aa07720eba1caf9bbc3"
-  },
-  {
-    "github_username": "Zims",
-    "github_avatar_url": "https://avatars3.githubusercontent.com/u/3853542?v=4",
-    "account_number": "62e2762010196c45ec6d06a218db6ae37816d5ab2e7cd37f9b4e01d016917cf4"
-  },
-  {
-    "github_username": "Get-ADUser",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/51047279?v=4",
-    "account_number": "c21b5dc8b158914c340bac83ff236e557f6020fd40b3c1f02117eb44a6d5b0b9"
-  },
-  {
-    "github_username": "officialabdulrehman",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/33157081?v=4",
-    "account_number": "cd2400e0402fd081b2f71d08a9334e56d876eb589e096b6a0b8a6e4ac20a73c3"
-  },
-  {
-    "github_username": "rabeeh-ta",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/43750842?v=4",
-    "account_number": "995fa01fe249fc2785564315b49f14d368d273fadcc4b00f7457ccac1424cfb7"
-  },
-  {
-    "github_username": "Benett1",
-    "github_avatar_url": "https://avatars3.githubusercontent.com/u/49456993?v=4",
-    "account_number": "9de67a91c59cc663983d1bcdfcbc42774c0dc82f4df83455edbb59d187a65d11"
-  },
-  {
-    "github_username": "sbalsa",
-    "github_avatar_url": "https://avatars3.githubusercontent.com/u/4533119?v=4",
-    "account_number": "d2131316a7286972bf15bfe914beac2fe56505a6b7a13aa3916a4f355736cbb3"
-  },
-  {
-    "github_username": "ddyakov",
-    "github_avatar_url": "https://avatars3.githubusercontent.com/u/11051204?v=4",
-    "account_number": "f867dd69de4657143261b1f03f3e120e7cc4453ae8d77bce2a047d1989ef26ec"
-  },
-  {
-    "github_username": "Tobel158",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/28767758?v=4",
-    "account_number": "ed3b27f0d895f50dd44c5ed60a11e586f76b4da8a94edf6898210b231c5ebbfc"
-  },
-  {
-    "github_username": "VincentHch",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/48289861?v=4",
-    "account_number": "aaf42054f84c66586bf29d446188347ab910112cb60b775a4d6feadd5b9ae73f"
-  },
-  {
-    "github_username": "sardorml",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/33747403?v=4",
-    "account_number": "48fd6dd32013b53e5f950e3b9299618db86dde59b058bd54e0a9fb53e7cf4f7e"
-  },
-  {
-    "github_username": "CirXe0N",
-    "github_avatar_url": "https://avatars3.githubusercontent.com/u/24738451?v=4",
-    "account_number": "2ffa7fc96ca4c04d18e878e88e49a95556c497df327fedd82e2c663cc4e4e0a2"
-  },
-  {
-    "github_username": "BlueBlazin",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/20948000?v=4",
-    "account_number": "c001d8b9c76c7e71f598d9533fbc691fdf1323ff9736068cac28dada94239142"
-  },
-  {
-    "github_username": "Akshit1311",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/34763983?v=4",
-    "account_number": "deafdd8531213a77bfc51da798a5d9b4907e2d618af199c67c851d7f7d564f13"
-  },
-  {
-    "github_username": "cfviotti",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/6797129?v=4",
-    "account_number": "f178736e0bc30ec082ad6db57a5141d87268a475c11c5e04bd3c1c41f9baca3b"
-  },
-  {
-    "github_username": "nrednav",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/26251262?v=4",
-    "account_number": "4619c9fbc925437d7c81a0bdce60064d03d4697be86bc7621ad9cc894b637af6"
-  },
-  {
-    "github_username": "subhamg",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/16704675?v=4",
-    "account_number": "23a0f8d205c34bbefea15a642b186b5ea17e636ddf0a690534182400c9db36f0"
-  },
-  {
-    "github_username": "sotheavuthnguon",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/34115811?v=4",
-    "account_number": "dfddf07ec15cbf363ecb52eedd7133b70b3ec896b488460bcecaba63e8e36be5"
-  },
-  {
-    "github_username": "The-Veil",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/74373920?v=4",
-    "account_number": "4abccf4280ef61aad6f176a103933a42ed7dbf90d55e7912f404a704ede06f41"
-  },
-  {
-    "github_username": "danieloravec",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/22274753?v=4",
-    "account_number": "2695cd78eb584db1b7ffb999c7b886303a7a00679cefe13f7902fdbf33e1b800"
-  },
-  {
-    "github_username": "Rosendo6",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/74380197?v=4",
-    "account_number": "6e796df42462d6b5fdd5cab1fa7cdedf939953327f55c8433d27f3fccb3eac6f"
-  },
-  {
-    "github_username": "suhailpappu",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/24728498?v=4",
-    "account_number": "026b356d4aa23d59e54c8491aef42f00991dd3a482826ba9c6c35999a3696755"
-  },
-  {
-    "github_username": "P-Sklodowska",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/74378658?v=4",
-    "account_number": "d293367dad5ad195db822d68ef5a25f335385aaa9bd6958ebfb697fddc5bc7f4"
-  },
-  {
-    "github_username": "laughablehaha",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/42882661?v=4",
-    "account_number": "c60b749d7a41d0c11699c9a8f5585021d8698cba5ad03fca2682857651d7bcac"
-  },
-  {
-    "github_username": "LunarDeveloper",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/32111172?v=4",
-    "account_number": "b32e6086c378b840fcece09daacfaee8ba75e0e038152406e2d2db3c0f93204e"
-  },
-  {
-    "github_username": "hasham56",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/59485404?v=4",
-    "account_number": "b5e439050e077544a563c08fbabc7c2729ad906cb0d7d68b89501c35f4b878aa"
-  },
-  {
-    "github_username": "YashovardhanSingh",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/63940326?v=4",
-    "account_number": "38a99b8f1916eab0471ca1df26e7fe5e71d845e6ea5b233cd3d93a75097ea2d6"
-  },
-  {
-    "github_username": "rahulkiller104",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/56788144?v=4",
-    "account_number": "ce07ecf453c77cf123bd79641d404cd9f80bccfccd0f1c66a22d99ddd51a2f13"
-  },
-  {
-    "github_username": "SOHDA31",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/74038568?v=4",
-    "account_number": "5257c00dc543a348f3aee0c7871d7e659d4ec63b68838302f3f4da978e13c92a"
-  },
-  {
-    "github_username": "KingChampion36",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/26169430?v=4",
-    "account_number": "214023b88a91135d5779c614052ce81a37ba444c3da2931b62d6a3da6c8efde3"
-  },
-  {
-    "github_username": "fosteradorkor",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/37828651?v=4",
-    "account_number": "13e8cd23929dbae240f52f5911080ed98193781b8b74514757b3b9c5f6390174"
-  },
-  {
-    "github_username": "Weav3r",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/66331153?v=4",
-    "account_number": "c6bfc60493c5bd1ca9289069c098d8ab70ac27d89344de5ede54d25865678090"
-  },
-  {
-    "github_username": "phoenixArtwork",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/74256073?v=4",
-    "account_number": "0e86adf963b7801823b68e2911ab7884eab022ef61ea8cd964eff00293a5418f"
-  },
-  {
-    "github_username": "PatNeedham",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/967811?v=4",
-    "account_number": "cea8aeb6de519c49ef39a2df3e578ecbb8277cb2284500d97c1ad219dada5a4e"
-  },
-  {
-    "github_username": "nparoski",
-    "github_avatar_url": "https://avatars3.githubusercontent.com/u/35550355?v=4",
-    "account_number": "848a2743f581f4bb1dee0236474293690de7586aa235d32c427982e4a28fef77"
-  },
-  {
-    "github_username": "akamfoad",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/41629832?v=4",
-    "account_number": "6a615ec1fd58a7f0835495b37f42e8a8d1492aceed078ef7a3b694d06ff08a0a"
-  },
-  {
-    "github_username": "pabloqb2000",
-    "github_avatar_url": "https://avatars3.githubusercontent.com/u/65713950?v=4",
-    "account_number": "612ac38fb5e78536ba5aee13bf6fadf272be6d6c6ca3e9f4ca812d6d7f2a73d8"
-  },
-  {
-    "github_username": "dark121211",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/65402615?v=4",
-    "account_number": "046d2a581df1fc47b7b3258839227e5a725fd7d9053625cfffc8b6ee29f18be0"
-  },
-  {
-    "github_username": "siemen-subbaiah",
-    "github_avatar_url": "https://avatars3.githubusercontent.com/u/62604902?v=4",
-    "account_number": "8cb3a38c7b82c38b0b5f042deb6f7b3bfccdb4e7bce470bd8aae7ab3094e6da0"
-  },
-  {
-    "github_username": "melsh123221",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/74555866?v=4",
-    "account_number": "a2c6312ca6a8495770e0f2eef643d9eda894b3f7d0e046fb8a28f4fba19c43dc"
-  },
-  {
-    "github_username": "Hot-Shot75",
-    "github_avatar_url": "https://avatars3.githubusercontent.com/u/74556770?v=4",
-    "account_number": "c7152068d4655cab77a8f6eb9b2a5389f1e9a82a8450f6f690288963925c6343"
-  },
-  {
-    "github_username": "briankinane",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/17511889?v=4",
-    "account_number": "6896cd775859c87ea6fe14e89881deaf299b6f5ed6cf36150336cddaca0c5818"
-  },
-  {
-    "github_username": "ffpetrovic",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/5026566?v=4",
-    "account_number": "8ff37590e4dda7710e1201e8a5d2da8482eae257590871f5b0e6b41ee02aa2e4"
-  },
-  {
-    "github_username": "kush-daga",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/40840079?v=4",
-    "account_number": "17c17bfd536763e643cdd9b663d6b40aac13352f285dff48cdf73f4a55f044d2"
-  },
-  {
-    "github_username": "Tuhinga",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/74583398?v=4",
-    "account_number": "1dc35bb31ef54ffdb8ac5169ab52df6d02e8cbc4f5b24ebc2a067c7b44b8df65"
-  },
-  {
-    "github_username": "lucedawg",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/74617867?v=4",
-    "account_number": "c9409efab604bb0e0b8cc0f15785c45e5b3922d51fa41f711585bfe3086e7756"
-  },
-  {
-    "github_username": "makaramkd",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/32818506?v=4",
-    "account_number": "b0302a7a0c02df1a5d298122de7c22a0bdd2394de75d1ae724f51a85bd13128e"
-  },
-  {
-    "github_username": "Surac778",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/45709014?v=4",
-    "account_number": "8994e4e846802df3fb42d1c39efbded0eae641ed3bb36338de94aec3da6dba0f"
-  },
-  {
-    "github_username": "gatvay23924",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/57397661?v=4",
-    "account_number": "5d5542b8749534b1c6b51ab7819382ce773439bb5aacdc93ad0b79ae4ff9f613"
-  },
-  {
-    "github_username": "codemedo",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/48848156?v=4",
-    "account_number": "659528bb7580a3a22b2ad5359d9b8c7086455459e9e437ebc85fc23f01c72efa"
-  },
-  {
-    "github_username": "ysttt12",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/74705842?v=4",
-    "account_number": "1dc35bb31ef54ffdb8ac5169ab52df6d02e8cbc4f5b24ebc2a067c7b44b8df65"
-  },
-  {
-    "github_username": "AkbarKamran",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/74756884?v=4",
-    "account_number": "b5e439050e077544a563c08fbabc7c2729ad906cb0d7d68b89501c35f4b878aa"
-  },
-  {
-    "github_username": "aeronye",
-    "github_avatar_url": "https://avatars3.githubusercontent.com/u/62808505?v=4",
-    "account_number": "42cc1800cf0264a41493a065e67dd09de2a9664eb0d66330d0626b455deb7800"
-  },
-  {
-    "github_username": "mersimoski",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/62712311?v=4",
-    "account_number": "cf59a784ff69e64e977359f28cd4d04c0aea7a37cf1b8bda3dfbde2364032855"
-  },
-  {
-    "github_username": "AbhayAysola",
-    "github_avatar_url": "https://avatars3.githubusercontent.com/u/67417765?s=88&v=4",
-    "account_number": "8928526805de48e4bf2ed2a9b4b839e6b2603018ecdfbf4cffdb2065e01a3ed1"
-  },
-  {
-    "github_username": "Godnoken",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/17499594?v=4",
-    "account_number": "ed0026cc11eef78c454107ed1d3ad3b1d3a4f1628ea2743e7eb4e1daf0a95b2e"
-  },
-  {
-    "github_username": "shivamyadav37",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/44369701?v=4",
-    "account_number": "c2fb0c50a53c68e75c8c89af5fd2ec5aaf9557e31905acdba8c319132cbbc719"
-  },
-  {
-    "github_username": "davidyapdy",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/17293366?v=4",
-    "account_number": "e854c93be1fb4f0f06228a609f4b27ca539e008fe03e7e7179ec01329d555250"
-  },
-  {
-    "github_username": "DrSparky-2007",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/56183042?v=4",
-    "account_number": "ae1e084c6f9475f9604d9cf8aba68b54d5b217fefbb17d5a2f57ebfcd833eeab"
-  },
-  {
-    "github_username": "mofodox",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/1651333?v=4",
-    "account_number": "ddef8a7ea0d98f8605703102f5b25e587d612ba7917afc1c9eb0ee904ae181c0"
-  },
-  {
-    "github_username": "UweVanOpfern",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/10698517?v=4",
-    "account_number": "593c3874ca9b04dc1386b0ef7f72e075d3fd729fb262f816d7bde528e9047168"
-  },
-  {
-    "github_username": "Toledit",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/27518021?v=4",
-    "account_number": "c2c867ba352e754ab17d228871105edfcc1c0d33f32f57ff76823055041b417a"
-  },
-  {
-    "github_username": "matheusfillipe",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/24435787?v=4",
-    "account_number": "72d31b3aa84e4a0cf58dc5527b5a0a54a4499716994a2f7c0507e32b9985156c"
-  },
-  {
-    "github_username": "IanArb",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/6011914?s=400&u=9328434aef816ce5dfe5fbc12b64f2f498222ebc&v=4",
-    "account_number": "d0ea7f5716c36ffa0300aa64424bb9dcdd7b9c6644577187309b67590e7dce55"
-  },
-  {
-    "github_username": "sno2",
-    "github_avatar_url": "https://avatars3.githubusercontent.com/u/43641633?v=4",
-    "account_number": "d84543947090d300910f8d1b9604c0c0a56fafca6cfbe52511c1e31757188bca"
-  },
-  {
-    "github_username": "osaroadade",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/47249126?v=4",
-    "account_number": "ec18c4b2832564cc0fc0a6d4c8dfe4f4b692ea742fd366b039b8273341f5380d"
-  },
-  {
-    "github_username": "dhakal0kushal",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/55182298?v=4",
-    "account_number": "22d0f0047b572a6acb6615f7aae646b0b96ddc58bfd54ed2775f885baeba3d6a"
-  },
-  {
-    "github_username": "nishp77",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/35785259?s=400&v=4",
-    "account_number": "c81061eb20ee1379ab98b6f5a125ebd0955278e36513eabd8d319967bb61d7e8"
-  },
-  {
-    "github_username": "petersommerhoff",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/2805791?s=400&u=5fcb7424015f63ae2194171c5649af332ab59f05&v=4",
-    "account_number": "2c9a538d3952a780ba65ee5a672e9ae4b415f542ab265e9517687b25ae4897aa"
-  },
-  {
-    "github_username": "devanshgajjar",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/37979044?v=4",
-    "account_number": "878191f1f66c58c53ae9179c3a7ea5ad7896f26f81d5201c3891f9ceb34fea72"
-  },
-  {
-    "github_username": "matthewrkula",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/1483546?s=400&u=4736566372f371fbb7291332941183bbf35f0ecf&v=4",
-    "account_number": "256a504c51b58e5559c7ec83adf1b2807a9643d73ebb19fa36240e4b06d50f5e"
-  },
-  {
-    "github_username": "FredrickXavier",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/74035322?v=4",
-    "account_number": "dfddf07ec15cbf363ecb52eedd7133b70b3ec896b488460bcecaba63e8e36be5"
-  },
-  {
-    "github_username": "smazydev",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/43474082?v=4",
-    "account_number": "52f7621a40de120ec863bbbcaef0a135a82c73589b2adefaba5f2efb0e17a60c"
-  },
-  {
-    "github_username": "mrbusysky",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/58412572?v=4",
-    "account_number": "fe06754d2dbf23509e975809e9023b620509c1e6618472f16c9659f59e940337"
-  },
-  {
-    "github_username": "wendtl",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/10553159?v=4",
-    "account_number": "cbc2ab2d700825c17ad8487ff9447b08ea5dc3bb0047eb7101c00c346dcbae01"
-  },
-  {
-    "github_username": "CNFloss",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/46381282?v=4",
-    "account_number": "57c10f3554872103c9b91e481347c2522dd5a13757831a51b12180c09e2e50ce"
-  },
-  {
-    "github_username": "SirDaev",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/12941979?v=4",
-    "account_number": "e5c2ff3c4f6886fd7cd87002d83c6aabe48e585ce38026c0df6ea7c517e0f7a4"
-  },
-  {
-    "github_username": "tomijaga",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/50385769?v=4",
-    "account_number": "8de30226230c35bbc1ce4a63c62a7b9c86bf0ce21fc7bc1a984b7884a9f88782"
-  },
-  {
-    "github_username": "Meharban-Singh",
-    "github_avatar_url": "https://avatars2.githubusercontent.com/u/33323725?v=4",
-    "account_number": "7cf697f279eefb10653addd2dac9976b596942ae5f8095a6f5f6693b025ee750"
-  },
-  {
-    "github_username": "Rajputusman",
-    "github_avatar_url": "https://avatars0.githubusercontent.com/u/65516140?v=4",
-    "account_number": "86cbaa1e021cc7d21ceedefc493051004c5ffffbc09a4ecd25e3a8dc49975d3e"
-  },
-  {
-    "github_username": "wajeehmisbahkhan",
-    "github_avatar_url": "https://avatars1.githubusercontent.com/u/37481915?v=4",
-    "account_number": "0aa90229f367302ee92a072290af4527aa067c3d431234cc352b8599e0762803"
-  },
-  {
-    "github_username": "Paul-Taiwo",
-    "github_avatar_url": "https://avatars3.githubusercontent.com/u/33280888?v=4",
-    "account_number": "c6bc0d956d668ed2464684b352226f4df1f86ed213783ba82a97a2fe38252761"
-  },
-  {
-    "github_username": "jroberts91",
-    "github_avatar_url": "https://avatars3.githubusercontent.com/u/39327704?v=4",
-    "account_number": "074be4e8c84f3598994c7fbed6d160b2dd6bf8ad0ff21075eca6663e001062c8"
-  },
-  {
-    "github_username": "AkinAguda",
-    "github_avatar_url": "https://avatars.githubusercontent.com/u/39712415?v=4",
-    "account_number": "431f89d714dc2d748c899b14c725a52c2b5560c2b8e2bb2bb691f41a155c3a2e"
-  },
-  {
-    "github_username": "AmrOuf",
-    "github_avatar_url": "https://avatars.githubusercontent.com/u/25687402?v=4",
-    "account_number": "f74ee3c567dd058fe9fdc85fc59273cc0ccd78c7842f1030b5f0a7a976692c72"
-  },
-  {
-    "github_username": "gsonly",
-    "github_avatar_url": "https://avatars.githubusercontent.com/u/54752526?v=4",
-    "account_number": "6c215dd79f10c6d0cd59ff69500f0e6acf7c66d2aa4679dfc45e169687bac117"
-  },
-  {
-    "github_username": "bossajie",
-    "github_avatar_url": "https://avatars.githubusercontent.com/u/36364052?v=4",
-    "account_number": "6954f2a530185bc6a0f100dbd8cf2b176fd2273b1697a613130d8f261f2d7590"
-  }
-]
diff --git a/src/data/openings.json b/src/data/openings.json
index 2a6ed53..b3e4198 100644
--- a/src/data/openings.json
+++ b/src/data/openings.json
@@ -1,22 +1,9 @@
 [
   {
     "openingId": "senior-python-django-developer",
-    "applicationMethods": [
-      {
-        "channel": "slack",
-        "note": "Post a message in #intros"
-      }
-    ],
     "category": "Engineering",
     "description": "We are looking for a Senior Python / Django Developer to help us build out both our digital currency network and Website API.",
-    "payNotes": ["2,800 coins/day"],
     "position": "Senior Python / Django Developer",
-    "reportsTo": [
-      {
-        "githubUsername": "buckyroberts",
-        "name": "Bucky"
-      }
-    ],
     "responsibilities": [
       "Designing and creating RESTful APIs",
       "Participating in architectural, design and product discussions",
@@ -27,765 +14,5 @@
       "2+ years of experience in Django",
       "4+ years of experience in Python"
     ]
-  },
-  {
-    "openingId": "senior-devops-engineer",
-    "applicationMethods": [
-      {
-        "channel": "slack",
-        "note": "Post a message in #intros"
-      }
-    ],
-    "category": "Engineering",
-    "description": "As Senior DevOps Engineer you will be a key contributor to designing, building, testing, managing, and maintaining some of the key technology that powers our digital currency network.",
-    "payNotes": ["2,800 coins/day"],
-    "position": "Senior DevOps Engineer",
-    "reportsTo": [
-      {
-        "githubUsername": "buckyroberts",
-        "name": "Bucky"
-      }
-    ],
-    "responsibilities": [
-      "Analyze, troubleshoot and resolve system, software, network, and storage failures",
-      "Configure, test, deploy, and upgrade software for production services in AWS",
-      "Author and recommend settings for applications, operating systems, networks, and cloud services to improve performance, security, and reliability",
-      "Design and develop monitoring and 100% uptime solutions for our digital currency network"
-    ],
-    "technologyRequirements": [
-      "3+ years experience with both software engineering and sysops or 6+ years experience as a DevOps engineer or similar",
-      "Extensive experience with cloud computing and virtualization",
-      "Expert knowledge of Linux",
-      "Proven understanding of networking (TCP/IP, DNS, etc)"
-    ]
-  },
-  {
-    "openingId": "graphic-designer",
-    "applicationMethods": [
-      {
-        "channel": "slack",
-        "note": "Message Kristy KJ Lee & David Yap"
-      },
-      {
-        "channel": "linkedin"
-      },
-      {
-        "channel": "twitter"
-      },
-      {
-        "channel": "reddit"
-      }
-    ],
-    "category": "Design",
-    "description": "As a graphic designer, you will create high-fidelity graphics for our social media team and marketing team.",
-    "payNotes": ["2,800 coins/day"],
-    "position": "Graphic Designer",
-    "reportsTo": [
-      {
-        "githubUsername": "kristykjlee",
-        "name": "Kristy Lee"
-      },
-      {
-        "githubUsername": "davidyapdy",
-        "name": "David Yap"
-      }
-    ],
-    "responsibilities": [
-      "Create HiFi graphics for social media posts & marketing content",
-      "Give design reviews to community members making infographics",
-      "Review end results with design team",
-      "Send completed graphics to social media & marketing team for them to post",
-      "Be a part of creating our visual language"
-    ],
-    "technologyRequirements": ["Skilled in Figma", "Skilled in Illustrator"]
-  },
-  {
-    "openingId": "senior-dot-net-core-developer",
-    "applicationMethods": [
-      {
-        "channel": "slack",
-        "note": "Message Mircea Teodor Oprea"
-      },
-      {
-        "channel": "linkedin"
-      },
-      {
-        "channel": "twitter"
-      },
-      {
-        "channel": "reddit"
-      }
-    ],
-    "category": "Engineering",
-    "description": "Work on the .NET Core SDK for thenewboston, code review the PRs opened by other contributors and participate in discussions about the architecture/direction of the SDK.",
-    "payNotes": ["2,800 coins/day"],
-    "position": "Senior .NET Core Developer",
-    "reportsTo": [
-      {
-        "githubUsername": "Mirch",
-        "name": "Mircea Teodor Oprea"
-      }
-    ],
-    "responsibilities": [
-      "Contribute to the development of the .NET Core SDK",
-      "Code review the PRs of other contributors",
-      "Contribute to discussions about the structure of the project, code standards and development approaches"
-    ],
-    "technologyRequirements": [
-      ".NET Core",
-      "xUnit & Moq",
-      "ASP.NET Core (for future example projects)",
-      "Github Actions"
-    ]
-  },
-  {
-    "openingId": "social-media-manager",
-    "applicationMethods": [
-      {
-        "channel": "slack",
-        "note": "Message MsChrishaph"
-      },
-      {
-        "channel": "linkedin"
-      },
-      {
-        "channel": "twitter"
-      },
-      {
-        "channel": "reddit"
-      }
-    ],
-    "category": "Engineering",
-    "description": "Social Media Managers are responsible for planning, implementing, managing and monitoring company's Social Media strategy in order to increase brand awareness, improve Marketing effort.",
-    "payNotes": ["2,800 coins/day"],
-    "position": "Social Media Manager",
-    "reportsTo": [
-      {
-        "githubUsername": "Chrisha1212",
-        "name": "Chrisha"
-      }
-    ],
-    "responsibilities": [
-      "Develop, implement and manage our social media strategy",
-      "Define most important social media KPIs",
-      "Manage and oversee social media content",
-      "Measure the success of every social media campaign",
-      "Stay up to date with latest social media best practices and technologies",
-      "Work with copywriters and designers to ensure content is informative and appealing",
-      "Collaborate with Marketing Teams"
-    ],
-    "technologyRequirements": [
-      "Proven work experience as a Social media manager",
-      "G-suite expert",
-      "Solid knowledge of SEO, keyword research and Google Analytics"
-    ]
-  },
-  {
-    "openingId": "self-order-app-sr-django-developer",
-    "applicationMethods": [
-      {
-        "channel": "slack",
-        "note": "Message Yahya"
-      }
-    ],
-    "category": "Engineering",
-    "project": {
-      "name": "Restaurants Self Order App",
-      "url": "https://github.com/Restaurants-Self-Order"
-    },
-    "description": "Someone with a good experience in translating business and technical requirements into comprehensive software design and architecture.",
-    "payNotes": ["2,800 coins/day"],
-    "position": "Software Architect/Senior Django Developer",
-    "reportsTo": [
-      {
-        "githubUsername": "yahya",
-        "name": "Yahya"
-      }
-    ],
-    "responsibilities": [
-      "Designing and creating RESTful APIs",
-      "Designing and optimization of the database",
-      "Responsible for architectural, design of the product",
-      "Familiar with diagrams and documentations is a plus",
-      "Code review"
-    ],
-    "technologyRequirements": [
-      "Mainly a person who has a good skills in product designing to meet the best performance, scalability, and maintainability",
-      "Even if you are not experienced with Django, but you meet the main responsibilities, still DM me",
-      "Clean code standards",
-      "5+ years of experience "
-    ]
-  },
-  {
-    "openingId": "tnb-forum-ui-ux-designer",
-    "applicationMethods": [
-      {
-        "channel": "slack",
-        "note": "Message Avinash Upadhyaya"
-      }
-    ],
-    "reportsTo": [
-      {
-        "githubUsername": "",
-        "name": ""
-      }
-    ],
-    "category": "Design",
-    "project": {
-      "name": "TNB Forum",
-      "url": "https://github.com/arunnalla/tnbforum"
-    },
-    "description": "Have a good experience in UI/UX standards",
-    "payNotes": ["2,800 coins/day"],
-    "position": "UI/UX Designer",
-    "responsibilities": [
-      "Design the web interfaces using Figma",
-      "Design pages from scratch based on requirements",
-      "Coordinate and take notes from other teammates"
-    ],
-    "technologyRequirements": [
-      "Using Figma is a must",
-      "Knowledge of design systems is good to know",
-      "Knowledge of React is preferred"
-    ]
-  },
-  {
-    "openingId": "data-entry-operator",
-    "applicationMethods": [
-      {
-        "channel": "slack",
-        "note": "Message MsChrishaph"
-      },
-      {
-        "channel": "linkedin"
-      },
-      {
-        "channel": "twitter"
-      },
-      {
-        "channel": "reddit"
-      }
-    ],
-    "category": "Marketing",
-    "description": "We are looking for a Data Entry Operator to update and maintain information on our Marketing Team database .",
-    "payNotes": ["2,800 coins/day"],
-    "position": "Data Entry Operator",
-    "reportsTo": [
-      {
-        "githubUsername": "Chrisha1212",
-        "name": "Chrisha"
-      }
-    ],
-    "responsibilities": [
-      "Maintaining accurate, up-to-date and useable information in our systems",
-      "Comply with data integrity and security policies",
-      "Keep information confidential",
-      "Research and obtain further information for incomplete documents",
-      "Compile, verify accuracy and sort information according to priorities to prepare source data for computer entry",
-      "Review data for deficiencies or errors, correct any incompatibilities if possible and check output"
-    ],
-    "technologyRequirements": [
-      "Proven data entry work experience, as a Data Entry Operator or Office Clerk",
-      "Experience with MS Office and data programs",
-      "Excellent knowledge of correct spelling, grammar and punctuation",
-      "Can work with Marketing Team"
-    ]
-  },
-  {
-    "openingId": "front-end-developer",
-    "applicationMethods": [
-      {
-        "channel": "slack",
-        "note": "Message Siddhesh Kulthe"
-      },
-      {
-        "channel": "linkedin"
-      },
-      {
-        "channel": "twitter"
-      },
-      {
-        "channel": "reddit"
-      }
-    ],
-    "category": "Engineering",
-    "description": "As a front-end developer, your key contributions will be setting up the layout for the blog, removing bugs, integrating services like Google Analytics, Facebook Pixel, managing the metadata of the website, etc.",
-    "payNotes": ["2,800 coins/day"],
-    "position": "Front End Developer",
-    "reportsTo": [
-      {
-        "githubUsername": "Siddhesh",
-        "name": "Siddhesh Kulthe"
-      }
-    ],
-    "responsibilities": [
-      "Developing the front-end of the website",
-      "Managing the blog and clearing bugs",
-      "Posting blogs on a timely basis (Weekly)",
-      "Changing the blog layout if needed",
-      "The code should not be copy-pasted",
-      "Quality of code shall be high so that reduction in size is possible which will perhaps lead to faster load times"
-    ],
-    "technologyRequirements": [
-      "Experience in ReactJs",
-      "Proven Expertise in SASS",
-      "Shall be well acquainted with jQuery",
-      "Knowledge regarding Backend development is preferred",
-      "Optional: Experience in Server-side Rendering"
-    ]
-  },
-  {
-    "openingId": "python-django-developer",
-    "applicationMethods": [
-      {
-        "channel": "slack",
-        "note": "Message itsnikhil"
-      },
-      {
-        "channel": "linkedin"
-      },
-      {
-        "channel": "twitter"
-      },
-      {
-        "channel": "reddit"
-      }
-    ],
-    "category": "Engineering",
-    "description": "Blockchain Explorer team is looking for a backend developer to lead parts of the blockchain explorer from inception to launch, and own large parts of the product’s execution. They are one of thenewboston approved project with a mission to create Open Blockchain Explorer.",
-    "payNotes": ["2,800 coins/day"],
-    "position": "Python / Django Developer",
-    "reportsTo": [
-      {
-        "githubUsername": "itsnikhil",
-        "name": "Nikhil Taneja"
-      }
-    ],
-    "responsibilities": [
-      "Lead parts of the blockchain explorer from inception to launch, and own large parts of the product’s execution",
-      "Planning out project and involved in database creation, integration, and management",
-      "Writing APIs and Data models for various features of the explorer",
-      "Collaborate with Front-end developers to integrate user-facing elements with server side logic",
-      "Ensuring that systems are safe and secure against cybersecurity threats",
-      "Generating analytics and statistics for the explorer",
-      "Maintain comprehensive workflow documentation and knowledge sharing",
-      "Perform peer code reviews, create issues for other people outside the team could contribute to opensource project"
-    ],
-    "technologyRequirements": [
-      "Proficient in python programming language",
-      "Experienced in Django web framework",
-      "Knowledge of SQL Databases",
-      "Git and GitHub",
-      "Understanding of Blockchain Technology (optional)"
-    ]
-  },
-  {
-    "openingId": "blockchain-payment-auditor",
-    "applicationMethods": [
-      {
-        "channel": "slack",
-        "note": "Message Justin (Angle943)"
-      },
-      {
-        "channel": "linkedin"
-      },
-      {
-        "channel": "twitter"
-      },
-      {
-        "channel": "reddit"
-      }
-    ],
-    "category": "Engineering",
-    "description": "Responsible for ensuring people are sending out payments as promised and other financial operations.",
-    "payNotes": ["2,800 coins/day"],
-    "position": "Blockchain Payment Auditor",
-    "reportsTo": [
-      {
-        "githubUsername": "Angle943",
-        "name": "Justin"
-      }
-    ],
-    "responsibilities": [
-      "Conduct audit",
-      "Monitor completion of payments and resolve payment discrepancies",
-      "Communicate well with others"
-    ],
-    "technologyRequirements": [
-      "Good communication and problem-solving skills",
-      "Attention to detail and accuracy",
-      "Excellent organizational and follow-up skills",
-      "Strong math skills"
-    ]
-  },
-  {
-    "openingId": "technical-project-manager",
-    "applicationMethods": [
-      {
-        "channel": "slack",
-        "note": "Message Justin (Angle943)"
-      },
-      {
-        "channel": "linkedin"
-      },
-      {
-        "channel": "twitter"
-      },
-      {
-        "channel": "reddit"
-      }
-    ],
-    "category": "Engineering",
-    "description": "Responsible for providing project planning and resource management and ensuring that projects are completed to specification. Provide expertise and strategic advice on best practices and leverage change management principles to ensure project success.",
-    "payNotes": ["2,800 coins/day"],
-    "position": "Technical Project Manager",
-    "reportsTo": [
-      {
-        "githubUsername": "angle943",
-        "name": "Justin"
-      }
-    ],
-    "responsibilities": [
-      "Analyze, plan and develop requirements and standards in reference to scheduled projects.",
-      "Oversee subordinates are actively working toward established milestones.",
-      "Hold regular technical team meetings to determine progress and address any questions or challenges regarding projects.",
-      "Determine and define clear deliverables, roles, and responsibilities required for specific projects or initiatives.",
-      "Research and evaluate hardware and software technology options."
-    ],
-    "technologyRequirements": [
-      "Master's degree in Project Management or related technical field required",
-      "Professional Project Management Certification from accredited institution preferred",
-      "Demonstrated understanding of Project Management processes, strategies, and methods",
-      "Experience in establishing guidelines in these areas for others",
-      "Strong sense of personal accountability regarding decision-making",
-      "Applying analytical thinking and problem-solving skills",
-      "Ability to predict challenges and seek to proactively head-off obstacles"
-    ]
-  },
-  {
-    "openingId": "blockchain-legal-consultant",
-    "applicationMethods": [
-      {
-        "channel": "slack",
-        "note": "Message [Bucky]"
-      },
-      {
-        "channel": "linkedin"
-      },
-      {
-        "channel": "twitter"
-      },
-      {
-        "channel": "reddit"
-      }
-    ],
-    "category": "Engineering",
-    "description": "Provide legal counsel to individuals who are deploying Blockchain-based solutions, creating or utilizing digital currencies, and helping individuals understand how existing laws and regulations apply to these new technological innovations. Assist those involved in cryptocurrency ventures to navigate the complex legal issues presented by Blockchain technology.",
-    "payNotes": ["2,800 coins/day"],
-    "position": "Blockchain Legal Consultant",
-    "reportsTo": [
-      {
-        "githubUsername": "Bucky",
-        "name": "Bucky"
-      }
-    ],
-    "responsibilities": [
-      "Finalize terms and agreements and policies to protect community members.",
-      "Advise the community against undesirable factors, including intellectual property.",
-      "Inform the community on taxation, regulations, and so on, at least for major markets.",
-      "Keeping track of agreements of digital currency exchange services.",
-      "Help the community understand use cases as smart contracts, implications in sensitive sectors (health etc.)",
-      "Advise community on how large traders will act/think - e.g., see all aspects of this https://redroadlegal.com/blockchain-crypto-asset-legal-consulting/ "
-    ],
-    "technologyRequirements": [
-      "Fundamental Skills and Knowledge in Technical Field",
-      "Smart Contracts",
-      "Decentralized Applications",
-      "Know how to Simplify",
-      "Understand Blockchain Security",
-      "Know all the Platforms",
-      "Distribute ledger expertise",
-      "Master of Interoperability",
-      "Embracing Blockchain Expertise as a Service",
-      "Learning to Drive Business Outcomes"
-    ]
-  },
-  {
-    "openingId": "business-development-manager",
-    "applicationMethods": [
-      {
-        "channel": "slack",
-        "note": "Message [Bucky]"
-      },
-      {
-        "channel": "linkedin"
-      },
-      {
-        "channel": "twitter"
-      },
-      {
-        "channel": "reddit"
-      }
-    ],
-    "category": "Engineering",
-    "description": "Responsible for helping grow our network by researching leads and establishing relationships with potential partners. With strong interpersonal and communication skills, and experience in researching market trends, targeting relationships, and using proven methods to make business decisions.",
-    "payNotes": ["2,800 coins/day"],
-    "position": "Business Development Manager",
-    "reportsTo": [
-      {
-        "githubUsername": "Bucky",
-        "name": "Bucky"
-      }
-    ],
-    "responsibilities": [
-      "Develop a growth strategy focused both on financial gain and customer satisfaction.",
-      "Promote the company’s products/services addressing or predicting clients’ objectives.",
-      "Developing a business development strategy focused on financial gain.",
-      "Research, locate, define and target key business prospects.",
-      "Create business development strategies; identify roadblocks and drive new business from conception through closure."
-    ],
-    "technologyRequirements": [
-      "Proven working experience",
-      "Market knowledge",
-      "Ability to build rapport",
-      "Planning skills"
-    ]
-  },
-  {
-    "openingId": "quality-assurance-engineer",
-    "applicationMethods": [
-      {
-        "channel": "slack",
-        "note": "Message Justin (Angle943)"
-      },
-      {
-        "channel": "linkedin"
-      },
-      {
-        "channel": "twitter"
-      },
-      {
-        "channel": "reddit"
-      }
-    ],
-    "category": "Engineering",
-    "description": "Responsible for developing and executing exploratory and automated tests to ensure product quality as well as suggesting solutions to identified quality problems. Involved in planning and implementing strategies for quality management and testing.",
-    "payNotes": ["2,800 coins/day"],
-    "position": "Quality Assurance Engineer",
-    "reportsTo": [
-      {
-        "githubUsername": "angle943",
-        "name": "Justin"
-      }
-    ],
-    "responsibilities": [
-      "Test and identify current product deficiencies",
-      "Suggest solutions to identified product problems",
-      "Investigate product quality to make improvements to achieve better customer satisfaction",
-      "Plan, create and manage the overall Quality Planning strategy",
-      "Collaborate with the Product Development team to ensure consistent project execution",
-      "Identify quality assurance process bottleneck and suggest actions for improvement",
-      "Oversee continuous improvement projects",
-      "Collect quality data",
-      "Identify key KPIs for product quality",
-      "Prepare and present reports and metrics to Senior Management"
-    ],
-    "technologyRequirements": [
-      "2 years of experience as a Quality Assurance Engineer",
-      "2 years of experience with a variety of different testing techniques such as UI Testing, Automated Testing, Test Driven Development Strategies, and others",
-      "2 years of experience with coding using JAVA, HTML5, DB2, XML",
-      "2 years of experience with web security technology",
-      "2 years of experience with software QA tools and processes",
-      "A sense of ownership and pride in your performance",
-      "Critical thinker and problem-solving skills",
-      "Team player"
-    ]
-  },
-  {
-    "openingId": "administrative-assistant",
-    "applicationMethods": [
-      {
-        "channel": "slack",
-        "note": "Post a message in #intros"
-      }
-    ],
-    "category": "Community",
-    "description": "Provides administrative or community support through a variety of tasks related to organization and communication.",
-    "payNotes": ["2,800 coins/day"],
-    "position": "Administrative Assistant",
-    "reportsTo": [
-      {
-        "githubUsername": "buckyroberts",
-        "name": "Bucky"
-      }
-    ],
-    "responsibilities": [
-      "Provides administrative support to ensure efficient operation.",
-      "Ensure things are accomplished.",
-      "Carries out administrative duties such as organizing documents, answering questions and requests.",
-      "Organize meetings in Google Calendar."
-    ],
-    "technologyRequirements": ["Knowable with G Suite", "Analyzing Information", "Organization Skills"]
-  },
-  {
-    "openingId": "content-editors",
-    "applicationMethods": [
-      {
-        "channel": "slack",
-        "note": "Message Kristy KJ Lee"
-      },
-      {
-        "channel": "linkedin"
-      },
-      {
-        "channel": "twitter"
-      },
-      {
-        "channel": "reddit"
-      }
-    ],
-    "category": "Marketing",
-    "description": "A detail-oriented content editor who can deliver quality content and help devise traffic and profit generating content strategies for the community.",
-    "payNotes": ["2,800 coins/day"],
-    "position": "Content Editors",
-    "reportsTo": [
-      {
-        "githubUsername": "kristykjlee",
-        "name": "Kristy Lee"
-      }
-    ],
-    "responsibilities": [
-      "Responsible for all aspects of content, which includes development, design, production, presentation, evaluation, analysis, etc.",
-      "Use data and feedback from users to help evaluate and enhance the value of a set of written materials and websites."
-    ],
-    "technologyRequirements": [
-      "Excellent command of the English language",
-      "Writing, copy editing, and proofreading experience",
-      "Good communication and interpersonal skills",
-      "Highly organized and detail-oriented",
-      "Proficient in desktop publishing software",
-      "Proficient in Microsoft Office and Social Media platforms"
-    ]
-  },
-  {
-    "openingId": "localization-manager",
-    "applicationMethods": [
-      {
-        "channel": "slack",
-        "note": "Message Justin (Angle943)"
-      },
-      {
-        "channel": "linkedin"
-      },
-      {
-        "channel": "twitter"
-      },
-      {
-        "channel": "reddit"
-      }
-    ],
-    "category": "Community",
-    "description": "Ensure translation and localization project tasks are managed to high standards and guarantee that a product is ready for a near simultaneous global launch.",
-    "payNotes": ["2,800 coins/day"],
-    "position": "Localization Manager",
-    "reportsTo": [
-      {
-        "githubUsername": "angle943",
-        "name": "Justin"
-      }
-    ],
-    "responsibilities": [
-      "Keep an eye for organization and precision.",
-      "Communicate the promotional message to a series of external teams.",
-      "Excellent communication skills needed. Comprehension of one or more languages is preferrable."
-    ],
-    "technologyRequirements": [
-      "Knowledge in Foreign Languages for future purposes (Spanish, Chinese, Russian, and Japanese)"
-    ]
-  },
-  {
-    "openingId": "community-engagement-specialist",
-    "applicationMethods": [
-      {
-        "channel": "slack",
-        "note": "Message MsChrishaph"
-      },
-      {
-        "channel": "linkedin"
-      },
-      {
-        "channel": "twitter"
-      },
-      {
-        "channel": "reddit"
-      }
-    ],
-    "category": "Community",
-    "description": "Responsible for building awareness about the project such as coordinating and supporting targeted engagements and outreach that supports public participation and partnership-building efforts for the community. Facilitate projects to promote cohesion and participation at the grassroots level.",
-    "payNotes": ["2,800 coins/day"],
-    "position": "Community Engagement Specialist",
-    "reportsTo": [
-      {
-        "githubUsername": "Chrisha1212",
-        "name": "Chrisha"
-      }
-    ],
-    "responsibilities": [
-      "Provide leadership and strategic vision to activities promoting community engagement in municipal governance.",
-      "Strengthen capacity of team members to engage with community, include them in participatory planning processes, and incorporate their priorities into planning documents.",
-      "Facilitate citizen participation in collaborative decision making, management, and monitoring.",
-      "Promote productive interactions between communities that facilitate upward flow of information on community needs and priorities.",
-      "Contribute to work plans, donor reports, success stories, and other deliverables."
-    ],
-    "technologyRequirements": [
-      "Strong interpersonal and written communication skills.",
-      "Proven ability to engage women, youth, and other marginalized populations in community development activities."
-    ]
-  },
-  {
-    "openingId": "ux-designer-researcher",
-    "applicationMethods": [
-      {
-        "channel": "slack",
-        "note": "Message Kristy KJ Lee"
-      },
-      {
-        "channel": "linkedin"
-      },
-      {
-        "channel": "twitter"
-      },
-      {
-        "channel": "reddit"
-      }
-    ],
-    "category": "Design",
-    "description": "Responsible for researching, categorizing, and documenting user behavior by employing design methodologies, facilitating internal & external discussions, and visualizing concepts. Ensure design concepts are fully realized by working closely with software developer teams and collaborating with other designers to arrive at the best design solution.",
-    "payNotes": ["2,800 coins/day"],
-    "position": "UX Designer & Researcher",
-    "reportsTo": [
-      {
-        "githubUsername": "kristykjlee",
-        "name": "Kristy Lee"
-      }
-    ],
-    "responsibilities": [
-      "Conduct competitor analysis, customer analysis and user research.",
-      "Attend to product structure and strategy, as well as content development.",
-      "Develop user flows, prototypes and wireframes.",
-      "Coordination with other designers and developers.",
-      "Conduct user testing and analysis.",
-      "Continuously iterate on solutions to make the product increasingly effective and delightful for users."
-    ],
-    "technologyRequirements": [
-      "Collaboration and communication",
-      "Critical thinking and problem-solving skills",
-      "Familiarity with user research and analysis technique",
-      "Wireframing and prototyping",
-      "Understanding of information architecture",
-      "User and usability testing",
-      "Successful completion of UX/UI course work or training portfolio",
-      "Proven experience at a professional level"
-    ]
   }
 ]
diff --git a/src/data/teams.json b/src/data/teams.json
index 653b1be..d713437 100644
--- a/src/data/teams.json
+++ b/src/data/teams.json
@@ -391,18 +391,6 @@
           "profileImage": "https://avatars2.githubusercontent.com/u/58598872?s=460&v=4",
           "slackUsername": "Bojan Ilijevski"
         }
-      },
-      {
-        "title": "Discord Moderator",
-        "isLead": false,
-        "createdDate": "2020-07-08T02:14:59.307535Z",
-        "contributor": {
-          "contributorId": "28",
-          "displayName": "Rajput Usman",
-          "githubUsername": "Rajputusman",
-          "profileImage": "https://avatars0.githubusercontent.com/u/65516140?s=460&v=4",
-          "slackUsername": "Rajput Usman"
-        }
       }
     ],
     "responsibilities": [
diff --git a/src/dispatchers/app/index.ts b/src/dispatchers/app/index.ts
index b155d25..e911ea1 100644
--- a/src/dispatchers/app/index.ts
+++ b/src/dispatchers/app/index.ts
@@ -1,16 +1,16 @@
-import axios from 'axios';
-
 import {setActiveUser} from 'store/app';
 import {setUser} from 'store/models';
 import {AppDispatch} from 'types/store';
 
+import * as api from 'apis/authentication';
+
 interface LoginParameters {
   email: string;
   password: string;
 }
 
 export const login = (data: LoginParameters) => async (dispatch: AppDispatch) => {
-  const response = await axios.post(`${process.env.REACT_APP_BACKEND_API}/login`, data);
+  const response = await api.login({...data});
   const {authentication, user} = response.data;
   dispatch(setActiveUser({...authentication, ...user}));
   dispatch(setUser(user));
diff --git a/src/types/github.ts b/src/types/github.ts
index aa0484d..8e27fac 100644
--- a/src/types/github.ts
+++ b/src/types/github.ts
@@ -202,6 +202,11 @@ export interface Release extends BaseRelease {
   alphaVersion: number;
 }
 
+export type FetchGithubReleasesParams = {
+  page?: number;
+  per_page?: number;
+};
+
 interface BaseTask {
   amount_paid: string;
   completed_by: string;
diff --git a/src/types/openings.ts b/src/types/openings.ts
index 65e542c..329affe 100644
--- a/src/types/openings.ts
+++ b/src/types/openings.ts
@@ -1,19 +1,9 @@
-import {SocialMedia} from 'types/social-media';
-
-export interface ApplicationMethod {
-  channel: SocialMedia;
-  note?: string;
-}
-
 export interface Opening {
-  applicationMethods: ApplicationMethod[];
   category: OpeningCategory;
   description: string;
   openingId: string;
-  payNotes: string[];
   position: string;
   project?: ProjectProposal;
-  reportsTo: Reportee[];
   responsibilities: string[];
   technologyRequirements: string[];
 }
@@ -35,8 +25,3 @@ export interface ProjectProposal {
   name: string;
   url?: string;
 }
-
-export interface Reportee {
-  githubUsername?: string;
-  name: string;
-}
diff --git a/src/utils/data.ts b/src/utils/data.ts
index 9d75f12..a034b7b 100644
--- a/src/utils/data.ts
+++ b/src/utils/data.ts
@@ -1,19 +1,14 @@
 import parse from 'date-fns/parse';
 import {TEAMS} from 'constants/teams';
-import {Contributor, RawTask, Task, TaskDict} from 'types/github';
+import {RawTask, Task, TaskDict} from 'types/github';
 import {Opening} from 'types/openings';
 import {NavOption} from 'types/option';
 import {TeamMember, TeamName, TeamPlatform, TeamResponsibility} from 'types/teams';
 
-import contributors from 'data/contributors.json';
 import openings from 'data/openings.json';
 import tasks from 'data/tasks.json';
 import teams from 'data/teams.json';
 
-export const getContributors = (): Contributor[] => {
-  return contributors;
-};
-
 export const getOpenings = (): Opening[] => {
   return openings as Opening[];
 };
diff --git a/src/utils/github.ts b/src/utils/github.ts
index 32cceb3..06856c8 100644
--- a/src/utils/github.ts
+++ b/src/utils/github.ts
@@ -1,13 +1,10 @@
-import axios from 'axios';
-
 import {AMOUNT_COLOR, REPOSITORIES} from 'constants/github';
-import {BaseRelease, Issue, Release} from 'types/github';
+import {BaseRelease, Issue, Release, FetchGithubReleasesParams} from 'types/github';
 import {REGEX} from 'constants/regex';
+import * as api from 'apis/github';
 
 export const fetchGithubIssues = async (): Promise<Issue[]> => {
-  const promises = REPOSITORIES.map((repoName) =>
-    axios.get(`https://api.github.com/repos/thenewboston-developers/${repoName.pathname}/issues`),
-  );
+  const promises = REPOSITORIES.map((repoName) => api.getIssuesForRepo(repoName.pathname));
 
   const results = await Promise.all(promises);
   const issues = results
@@ -24,18 +21,8 @@ export const fetchGithubIssues = async (): Promise<Issue[]> => {
   });
 };
 
-type FetchGithubReleasesParams = {
-  page?: number;
-  per_page?: number;
-};
-
 export const fetchGithubReleases = async (queryParams: FetchGithubReleasesParams): Promise<Release[]> => {
-  const {data} = await axios.get<BaseRelease[]>(
-    'https://api.github.com/repos/thenewboston-developers/Account-Manager/releases',
-    {
-      params: queryParams,
-    },
-  );
+  const {data} = await api.getAccountManagerReleases(queryParams);
 
   return data.map((release: BaseRelease) => {
     const {tag_name: tagName} = release;


Test patch:
diff --git a/src/components/CodeSnippet/BaseCodeSnippet/BaseCodeSnippet.test.tsx b/src/components/CodeSnippet/BaseCodeSnippet/BaseCodeSnippet.test.tsx
index 3f8a511..6628f09 100644
--- a/src/components/CodeSnippet/BaseCodeSnippet/BaseCodeSnippet.test.tsx
+++ b/src/components/CodeSnippet/BaseCodeSnippet/BaseCodeSnippet.test.tsx
@@ -27,20 +27,20 @@ describe('RequestResponseSnippet', () => {
     expect(screen.getByText("console.log('TNB is heading to the moon');")).toBeTruthy();
   });
 
-  it('renders with the default obsidian style', () => {
+  it('renders with the default duotone dark style', () => {
     render(<BaseCodeSnippet {...baseProps} />);
 
-    // distinct style for obsidian in hljs
-    expect(screen.getByTestId(baseTestId).style).toHaveProperty('background-color', 'rgb(40, 43, 46)');
-    expect(screen.getByTestId(baseTestId).style).toHaveProperty('color', 'rgb(224, 226, 228)');
+    // distinct style for duotone dark in prism
+    expect(screen.getByTestId(baseTestId).style).toHaveProperty('background-color', 'rgb(42, 39, 52)');
+    expect(screen.getByTestId(baseTestId).style).toHaveProperty('color', 'rgb(154, 134, 253)');
   });
 
   it('renders without crashing when light passed in', () => {
     render(<BaseCodeSnippet {...baseProps} light />);
 
-    // distinct style for routeros in hljs
-    expect(screen.getByTestId(baseTestId).style).toHaveProperty('background-color', 'rgb(240, 240, 240)');
-    expect(screen.getByTestId(baseTestId).style).toHaveProperty('color', 'rgb(68, 68, 68)');
+    // distinct style for solarized light in prism
+    expect(screen.getByTestId(baseTestId).style).toHaveProperty('background-color', 'rgb(253, 246, 227)');
+    expect(screen.getByTestId(baseTestId).style).toHaveProperty('color', 'rgb(101, 123, 131)');
   });
 
   it('renders with showLineNumbers passed in', () => {
diff --git a/src/components/CodeSnippet/CodeSnippet/CodeSnippet.test.tsx b/src/components/CodeSnippet/CodeSnippet/CodeSnippet.test.tsx
index 7931763..9ea23e2 100644
--- a/src/components/CodeSnippet/CodeSnippet/CodeSnippet.test.tsx
+++ b/src/components/CodeSnippet/CodeSnippet/CodeSnippet.test.tsx
@@ -35,8 +35,8 @@ describe('CodeSnippet component', () => {
     expect(code).toBeTruthy();
     expect(code).toHaveClass('language-bash');
 
-    expect(screen.getByTestId('BaseCodeSnippet').style).toHaveProperty('background-color', 'rgb(240, 240, 240)');
-    expect(screen.getByTestId('BaseCodeSnippet').style).toHaveProperty('color', 'rgb(68, 68, 68)');
+    expect(screen.getByTestId('BaseCodeSnippet').style).toHaveProperty('background-color', 'rgb(253, 246, 227)');
+    expect(screen.getByTestId('BaseCodeSnippet').style).toHaveProperty('color', 'rgb(101, 123, 131)');
   });
 
   test('renders dark code for language-json', () => {
@@ -45,8 +45,8 @@ describe('CodeSnippet component', () => {
     expect(code).toBeTruthy();
     expect(code).toHaveClass('language-json');
 
-    expect(screen.getByTestId('BaseCodeSnippet').style).toHaveProperty('background-color', 'rgb(40, 43, 46)');
-    expect(screen.getByTestId('BaseCodeSnippet').style).toHaveProperty('color', 'rgb(224, 226, 228)');
+    expect(screen.getByTestId('BaseCodeSnippet').style).toHaveProperty('background-color', 'rgb(42, 39, 52)');
+    expect(screen.getByTestId('BaseCodeSnippet').style).toHaveProperty('color', 'rgb(154, 134, 253)');
   });
 
   test('renders component with custom className CustomCodeSnippet', () => {