Sign inSign up

renkman/renkbench

By renkman

•Updated over 2 years ago

A Javascript Amiga Workbench 1.3.3 look and feel clone.

Image
0

1.3K

renkman/renkbench repository overview

⁠Renkbench

Renkbench CI License: GPL v3

Screenshot

A JavaScript Amiga Workbench 1.3.3 look and feel clone with a Go and MongoDB backend. Live on renkbench.de⁠.

⁠Goal

For getting some JavaScript practice, in the year 2009 I created an Amiga Workbench⁠ clone and hosted it on Lachsfilet.de⁠. Since not all look and feel features of the orginal Workbench were implemented, in December of 2018 I started to refactor the code and added some missing features.

In the meantime I put the whole page into a Docker⁠ container to simplify the deployment process.

⁠Frontend features

Currently, the Workbench clone contains the following features:

  • Drag and drop functionality for icons and windows
  • Topaz style font
  • Original window behavior with resizing and scrolling
  • Window to the front and to the back buttons
  • Closing of windows
  • Directories displayed as drawers
  • Context menu in the main title bar triggered by mouse right click
  • Touch events for handheld usage
  • Customized keyboard input using Topaz font

⁠To-do

  • Bugfixing
  • Content
  • Introduce applications
  • Further refactoring
  • Continue splitting frontend code into multiple files

⁠Backend

In 2022, I switched the whole backend to Go⁠ and replaced the single JSON-file for the content with a MongoDB⁠ instance.

For content seeding (windows, menu, etc.) I wrote an own Go application called init.

⁠Docker

The system is setup with Docker Compose⁠, consisting of two containers:

  • The renkbench app (Go and JavaScript ES6)
  • The MongoDB instance

Putting the application into a Docker image enhanced the delivery process and brought the advantage to run it locally without setting up a MongoDB instance and the Node.js stuff for the JacaScript unit tests. For CI build and release I added the Azure DevOps pipelines as YAML code. I will replace them with GitHub Actions, which are also stored in the current repository.

⁠JavaScript unit tests

I started with unit testing using Jasmine⁠ and jsdom⁠, after I cut the createNode builder out of the monolith.

Tag summary

Content type

Image

Digest

sha256:fad03f59e…

Size

51.9 MB

Last updated

over 2 years ago

docker pull renkman/renkbench