An INformed STRUCTural EDitor for JSON.
(TODO Click to see Demo)
A Drexel CS-338
GUI Project to demonstrate knowledge of UI design.
Users should be familiar with JSON (JavaScript Object Notation), and can use Shortcuts similar to MicroSoft Word or the IBM CUA (Common User Access), and have mouse/keyboard experience. Users who want to create new JSON documents, handle large JSON documents, edit JSON with a generic interface, manipulate JSON with fast, simple interface. Common editing operations are performed quickly through shortcuts, complex element nesting made obvious through recursively-nested and beautifully-displayed boxes, JSON interactions exposed through pathways.
JSON parsing, string parsing, JSON serialization, recursive box rendering, widget state control and display, smooth box and widget animations, JSON file streaming, user configuration loading, HTTPS networking. Smooth animations on performing an edit operation, target-oriented widget display and keybind mutations, fast, responsive commands (and effects), smooth element navigation (no irritating scroll-bars, obvious indication of remaining elements). Managed through a web-exportable game-engine (Godot). The nesting and widget management will be tedious without a reliable framework with many features already implemented. The only networked data are user-configurations. To manage these as cheaply and easily as possible, Google Firebase is used to hold the username-hash and config-string (as tabular fields).
Visit The Project Website to run InStructEd in your browser.
See the Releases Page for a build of your platform.
Click on the image to watch a demonstration of InStructEd.
(TODO Core Concepts Description)
(TODO How to Open a File Description)
(TODO How to Save a File Description)
(TODO Manipulating Fields Description)
(TODO Keyboard Controls Description)
(TODO Touch Controls Description)
(TODO Mouse Controls Description)
(TODO Changing Settings Description)
(TODO Reassigning Keys Description)
- Project Repo Settings
- Basic Project README
- Basic Project ARCH
- Basic Project CREDITS
- Detailed Project README
- Detailed Project ARCH
- Detailed CREDITS
- Complete Project README
- Complete Project ARCH
- Complete Project CREDITS
- Basic Project HTML Export Settings
- Basic Project HTML Page Settings
- Basic Tabular UI Generation Feature
- Basic List Generation Feature
- Basic Dictionary Generation Feature
- Basic Text Display Feature
- Basic Tabular Keyboard View Manipulation Input
- Basic Tabular Keyboard Cursor Manipulation Input
- Basic Tabular Keyboard Element Manipulation Input
- Basic Tabular Mouse View Manipulation Input
- Basic Tabular Mouse Cursor Manipulation Input
- Basic Tabular Mouse Element Manipulation Input
- Basic Tabular Touch View Manipulation Input
- Basic Tabular Touch Cursor Manipulation Input
- Basic Tabular Touch Element Manipulation Input
- File Save Command
- File Open Command
- View Zoom In/Out Command
- Cursor Next/Previous Command
- Cursor In/Out Command
- Dictionary Element Rename Command
- Any Element Field Edit Command
- Any Element Replace Command
- Any Element Remove Command
- List Element Insert Command
- List Element Append Command
- Element Insert Into Command
- Advanced Desktop Display Scaling Feature
- Basic Mobile Display Scaling Feature
- Basic JSON Loading Feature
- Basic JSON Saving Feature
- Basic User Login Feature
- Basic User Creation Feature
- Firebase Account Settings
- Full User Settings Saving Feature
- Basic User Settings Loading Feature
- Basic User Settings Feature
- Drexel Homepages Hosting Settings
- Basic Keybinds Settings Feature
- Project Presentation Deliverable
- Project Zip Deliverable
- Advanced Keyboard Manipulations
- Advanced Mouse Manipulations
- Advanced Touch Manipulations
- Advanced Mobile Display Scaling
- Full User Settings Loading
- Basic Edit History
- Basic Edit History Manipulation
- Basic Location Bookmarking
- Markdown Field Rendering
- Cursor View Following Command
See ARCH.md
for more details.
See ARCH.md
to get a basic understanding of how the project works.
Also take a look at some of the other Godot projects listed under CREDITS.md
to get a good understanding of how Godot works and how to structure a Godot project.
- Clone the Repo
git clone https://github.com/peter201943/InStructEd.git
- "Import" the Project from Godot's Launcher
This is a low-priority project for @peter201943 and as such pull requests are not likely to be accepted. You will be better served by forking it and continuing development of it on your own.
Distributed under the MIT License. See LICENSE
for more information.
InStructEd
cs.drexel.edu
See CREDITS.md
for a complete list of external resources.