A PlaceCal community site
Front-end for The Trans Dimension, an online community hub which will connect trans communities across the UK by collating news, events and services by and for trans people in one easy-to-reach place. A collaboration between Gendered Intelligence and Geeks for Social Change.
Funded by the Comic Relief Tech for Good “Build” fund. Read more about the project here.
- Staging url: https://transdimension.pages.dev
- Production URL: http://transdimension.uk/
- make sure you are using the correct node version with
nvm use
- install with
npm install
Copy .env.example
over into .env
and edit as appropriate! This must be done before any of the following will work as it generates src/Constants.elm
which is used in a number of places in the code.
npm start
to start a dev server on http://localhost:3030npm run build
generate a production build indist/
We recommend integrating [email protected]
into your code editor, but if you don't...
- Please run
npm run format
to format.elm
files insrc
before committing code.
We're using elm-test-rs to run elm tests. It is required to run either npm start
(quickest) or npm build
at least once in the project before tests will work.
- run tests with
npm test
elm.json
for elm packages used for siteelm-tooling.json
for elm packages used for code.env
is used to generatesrc/Constants.elm
for elm-pagesscript/*
contains CLI code generation scripts to generate boilerplate for newelm-pages
routes.nvmrc
contains project node versionpackage.json
for node scripts and packagespackage-lock.json
for current versions of node packagespublic/*
contains static files to be copied direct to buildapp/*
contains core files required byelm-pages
. These are boilerplate altered for this project.src/*
contains custom files. These are authoured from scratch for this project.src/Data/PlaceCal
contains code for fetching, caching and decoding data from PlaceCalsrc/Helpers/
contains utility code (e.g. for handling dates)src/Theme/
contains view code like templates and shared styling
tests/*
contains test files
- Routes in
app/Route/
automatically generate route based on file name - New routes can be generated via CLI
- e.g. create a new stateless route by running
npx elm-pages run AddStaticStatelessRoute MyRouteName
- e.g. create a new stateless route by running
- Page templates are in
src/Theme/Page/
- About and Privacy pages are generated from markdown in
content/
- Copy is not from a datasource (e.g. UI or SEO text) is in
src/Copy/Text.elm
- We are using elm-css for styling
Deploys to Cloudflare Pages
- code is tested and linted automatically before deploy
- when a pull request is created, a preview site is deployed
- when a pull request is merged into
main
, the production site is deployed
- add effort & value labels (if you know enough about it)
- put the issue in a milestone (if it is part of a current epic)
- assign it to yourself before starting work
- make a branch that includes the issue type (fix/feat/chore etc & number)
- make sure you understand the acceptance criteria
- don't forget to include tests if it's a new feature
- ask questions & make plan
- check the acceptance criteria have been met (with tests if appropriate)
- add comments & questions
- once approved, leave for the author to merge
Source code is released under the Hippocratic License.
Graphic design by Studio Squid and © Gendered Intelligence 2022.
Illustrations © Harry Woodgate 2022.
We welcome new contributors but strongly recommend you have a chat with us in Geeks for Social Change's Discord server and say hi before you do. We will be happy to onboard you properly before you get stuck in.
If you'd like to support development, please consider sending us a one-off or regular donation on Ko-fi.