import Link from 'next/link' import { documents, authors, topics as topicsList, affiliations, } from './db/data' import { epoch2datestring } from './utils/epoch2datestring' export default function Home() { const RandomDocs = (): React.ReactNode[] => { // Convert the object keys into an array const keys = Object.keys(documents) // Determine the number of keys to process (all if fewer than 10) const numKeysToProcess = keys.length < 10 ? keys.length : 10 // Shuffle the keys array if there are more than 10 keys if (keys.length > 10) { for (let i = keys.length - 1; i > 0; i--) { const j = Math.floor(Math.random() * (i + 1)) ;[keys[i], keys[j]] = [keys[j], keys[i]] } } // Select keys based on numKeysToProcess const selectedKeys = keys.slice(0, numKeysToProcess) // Iterate over each of the selected keys return selectedKeys.map((key, index) => { const { title, dates, type, topics } = documents[key].manifest let dateString = epoch2datestring(dates[dates.length - 1]) let typeString = '' switch (type) { case 'report': typeString = 'report' break case 'presentation': typeString = 'presentation' break case 'white paper': typeString = 'white paper' break case 'datasheet': typeString = 'datasheet' break case 'dwm': typeString = 'DWM' break case 'other': typeString = 'document' break } const randomFromArray = (arr: string[]): string => arr[Math.floor(Math.random() * arr.length)] return (
{title}, a {typeString}{' '} about {topicsList[randomFromArray(topics)]['name']} published on{' '} {dateString} .
) }) } const AuthorDisplay = () => { return Object.entries(authors).map(([author, data], index) => { let affiliationSlug = data.affiliation[0].split('@')[1] let affiliation = affiliations[affiliationSlug] return (
{data.name.first} {data.name.nickname ? ` "${data.name.nickname}" ` : ' '} {data.name.last} {' '} of{' '} {affiliation.short}
) }) } return (

eeXiv2, like arXiv, is a free distribution service and an open-access archive for nearly 2.4 million scholarly articles in the fields of physics, mathematics, computer science, quantitative biology, quantitative finance, statistics, electrical engineering and systems science, and economics, but mainly related to the{' '} FIRST Robotics Competition (FRC) . Materials on this site may be published independently through other channels. Read more about us here.

eeXiv2 News
Stay up to date with what is happening at eeXiv2.
Latest news
- eeXiv is currently under active development!

Selected documents in various disciplines
Our esteemed faculty and alumni
) }