Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
An interactive problem website for Clojure beginners. All new development should be done on the "develop" branch.

This branch is 332 commits behind 4clojure:develop

Failed to load latest commit information.
resources/public Merge branch 'feature/followers' into develop
src/foreclojure Don't overwrite times-solved when editing problems
test/foreclojure/test Add "of out total" to the ranking
.gitignore Golf graphs non-javascript fallback
LICENSE.html
README.md Update readme
config.clj Make the list of bootstrap users configurable, and better documented
load-data.bat Make data_set non-side-effect-y unless you call one of its functions,…
load-data.sh Make data_set non-side-effect-y unless you call one of its functions,…
project.clj Version number

README.md

4Clojure

An interactive problem website for Clojure beginners https://www.4clojure.com.

Contributing

Anyone interested in contributing should check out the Issues page for ideas on what to work on.

Join us in #4clojure on freenode for help or discussion.

Setup instructions for running locally

  • Download and install leiningen.
  • Download and install mongodb.
  • The project uses clojail, which requires a security policy setup in your home directory (because Clojure's eval is unsafe if used improperly). Set up a file called .java.policy in your home directory. The contents should look vaguely like this:

    grant { permission java.security.AllPermission; };
    

    but see the readme of that project for more details.

  • cd to the 4clojure project directory and run lein deps.

  • Start up your mongodb, if you don't have autostart:

    mongod
    
  • For the first time use, you will need to load the problem data. Run the script load-data.sh:

    ./load-data.sh
    
  • Run lein ring server

Contributors

Problem sources:

License

The source code for 4clojure is available under the Eclipse Public License v 1.0. For more information, see LICENSE.html.

Something went wrong with that request. Please try again.