Skip to content

Cross-platform desktop application for grading students' assignments (built with NW.js)

License

Notifications You must be signed in to change notification settings

NLKNguyen/grading-app

Repository files navigation

Grading App

license Travis CI Build StatusGitHub release

Cross-platform (offline/standalone) desktop application for grading students' assignments. Click & Run -- no additional softwares needed.

Download prebuilt distributions

=> https://github.com/NLKNguyen/grading-app/releases

Available for macOS 64bit, Linux 32/64bit, and Windows 32/64bit

Screenshots

Home

Menu

Filter

Details

Summary

Criteria

DEVELOPMENT

Technology overview

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:

    • LoDash (Awesome functional programming library for data manipulation)

    • Babel (ES2015 to ES5 transpiler)

    • Gulp (Streaming build system)

    • and others

The codebase follows AngularJS 1.x best practices


Build

2 ways

Directly on your terminal

Require Node.js and NPM to be available.

At project directory

$ npm install --production
$ npm run bower-install
$ npm run gulp-transpile

Or using nwjs-project Docker image

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

Install NW.js

2 ways

Normally

This is a typical NW.js app, so you can follow NW.js documentation to install NW.js.

Or using nwjs-project Docker image

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"

Run

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.

Package

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.

CI/CD

// TODO: explain later

Todo

  • End-user documentation
  • Dev documentation

License MIT

Copyright © 2015-2016 Nguyen Nguyen