Skip to content

peter201943/InStructEd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MIT License Godot Engine Firebase Firefox Itch.io

InStructEd Logo

InStructEd

An INformed STRUCTural EDitor for JSON.

Contents

About

InStructEd Screenshot

(TODO Click to see Demo)

A Drexel CS-338 GUI Project to demonstrate knowledge of UI design.

Users

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.

System

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).

Built With

Getting Started

Browser

Visit The Project Website to run InStructEd in your browser.

Local

See the Releases Page for a build of your platform.

Usage

Demo

InStructEd Demo
Click on the image to watch a demonstration of InStructEd.

Core Concepts

Core Concepts in InStructEd
(TODO Core Concepts Description)

Opening Files

Opening a File in InStructEd
(TODO How to Open a File Description)

Saving Files

Saving a File in InStructEd
(TODO How to Save a File Description)

Basic Navigation

Navigating in InStructEd
(TODO Navigation Description)

Basic Manipulations

Manipulating Fields in InStructEd
(TODO Manipulating Fields Description)

Keyboard Controls

Keyboard Controls in InStructEd
(TODO Keyboard Controls Description)

Touch Controls

Touch Controls in InStructEd
(TODO Touch Controls Description)

Mouse Controls

Mouse Controls in InStructEd
(TODO Mouse Controls Description)

Changing Settings

Changing Settings in InStructEd
(TODO Changing Settings Description)

Reassigning Keys

Reassigning Keys in InStructEd
(TODO Reassigning Keys Description)

Roadmap

  • 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.

Contributing

Architecture

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.

Prerequisites

Installation

  1. Clone the Repo
git clone https://github.com/peter201943/InStructEd.git
  1. "Import" the Project from Godot's Launcher

Accepting Changes

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.

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Primary Maintainer

Peter James Mangelsdorf
Outlook
Discord
GitHub
Itch.io

Project

InStructEd
GitHub
Drexel cs.drexel.edu
Itch.io

Acknowledgements

See CREDITS.md for a complete list of external resources.

Releases

No releases published

Packages

No packages published