This project was created for the March 2024 Solid Hackathon. The goal is to produce an easy-to-use calendar application that produces interoperable data and that can be embedded into other solid apps.
Install dependencies:
npm i
We are using Vite as our primary build tool. We also have a solid server to aid development.
We recommend developing like this:
In one terminal, run vite
npm run dev
In a second terminal, run the solid server
npm run pod
This will get you set up with everything you need to test the app, and will automatically refresh after any changes.
However, you could use your own Solid Pod on any Solid Provider to send and receive calendar. Here are some of the popular ones to get started:
The calendar events will be saved to "calendar-events" folder in your main container, this can be configured to any folder destination of your choosing.
The ShEx shape used in this Solid App for the events in the calendar is defined in event.shex. They are of Event type.
The following properties are associated with this Event:
- organizer (Person)
- name (String)
- startDate (dateTime)
- endDate (dateTime)
- attendees (Person)
- location (Place)
- about (Thing)
Linting of TypeScript files is provided by ESLint and TypeScript ESLint. In addition, lit-analyzer is used to type-check and lint lit-html templates with the same engine and rules as lit-plugin.
The rules are mostly the recommended rules from each project, but some have been turned off to make LitElement usage easier. The recommended rules are pretty strict, so you may want to relax them by editing .eslintrc.json
and tsconfig.json
.
To lint the project run:
npm run lint
Prettier is used for code formatting. It has been pre-configured according to the Lit's style. You can change this in .prettierrc.json
.
You can run prettier with
npm run format
Prettier has not been configured to run when committing files, but this can be added with Husky and pretty-quick
. See the prettier.io site for instructions.