SkillAgentSearch skills...

Cation

A full-stack Haskell web application starter project.

Install / Use

/learn @mbeidler/Cation
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

cation

A full-stack Haskell web application starter project.

cation uses servant and persistent on the server, and react-flux on the client. It also contains a sample endpoint to demonstrate documentation with servant-swagger, using existing React components, etc.

See the slides from my recent talk at pdxfunc.

cation-server

cation-server by default runs on port 8081, but you can choose a different one by exporting a PORT environment variable.

Database

cation-server uses PostgreSQL and builds on the work of servant-persistent.

On Debian-based systems, the following is all that is needed to be able to run the application. persistent creates the tables if they don't exist and performs any necessary migrations if they do.

sudo apt-get install postgres libpq-dev
sudo -u postgres createuser -se test
sudo -u postgres psql -c "alter role test with password 'test'"
sudo -u postgres psql -c "create database cation"

Building

cd cation-server
stack setup
stack build

Running

stack exec cation-server-exe

cation-client

You can use the http-server npm package to serve the app.

We made a go script in package.json that runs a stack build, copies the all.js output and launches index.html. Note: if you're running on Windows, you'll need to be using cygwin / mingw / msys.

cd cation-client
stack setup
stack build
npm install
npm install -g browserify http-server
browserify imports.js -o bundle.js
npm run go

To run GHCJS interactive mode:

npm install -g socket.io
cd cation-client
stack ghci

Now open a browser to localhost:6400 to connect to GHCJSi.

You can use interactive mode from emacs by using the exec-path-from-shell package:

(require 'exec-path-from-shell)
(exec-path-from-shell-initialize)
(exec-path-from-shell-copy-env "NODE_PATH")

After adding those to your ~/.emacs file, you can use C-c C-l. Launch your browser as described above.

View on GitHub
GitHub Stars43
CategoryDevelopment
Updated3y ago
Forks5

Languages

Haskell

Security Score

60/100

Audited on Jul 27, 2022

No findings