Example frontend CRUD project in Elm.
See my CRUD umbrella project: typesafe-web-polyglot.
Features:
- Almost (since this is Elm) polymorphic CRUD
- code reuse across crud-ed entities
- CRUD components agnostic of each other existence
- Type safe Web
- Typed Web API for server interaction
- Client-side typed dispatch API using hash URL fragments
- Optional use of servant generated code (see crud-ex-backend-servant and FromServant.ThingApi).
- Almost-SPA / SPA design
Other Features:
- Customizable logging of elm runtime interactions
See also: Naming Conventions/Code Review
TODO List:
- List pagination support
- Keep rethinking styling and views
- should I keep using purecss?
Git:
I am using submodules to get dependencies/elm-purecss, elm-purecss project is not available
as elm 0.18 package dependency.
Backend companion projects:
crud-ex-backend-yesod.
crud-ex-backend-servant
crud-ex-backent-http4s
To Run in elm-reactor:
0. Install Elm Platform
- Start backend server (see backend instructions).
- start elm-reactor
- point browser to elm-reactor.html
How to Deploy to Yesod:
This primitive and ugly elm_deploy_to_yesod.sh script assumes folder structure in which
this project and
the yesod project
share the same parent folder.
How to Deploy to Servant:
Included primitive elm_deploy_to_servant.sh script assumes folder structure in which this project and the servant project
share the same parent folder.
Conclusions (so far):
- I like Elm a lot 🎆. Combines FP and simplicity!
- Would like to see
- more stable language API
- package manager working with ported (JS FFI) projects
- language polymorphism (is it FP without denotational abstractions? laws? proof obligations?)