Skip to content

Commit 9d1c2f1

Browse files
authored
feat: ✨ attribution page in about namespace (#23)
1 parent fd406a4 commit 9d1c2f1

File tree

7 files changed

+103
-50
lines changed

7 files changed

+103
-50
lines changed

app/(home)/page.tsx

+3-22
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,11 @@
1-
import { Card, Cards } from "fumadocs-ui/components/card";
2-
import { Brush, BookOpenText, ScrollText } from "lucide-react";
1+
import { Cards } from "fumadocs-ui/components/card";
2+
import { homePageCards } from "@/lib/categories";
33

44
export default function HomePage() {
55
return (
66
<main className="p-4">
77
<h1 className="mt-6 mb-4 text-2xl font-medium">Welcome to ICSSC</h1>
8-
<Cards>
9-
<Card
10-
icon={<Brush />}
11-
href="/docs/brand"
12-
title="Brand Guide"
13-
description="Logos, colors, topography, guidelines"
14-
/>
15-
<Card
16-
icon={<BookOpenText />}
17-
href="/docs/developer"
18-
title="Developer Docs"
19-
description="Public facing developer projects"
20-
/>
21-
<Card
22-
icon={<ScrollText />}
23-
href="/docs/contributor"
24-
title="Contributor Docs"
25-
description="Internal documentation and design reasoning"
26-
/>
27-
</Cards>
8+
<Cards>{...homePageCards}</Cards>
289
</main>
2910
);
3011
}

app/docs/layout.tsx

+2-25
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { RootToggle } from "fumadocs-ui/components/layout/root-toggle";
22
import { DocsLayout } from "fumadocs-ui/layouts/docs";
3-
import { BookOpenText, Brush, ScrollText } from "lucide-react";
43
import type { ReactNode } from "react";
54
import { headers } from "next/headers";
65

76
import { baseOptions } from "../layout.config";
87

98
import { source } from "@/app/source";
9+
import { categories } from "@/lib/categories";
1010

1111
export function generateViewport() {
1212
const userAgent = headers().get("user-agent");
@@ -22,30 +22,7 @@ export default function Layout({ children }: { children: ReactNode }) {
2222
return (
2323
<DocsLayout
2424
sidebar={{
25-
banner: (
26-
<RootToggle
27-
options={[
28-
{
29-
icon: <Brush />,
30-
title: "Brand Guide",
31-
description: "Logos, colors, topography, guidelines",
32-
url: "/docs/brand",
33-
},
34-
{
35-
icon: <BookOpenText />,
36-
title: "Developer Docs",
37-
description: "Public facing developer projects",
38-
url: "/docs/developer",
39-
},
40-
{
41-
icon: <ScrollText />,
42-
title: "Contributor Docs",
43-
description: "Internal documentation and design reasoning",
44-
url: "/docs/contributor",
45-
},
46-
]}
47-
/>
48-
),
25+
banner: <RootToggle options={categories} />,
4926
}}
5027
tree={source.pageTree}
5128
{...baseOptions}

content/docs/about/anteaterapi.mdx

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
---
2+
title: Anteater API
3+
---
4+
5+
import { Accordion, Accordions } from 'fumadocs-ui/components/accordion';
6+
7+
## What is Anteater API?
8+
9+
Anteater API provides various data from the University of California, Irvine, in a structured format that can be used by other software.
10+
11+
Anteater API is maintained by the ICS Student Council (ICSSC).
12+
13+
## What is ICSSC?
14+
15+
ICS Student Council is a far-reaching organization that aims to improve student life within and beyond the Donald Bren School of Information and Computer Sciences.
16+
17+
## Getting Involved with ICSSC
18+
19+
ICSSC typically hosts weekly events in DBH 6011 on Wednesdays from 7-8pm. All UCI affiliates are welcome to attend.
20+
21+
You can learn about more ways to get involved [here](https://icssc.club/get-involved).
22+
23+
## Using Anteater API in Your Software
24+
25+
If you're building an application that manipulates public data provided by the school, the Anteater API likely has you covered.
26+
27+
You can learn about the capabilities of Anteater API, and how to use it, [here](/docs/developer/anteaterapi).
28+
29+
## Using Anteater API for Research
30+
31+
Anteater API contains a wealth of historical data that could be useful in your research endeavors. The following is a non-exhaustive list of the historical data we have, as well as the earliest term for which we have this data.
32+
<Accordions>
33+
<Accordion title="Schedule of Classes">
34+
Since Fall 1990.
35+
</Accordion>
36+
<Accordion title="Grade distributions">
37+
Since Summer 2014.
38+
</Accordion>
39+
<Accordion title="Course enrollment trends">
40+
Since Winter 2022.
41+
</Accordion>
42+
</Accordions>
43+
44+
If there's more data that you'd like to see us provide for your research project, and such data can be obtained publicly, please don't hesitate to reach out.
45+
46+
## Contributing to Anteater API
47+
48+
Anteater API is free and open-source software (FOSS). The word "free" in this context is as in free speech, though there is also no monetary cost to use Anteater API. This means that everyone can view its source code to see how it works, and everyone is allowed to contribute to Anteater API and/or redistribute its source code.
49+
50+
The Anteater API team also regularly extends invitations to active contributors who are not part of Projects Committee.

content/docs/about/index.md

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
---
2+
title: About
3+
---

content/docs/about/meta.json

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"pages": ["---Projects---", "anteaterapi"],
3+
"root": true
4+
}

content/docs/developer/anteaterapi/attribution-policy.mdx

+3-3
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,16 @@ This attribution policy applies to you if you use data from the instance of Ante
88

99
## Applications
1010

11-
If you use Anteater API in an application, please include the following attribution in a prominent location in relevant contexts. This includes areas where a user is prompted to enter a query that leads to data provided by the API, and areas where data from Anteater API is displayed. Whenever possible, link to https://anteaterapi.com/attribution when referencing Anteater API.
11+
If you use Anteater API in an application, please include the following attribution in a prominent location in relevant contexts. This includes areas where a user is prompted to enter a query that leads to data provided by the API, and areas where data from Anteater API is displayed. Whenever possible, link to https://icssc.link/about-anteaterapi when referencing Anteater API.
1212

1313
### Search Bar
1414

1515
- Search Anteater API for Courses
1616

1717
### Data
1818

19-
- Data from [Anteater API](https://anteaterapi.com/attribution)
20-
- Courses from [Anteater API](https://anteaterapi.com/attribution)
19+
- Data from [Anteater API](https://icssc.link/about-anteaterapi)
20+
- Courses from [Anteater API](https://icssc.link/about-anteaterapi)
2121

2222
## Academic Work
2323

lib/categories.tsx

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import { Card } from "fumadocs-ui/components/card";
2+
import type { Option } from "fumadocs-ui/components/layout/root-toggle";
3+
import { BookA, BookOpenText, Brush, ScrollText } from "lucide-react";
4+
5+
interface RootToggleOption extends Option {
6+
title: string;
7+
}
8+
9+
export const categories: RootToggleOption[] = [
10+
{
11+
icon: <BookA />,
12+
title: "About",
13+
description: "Introductory information about us and our projects",
14+
url: "/docs/about",
15+
},
16+
{
17+
icon: <BookOpenText />,
18+
title: "Developer Docs",
19+
description: "Public facing developer projects",
20+
url: "/docs/developer",
21+
},
22+
{
23+
icon: <ScrollText />,
24+
title: "Contributor Docs",
25+
description: "Internal documentation and design reasoning",
26+
url: "/docs/contributor",
27+
},
28+
{
29+
icon: <Brush />,
30+
title: "Brand Guide",
31+
description: "Logos, colors, topography, guidelines",
32+
url: "/docs/brand",
33+
},
34+
];
35+
36+
export const homePageCards = categories.map(({ icon, title, description, url }) => (
37+
<Card key={title} icon={icon} title={title} description={description} href={url} />
38+
));

0 commit comments

Comments
 (0)