Moot
This is the home of Moot, a CFP and event management system. To learn more, please see the slides for the launch announcement.
Helping out
If you're interested in learning Haskell or would like to help, please contact me! We're still looking for:
- Backend and frontend developers
- Designers
- UI/UX pros
- People willing to help with tutoring and teaching
I'll (Chris) be doing the heavy lifting but I'd like this application to be an opportunity for people to kick around a real Haskell application. To that end, I'm offering tutoring to folks interested in helping out. Don't be afraid to help out in one capacity (e.g. UI/UX) while asking for tutoring in another.
The easiest way to contact me is to send a message to the email address on my GitHub profile.
Current milestone
The current milestone is for CFP functionality. Some of the CFP milestone is general functionality needed for CFP features to be complete.
Database Setup
Ubuntu 16.04 / 18.04
After installing Postgres, run:
sudo -u postgres createuser moot --superuser
sudo -u postgres createdb moot_dev
sudo -u postgres createdb moot_test
echo "ALTER USER moot WITH PASSWORD 'moot'" | sudo -u postgres psql
macOS
If using Postgres.app: https://postgresapp.com/documentation/cli-tools.html Homebrew: https://www.codementor.io/engineerapart/getting-started-with-postgresql-on-mac-osx-are8jcopb
Either way, these commands should be in your path and you shouldn't need to sudo as a separate user specially made for Postgres in the typical macOS PostgreSQL server install:
createuser moot --superuser
createdb moot_dev
createdb moot_test
echo "ALTER USER moot WITH PASSWORD 'moot'" | psql
Windows
???
Haskell Setup
- If you haven't already, install Stack
- On POSIX systems, this is usually
curl -sSL https://get.haskellstack.org/ | sh
- On POSIX systems, this is usually
- Install the
yesodcommand line tool:stack install yesod-bin --install-ghc - Build libraries:
stack build
If you have trouble, refer to the Yesod Quickstart guide for additional detail.
Development
Installing dependencies
This should install the yesod binary for the development server and also install the dependencies for the gulp build:
make deps
Starting the web server for work
Start the gulp watch with:
make frontend-watch
Start a development server with:
make backend-watch
As your code changes, your site will be automatically recompiled and redeployed to localhost.
Tests
stack test --flag moot:library-only --flag moot:dev
(Because yesod devel passes the library-only and dev flags, matching those flags means you don't need to recompile between tests and development, and it disables optimization to speed up your test compile times).
Documentation
- Read the Yesod Book online for free
- Check Stackage for documentation on the packages in your LTS Haskell version, or search it using Hoogle. Tip: Your LTS version is in your
stack.yamlfile. - For local documentation, use:
stack haddock --opento generate Haddock documentation for your dependencies, and open that documentation in a browserstack hoogle <function, module or type signature>to generate a Hoogle database and search for your query
- The Yesod cookbook has sample code for various needs
Getting Help
- Ask questions on Stack Overflow, using the Yesod or Haskell tags
- Ask the Yesod Google Group
- There are several chatrooms you can ask for help:
- For IRC, try Freenode#yesod and Freenode#haskell
- Functional Programming Slack, in the #haskell, #haskell-beginners, or #yesod channels.