Cross-platform (offline/standalone) desktop application for grading students' assignments. Click & Run -- no additional softwares needed.
=> https://github.com/NLKNguyen/grading-app/releases
Available for macOS 64bit, Linux 32/64bit, and Windows 32/64bit
This is built with NW.js (previously known as Node-Webkit). It's a runtime based on Chromium and Node.js that allows web applications to run as native on multiple platforms (macOS, Linux, Windows)
-
Language: JavaScript (ES2015), HTML, CSS
-
Framework: AngularJS 1.x (Google's MVC front-end web framework)
-
User Interface: Angular Material + Material Design Lite
-
Database: NeDB (Embedded NoSQL datastore)
-
Ultility:
The codebase follows AngularJS 1.x best practices
2 ways
Require Node.js and NPM to be available.
At project directory
$ npm install --production
$ npm run bower-install
$ npm run gulp-transpile
All you need is Docker
and no other development programs are required on your machine. The Docker container already has Node.js and NPM as well as other utilities.
At project directory:
$ docker run --rm -it -v $(pwd):/mnt nlknguyen/nwjs-project --shell
Explain: // TODO
Note for Windows: // TODO
Once you are inside the container shell, run build commands normally like above:
$ npm install --production
$ npm run bower-install
$ npm run gulp-transpile
2 ways
This is a typical NW.js app, so you can follow NW.js documentation to install NW.js.
The nwjs-project Docker image includes NW.js runtime binaries for all supported architectures. The following command will bring the target runtime to your project directory under a subdirectory nwjs-sdk
$ docker run --rm -v $(pwd):/mnt nlknguyen/nwjs-project --nwjs-sdk="[ARCH]"
Where [ARCH]
can be one or many of win-x64 win-ia32 linux-x64 linux-ia32 osx-x64
(separated by a space)
For example, on macOS you will do:
$ docker run --rm -v $(pwd):/mnt nlknguyen/nwjs-project --nwjs-sdk="osx-x64"
At project directory
$ [path to NW.js binary] .
If you use the above Docker image, a shortcut is already added to your directory so you can just double click on it. For example, it will be something like nwjs-sdk.linux-x64.desktop
for Linux architecture or nwjs-sdk.osx-x64.command
for macOS architecture.
You can package it just like any other NW.js app (see documentation). Or simply use nwjs-project Docker image to package for different OSes automatically.
$ docker run --rm -v $(pwd):/mnt nlknguyen/nwjs-project --package="[ARCH]" --name="grading-app"
Where [ARCH]
can be one or many of win-x64 win-ia32 linux-x64 linux-ia32 osx-x64
(separated by a space). Without specifiying the architectures (i.e. --package
only), it will package for all architectures.
The distributions are located in release
subdirectory, and they are all zipped.
// TODO: explain later
- End-user documentation
- Dev documentation
Copyright © 2015-2016 Nguyen Nguyen