Bild och ord
A little game designed to help young children learn to read. The idea is to familiarise the student with common words (in Swedish, as this game is implemented for a Swedish-language learning platform).
The student can drag-and-drop words to connect them with the correct illustration. In addition, typing skills are fostered by having the student type in the words as well.
The application is written in Clojure and ClojureScript and is based on the duct web application template.
When you first clone this repository, run:
This will create files for local configuration, and prep your system for the project.
To begin developing, start with a REPL.
go to initiate and start the system.
user=> (go) :started
By default this creates a web server at http://localhost:3000.
When you make changes to your source files, use
reset to reload any
modified files and reset the server. Changes to CSS or ClojureScript
files will be hot-loaded into the browser.
user=> (reset) :reloading (...) :resumed
If you want to access a ClojureScript REPL, make sure that the site is loaded in a browser and run:
user=> (cljs-repl) Waiting for browser connection... Connected. To quit, type: :cljs/quit nil cljs.user=>
Stylesheets are written as SCSS files. To compile into CSS, run the following in a background terminal screen:
lein scss :dev auto
sassc utility needs to be installed.
Testing is fastest through the REPL, as you avoid environment startup time.
user=> (test) ...
But you can also run tests through Leiningen.
These end-to-end tests in
test/features use the clj-webdriver wrapper around
Selenium which in turn drives PhantomJS. You'll need to have the
available on your path. You can get it with the node package manager. For example:
npm install -g phantomjs
Migrations are handled by ragtime . Migration files are stored in
resources/migrations directory, and are applied in alphanumeric
To update the database to the latest migration, open the REPL and run:
user=> (migrate) Applying 001-base ...
To rollback the last migration, run:
user=> (rollback) Rolling back 001-base
Note that the system needs to be setup with
migrations can be applied.
- IP address in
ansible-galaxy install -r ansible/requirements.yml -p ansible/roles
Building and deploying an uberjar:
lein uberjar ansible-playbook ansible/prod.yml --extra-vars "app_version=0.1.0-SNAPSHOT" --tags "deploy" --private-key ... --ask-sudo-pass --ask-vault-pass
Vagrant can be used to test deployment locally:
vagrant up # if vagrant box is already running vagrant provision
- Johannes Staffans
- Robin Gower
Copyright © 2016 Johannes Staffans
This software is distributed under the MIT license.