finos / calendar

FINOS Calendar
Apache License 2.0
7 stars 4 forks source link

FINOS Calendar

This code builds the page hosted on https://calendar.finos.org , which is also embedded on https://www.finos.org/calendar , in order to provide a fully hosted solution that shows all events in the FINOS Community (Google) Calendar that can be correctly visualised also behind a corporate firewall.

A Github action runs periodically to fetch events using Google APIs (see src/googleapi2events.js) and renders out a JSON file in dist/events.json.

The calendar is visualized in HTML using React and FullCalendar.

Prerequisites

Getting Started

  1. Clone the repository:
git clone https://github.com/finos/calendar.git
cd calendar
  1. Download calendar-service-account.json into the project's root folder.

In order to use the Google Calendar API you will need to follow these 5 steps to generate the necessary credentials for a Service Account. Once you have the credentials store them in the root folder of the project in a file named calendar-service-account.json.

Encrypting Google Service Account key

gpg --symmetric --cipher-algo AES256 calendar-service-account.json

Install the dependencies:

npm install

Import events from Google API

Create a new directory named dist in the root directory and run :

npm run get-events

Copy events.json from dist to root directory.

Run development server

npm start

Open browser to http://localhost:5173/.

Live environment

https://calendar.finos.org is served by Github Pages and deployed by the build.yml Github Action.

Tests

Tests are implemented using testing-library/react and vitest.

npm run test