Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Written General and End User Documentation Centralized calendar #17

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions pages/_meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,10 @@
"corporate-dashboard": {
"title": "Corporate Dashboard",
"href": "/special-projects/corporate-dashboard"
},
"centralized-calendar": {
"title": "Centralized Calendar",
"href": "/special-projects/centralized-calendar"
}
}
}
Expand Down
5 changes: 5 additions & 0 deletions pages/special-projects/_meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,10 @@
"title": "Corporate Dashboard",
"type": "page",
"display": "hidden"
},
"centralized-calendar": {
"title": "Centralized Calendar",
"type": "page",
"display": "hidden"
}
}
24 changes: 24 additions & 0 deletions pages/special-projects/centralized-calendar/_meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"index": {
"title": "Overview"
},
"end-user": {
"title": "End User Guide"
},
"---": {
"type": "separator"
},
"-- Technical Documentation": {
"type": "separator",
"title": "Technical Documentation"
},
"getting-started": {
"title": "Getting Started"
},
"api-reference": {
"title": "API Reference"
},
"architecture": {
"title": "Architecture"
}
}
3 changes: 3 additions & 0 deletions pages/special-projects/centralized-calendar/api-reference.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import { Steps, Callout } from "nextra/components";

# API Reference
5 changes: 5 additions & 0 deletions pages/special-projects/centralized-calendar/architecture.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import { Steps, Callout } from "nextra/components";

# Architecture

{/* Include details on application architecture and decisions such as only updating future events. */}
75 changes: 75 additions & 0 deletions pages/special-projects/centralized-calendar/end-user.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
import { Callout } from "nextra/components";

# End User Guide

<Callout type="info">
This page is intended for members of other ICS organization to provide information on how to
participate in the ics-centralized-calendar project.
</Callout>

{/* Include a breif introduction of what is Centralized Calendar Project is and steps to get a the required Google Calendar URL. */}

## Introduction

The `ics-centralized-calendar` project is an easy to use API meant to provide centralized access to all ICS calendars, offering options for selecting specific clubs and output formats (ICS or JSON).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think approaching this introduction from a more project / goal oriented mindset might be more suitable for this page.

Something that covers:

  • Bring the ICS community closer
  • Makes your events easier to discover
  • Helps us promote ICS events better

I don't think explaining that this project is an API is necessarily useful for the target audience of this doc (other clubs).


## Steps to Add Your Google Calendar URL

To participate in the ics-centralized-calendar project, follow these steps to share your Google Calendar URL:

1. **Open Google Calendar:**

- Go to [Google Calendar](https://calendar.google.com).

2. **Access Calendar Settings:**

- On the left sidebar, hover over the calendar you want to share.
- Click on the three vertical dots that appear and select "Settings and sharing."

3. **Get the Shareable Link:**

- Scroll down to the "Access permissions for events" section.
- Check the box that says "Make available to public."
- Scroll further down to the "Integrate calendar" section.
- Copy the "Public address in iCal format" link.

4. **Submit Your Calendar Link:**
- Send the copied calendar link to our project team leads ([Alex](https://github.com/alexanderl19), [Eddy](https://github.com/ecxyzzy)).
Comment on lines +20 to +37
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use built-in steps component.


<Callout type="tip">
Remember to make sure your calendar is set to public so that we can access and integrate your
events.
</Callout>

{/* Include a breif FAQ with information on how event updates work. */}

## FAQ

### How do event updates work?

Once your calendar link is submitted and integrated into the ics-centralized-calendar, your events will be automatically updated every 6 hours. This ensures that any new events or changes to existing events that have not happened yet are reflected in the ics-centralized-calendar quickly.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that saying the repo name "ics-centralized-calendar" becomes wordy quickly. What are you thoughts on phrasing along the times of "integrated into our calendar system"?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is specifying the exact time period too specific. I'm worried that this information can become quickly out of date. Also as a separate question, was there a reason we settled on 6 hours? That seems like a very long period to me.

Maybe something like "... your events will be updated automatically. Updates may take up to x hours to reflect on our end." adds more clarity?


### What event information is required?

Every event should have the following fields for best clarity and organization, these fields are usually required by default when creating an event in Google Calendar:

- **Title:** A clear description of the event.
- **Date and Time:** A start and end time that is input through the google calendar GUI.
- **Description:** Include details such as location, agenda, and contact information.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we not use the location field on the event? If so this should be reflected here. If not, I feel like this might be a small oversight.


### How can I make changes to my events?

Simply update your events in your Google Calendar. The changes will be reflected in the ics-centralized-calendar during the next update cycle.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Potentially use the same very explicit wording as before, indicating that changes may take up to x to reflect.


### How do I change or remove my club's calendar from the centralized calendar?

Contact our project leads([Alex](https://github.com/alexanderl19), [Eddy](https://github.com/ecxyzzy)) to change or remove your calendar URL from the ics-centralized-calendar.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While we encourage all ICS clubs to participate, email [email protected] if you wish to remove your club's events. After removal, your events will no longer be announced on our weekly calendars or regularly publicized at our events.


### Who do I contact for support?

If you have any questions or need assistance, contact our project leads ([Alex](https://github.com/alexanderl19), [Eddy](https://github.com/ecxyzzy)).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please email [email protected] or contact our EVP.


<Callout type="info">
By participating in the ics-centralized-calendar project, you help create a more organized and
informed ICS community. Thank you for your contribution!
</Callout>
69 changes: 69 additions & 0 deletions pages/special-projects/centralized-calendar/getting-started.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
import { Steps, Callout } from "nextra/components";

# Getting Started

<Callout type="error">
This project is currently private, and only available to ICSSC Projects internal members.
</Callout>

## Setup

<Steps>
### Clone Repository

```bash
git clone https://github.com/icssc/ics-centralized-calendar.git
cd corporate-dashboard
```

### Install Dependencies

<Callout type="warning">
This project uses pnpm. Use pnpm to install dependencies to avoid mismatching lockfiles.
</Callout>

```bash
pnpm install
```

### Setup IAM Credentials _Optional_

This is an optional step only available for ICSSC Projects internal members. If this is your first time setting up an ICSSC project using SST, request credentials from your project lead. If you've already set up IAM Credentials for another ICSSC project, this step is not necessary.

```
[default]
aws_access_key_id = <YOUR_ACCESS_KEY_ID>
aws_secret_access_key = <YOUR_SECRET_ACCESS_KEY>
```

### Setup postgres environment variable

You can request database credentials from you project lead or you can just create your own database server on your local machine for local development purposes. Whichever you choose, you will need to set the `DATABASE_URL` environment variable in a `.env` file in the root of the project. The `.env` file should look like this:

```
DATABASE_URL=postgres://yourusername:yourpassword@localhost:5432/calendar
```

</Steps>

## Commands

### Dev

#### With SST

```bash
pnpm dev
```

#### Without SST

```bash
pnpm exec next dev
```

### Build

```bash
pnpm build
```
10 changes: 10 additions & 0 deletions pages/special-projects/centralized-calendar/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Centralized Calendar

The ics-centralized-calendar project is designed to enhance collaboration and cohesiveness within the ICS community. It is an API that aggregates calendar information from participating ICS clubs and provides easy access to events in both ICS and JSON formats.

## Goals

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also better publicize ICS club events

- **Foster Community:** Strengthen the sense of community within ICS.
- **Enhance Cohesiveness:** Promote transparency and cooperation between clubs.
- **Inform Students:** Provide ICS students with clear and accessible information about club events.
- **Streamline Event Viewing:** Simplify the process of viewing events from each club.
Loading