Contributing¶
Thank you for your interest in actively participating in the project's development! Please read the Contributor Covenant Code of Conduct and the Contributor License Agreement first.
The project is based on re-frame, a framework for building Modern Web Apps in ClojureScript. You should probably take a look at their exceptional documentation.
Style Guide¶
We try to follow the Clojure Style Guide as much as possible.
In addition to the idiomatic names, we use the following conventions
- e - event
- el - element
- attr, attrs - attribute, attributes
- prop, props - property, properties
We also use the following namespace aliases
- v - views
- e - events
- h - handlers
- s - subs
If the namespace belongs to a different module, we use module.v
.
App structure¶
Main structure
src\ ├── renderer\ <--- renderer process ├── main.cljs <--- main process └── preload.cljs <--- preload script
We are trying to split our code under renderer into relatively independent modules, following re-frame's app structure suggestions with some minor additions.
module\ ├── core.cljs <--- entry point ├── db.cljs <--- schema, validation ├── views.cljs <--- reagent views ├── events.cljs <--- event handlers ├── subs.cljs <--- subscription handlers ├── handlers.cljs <--- helper functions for db transformations ├── styles.css <--- styles └── README.md <--- documentation
Useful development shortcuts¶
Ctrl+Shift+I Toggle devtools
Ctrl+Shift+H Toggle 10x
Ctrl+R Reload app