GithubHelp home page GithubHelp logo

danilbraun / wescheme Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bootstrapworld/wescheme

0.0 0.0 0.0 47.71 MB

wescheme

Shell 0.10% JavaScript 48.96% Scheme 11.08% Java 7.03% Racket 2.35% CSS 2.69% Makefile 0.01% HTML 27.78%

wescheme's Introduction

WeScheme is an online programming environment based on DrRacket and
Scheme. Like DrRacket, it provides an interactive evaluator and an
interface for editing and running programs. In contrast to DrRacket,
WeScheme evaluates on the browser with JavaScript. Its main audience
is the Bootstrap curriculum, a middle-school curriculum for teaching
algebra through programming.

This repo contains the source code of the WeScheme server. The
official live server can be found at : http://www.wescheme.org/

The user-level documentation for the project is maintained in:

   https://github.com/dyoo/wescheme-docs


----------------------------------------------------------------------
Build dependencies:

In order to build the server, the following tools are needed:
 - Python 2.X
 - Git
 - Java Development Kit **Version 8**. Newer versions do not work.
 - Racket
 - Apache Ant
 - gcloud

All these should be accessible from $PATH. The tools assume a
Unix-like environment to run shell commands, including 'unzip'. See
the section below, if you're building the project on a Windows
machine.

Note: Do not use python 3.X: the build tools are only working on python 2.X.

You will also need to make sure that the DEFAULT_ENCODING environment variable
on your system is set to "UTF-8". On some systems, the build will fail if
the appengine.xml settings differ from those of the environment.

----------------------------------------------------------------------

Installing WeScheme for local development


1.  First, check out the WeScheme repository from Github.

   $ git clone git://github.com/bootstrapworld/wescheme

2.  Run 'build-console-and-editor.rkt'.

THIS STEP IS IMPORTANT!

The script "build-console-and-editor.rkt" must be executed after any
changes are made to the javascript source files in war-src/js.  The
webapp itself uses files in war, which are built by
build-console-and-editor.  Also, the builder also re-compresses
JavaScript files (such as CodeMirror) with the Closure Compiler, so
you must run this every time you change the JavaScript files.



----------------------------------------------------------------------

Running WeScheme locally:

After running build-console-and-editor.rkt, use Apache Ant with the
'runserver' target.

   $ ant runserver

This will bring up a locally-running Webserver running off port 8081.


----------------------------------------------------------------------

Hacking WeScheme:

The directory structure of WeScheme is a fairly typical Java web app.

Treat war as an output distribution directory.  Do not try to modify
files in there directly.  Rather, the majority of the JavaScript files
can be found in:

   war-src/js

which are packaged up via Closure into single JavaScript files, one
per application page.

    console: war/console.jsp, war/js/console-calc.js

        Implements the directory listing of a user's programs.


    openEditor: war/openEditor/index.jsp, war/js/openEditor-calc.js

        Implements main editor window; implements the main WeScheme interface
        (REPL, text editor)


    view: war/view.jsp, war/js/view-calc.js
    run: war/run.jsp

        Implements the viewing and running of programs outside of the
        editing environment.

----------------------------------------------------------------------
Building on a Windows Machine

The build tools of this project requires a unix-like environment. The
bash shell that is part of the standard installation of "GIT for
Windows" will do perfectly. Get it here, if you don't have it yet.

http://git-for-windows.github.io/

To install WeScheme, follow the instructions of the section
"Installing WeScheme for local development" above, but before you
execute the script 'build-console-and-editor.rkt', make sure that a
softlink to your java.exe is defined the current directory. You can
create such a link with the command:

   ln -s "C:\Program Files (x86)\Java\jdk1.8.0_XX\bin\java.exe" java

Note that the link must be named "java" and not "java.exe".

----------------------------------------------------------------------
The Selenium Test Suite.

We use Selenium (http://seleniumhq.org)

To use the suite:

1. Install firefox
2. Install selenium IDE @ http://seleniumhq.org/download/
3. Open up firefox
4. To open selenium, in firefox go to Tools -> Selenium IDE
5. Visit the openEditor page of the wescheme instance in Firefox.
6. in the IDE, go to File -> Open Test Suite
7. Open "full-suite" in testing/
8. Run with the green arrows in the Selenium IDE


Note that the tests as currently written have not yet been coded
to respect some of the delays introduced by asynchronous JavaScript, so
many of the tests will fail unless the speed of the testing framework is
set to slightly slower than the "Fast" speed.

----------------------------------------------------------------------

Eclipse:

- Install plugins here: https://developers.google.com/eclipse/docs/install-eclipse-4.6
- If there is an error about DataNucleus, installing http://www.datanucleus.org/products/datanucleus/jdo/guides/eclipse.html might help
- Need to set version to 1.8 (Project > Properties > Java Compiler. Set Compiler compliance level to 1.8).

----------------------------------------------------------------------

Upload process:

Run `rebuild-and-upload.sh`. This will create a new version (or replace an existing one, if you supply the name of an existing one as an argument), but WILL NOT promote all traffic to that version by default. Promoting traffic must be done from the Google Console: https://console.cloud.google.com/appengine/versions?project=wescheme-hrd-2&serviceId=default&versionssize=50 

To create or replace a specific version, use `rebuild-and-upload.sh <your-version>`.

wescheme's People

Contributors

dyoo avatar bhickey avatar sorawee avatar dankocoj4 avatar wzimrin avatar gauravmm avatar awstlaur avatar melloc avatar schanzer avatar danking avatar kotharitrisha avatar jakemwood avatar magicjarvis avatar jpolitz avatar abosamoor avatar abigsmall avatar blelem avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.