This repo contains our final deliverable code for the group project of ELEC96019 - High Level Programming, 2021. It is an F# Elmish MVU implementation of the Draw2D JavaScript library used in ISSIE, which implements many advanced features in addition to those found in the current ISSIE application.
The following need to be installed (if you already installed, just check the version constraints):
- Dotnet Core SDK. Version >= 3.1
For Mac and Linux users, download and install Mono from the official website (the version from brew is incomplete, may lead to MSB error later).
- Node.js v12. Version >= 12
Installing Node.js will automatically install the npm package manager. The latest LTS version of Node is v14, which will almost certainly work here.
When running for the first time, enter on the command line build
on Windows or build.sh
on Linux/MacOS from within this root directory. This allows the package dependencies to be installed. Subsequent runs can be initiated by the command npm run dev
from within this root directory.
Documentation may be found in the doc folder:
- Features.md lists out the different features of our implementation of the Draw2D library as well as the user interface for each feature. This is the single page summary of features desired for the coursework assessment.
- External_Interfaces.md is useful for future integration with ISSIE/further development of code. It explains how the program could integrate with the existing ISSIE code e.g. the widthInferrer.
- The folder Internal_Interfaces contains the interfaces between the modules Symbol.fs, BusWire.fs and Sheet.fs. This is for reference.
Initial code written by the group members for their individual modules may be found by navigating to the indiv_code
branch (link here). This code is now highly outdated compared to the latest commits in this repo.