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.
- Node.js, npm and GPG(/GNUPG) installed on your machine.
- Clone the repository:
git clone https://github.com/finos/calendar.git
cd calendar
- 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
.
gpg --symmetric --cipher-algo AES256 calendar-service-account.json
npm install
Create a new directory named dist
in the root directory and run :
npm run get-events
Copy events.json
from dist
to root directory.
npm start
Open browser to http://localhost:5173/
.
https://calendar.finos.org is served by Github Pages and deployed by the build.yml Github Action.
Tests are implemented using testing-library/react and vitest.
npm run test