A flexible tool for all kinds of documentation / small program use cases that allows you to have everything in one file #411
Labels
Advanced
Projects that require a high level of understanding of the topics specified, or programming in gnrl.
Frontend/UI
Focus on a frontend for an existing backend. Both frontend development and UI design.
Much work
This project takes little time to complete. (ETA several weeks+)
Project description
A warm welcome and thanks for your time, interest and maybe even contribution.
Tl;dr
The goal is a program that combines all typical office application functionalities, enabling proper coverage of a whole topic in one file.
The right combination of powerful, but easy to use tools should provide a basis for many things, from a simple documentation file to something like editable musical notes or even a CAD application.
An example I will leverage here is a file for a role play campaign.
Motivation
I work in plant automation and a recurring question is how best to document things. Some drawing tool? Microsoft Word / Excel? For a long time I've wondered why there are all these separate programs that I have to choose from, while all have pros and cons and none is really what I'm looking for. Even specialized tools are lacking.
Now I think I have a better idea of what such a program could realistically look like.
General overview
Sheets can be sorted into multiple tabs on several layers. Each sheet can hold text, tables and visualizations, where each component is optimized for a specific role. Data provided by tables can be referenced in texts and used for visualization, with templates allowing easy reuse. Whole tabs can also be used as templates, for instance, based on a table with all RPG characters of a campaign, to automatically create a tab structure (like Chars>PC/NPC>[Character Initials]) with separate sheets that display all relevant data, including room for notes.
Different views allow displaying relevant data only, both hiding tabs or table columns and applying filters and different formatting. They can also be adapted depending on the person who is viewing the document. So a DM might see the whole contents and reveal certain map parts and NPCs to the players as the group progresses.
Buttons and other interactable items can streamline a file for ease of use (add character, etc.). A security concept warns the user based on the scope of the functionality in use (file only changes itself: no risk, etc.).
Program use is streamlined to avoid unnecessary user input and mistakes: tables optimize size automatically by default, quick copy/paste/switch is possible without clumsy CTR-C/V, texts never allow more than one blank space in a row, there is a view and different editing modes to avoid accidental moving, scaling, etc., easy sharing and collective editing…
Tables
Tables solely hold raw data. The amount of columns and rows is limited to what is needed and each column is given an identifying name and can have specific formatting and an optional function to determine the value. Even with a function in place, cells can allow a value to be entered manually. There is no cell-, only column specific formatting.
Tables can use other tables as templates. Tables that are used as such can either contain data that can be used as a list of options, like an equipment table that hold available equipment items that characters can use, or only the columns, with formatting and some functions, for instance when there are multiple tables with the same setup but different values.
Like in a tree structure, a row can have multiple items belonging to a column or set of columns, like a character having multiple equipment items. These are displayed in multiple rows while avoiding the need to repeat entries, like the character name. Functions give easy access to information like the amount of equipment items a character has.
Table data can also be used as a basis for the spell checking library, providing not only a list of valid words, but additional information, for instance, a set of shortcuts with an explanation. That data can then be displayed as a tool tip with cross references. This can also be used to display an overview of a character’s information, even if an RPG log mentions the character with their nickname or first name instead of full name.
There can be multiple tables that show different views of another table in different parts of a file, like a character sheet showing the character’s equipment and stats in separate tables that display data from the character table. Editing is equally possible in each table.
Visualizations
Different visualization elements can be added. These can be predefined trends, etc., or geometric shapes. Their attributes can be bound to table data, for instance scale, side length and color. Shapes can easily be adjusted by adding points and formatting each separate line (color, type: line, arc, etc.).
When bound to table data they, are defined as a template and can then be used as often as needed, visualizing different table rows.
Relevant Technology
I'm honestly not sure what's best to use. But since both speed (potentially big files with high data amounts have to be handled) and security (you don't want to worry that some file you've been sent might do something unexpected on/to your computer) are important, I'd imagine something like Rust could be a good choice.
Complexity and required time
Complexity
This might be an overestimation. I'm merely an amateur when it comes to programming and have mostly done some Java programming in the past, creating some small tools. Nothing as professional as the app I'm envisioning.
Required time (ETA)
Categories
The text was updated successfully, but these errors were encountered: