This is a test.
Smallest Units:
- Word: Contains string value, enum word type, link to definition (pick a dictionary site), spellcheck status, grammar adjectives (predicative, pleonastic, etc). Display as flexbox spans.
- Punct: Contains string value, has assumed rules for use, links certain word/object types together. Display as flexbox spans.
- interface IGrammarConstruct: any group of Words (and Puncts) functioning together grammatically. SHOULD BE ALLOWED TO DEFINE WORDS/PUNCTUATION. Should also have GrammarAttributes.
- Phrase: A group of words expressing a single notion. Has PhraseType (ex. prepositional) and Mood, among other things. Words in phrases can reference other named objects in project
- Dictionary: Points to a dictionary. Use one of the free APIs at https://rapidapi.com/blog/dictionary-apis/
- Grammar Rules: Conditions for the associated language. Determines acceptible uses of a word with respect to its surrounding words. Keeping this as English rules for now (see link)
- Langauge: Contains grammar rules, reference dictionary, refrerence spell checker, reference text-to-speech service, and obviously a name. Sticking with English for now.
- Clause: Can contain words and phrases. Can be a sentence or part of a sentence. Also has types and grammar attributes. Has grammar check.
- Sentence: Can contain words that may form clauses and/or phrases. Does not rearrange words into clauses/phrases unless saved with a set of ordered words. Function for grammar check. Function for spellcheck that calls Words' spellchecks. Can be a quote.
- Paragraph: Contains sentences. Can be a quote.
- Names DB: Points to a Names dictionary. Find an API for this
- User: The logged-in user. Contains basic user data, Authored stories, and stories shared with others.
Other Objects (see grammar terms here):
- Editor: A writing area that converts what you write into words/clauses/phrases/sentences. Can be used to store things into Chapters, Characters, Locations, Events, etc
- Chapter: Contains paragraphs. Can be named, but is always indexed/numbered. These will be visually represented as the editable areas you actually type your story on
- Part: Contains chapters. Can be named, but is always indexed/numbered.
- Story: Contains either one part with all chapters or multiple parts. MUST be titled. Must have author. Can have other attributes saved (genre, cover art, editor, start date, etc.). Shareable with other users. Exportable to Word/PDF/eBook
- Outline: Contains references to Parts, Chapters and Events. Events not associated with a Part/Chapter/Paragraph can be re-ordered manually on the Outline and will show up grey in the chapters as you edit them. Events in between written chapters will appear grey at the beginning of the next chapter.
- Theme: An idea that should come up in the story. Not sure if we want to auto-generate these or if we want to match manually-written themes to paragraphs in the story.
- Summary: The Summary. Another one where I'm not sure if we want to auto-generate or just let the user write in whatever.
- Character: DND charsheet this one out. Name, race, stats, etc. Make metadata flexible. Should allow user to set a base character template that all characters must have then let them customize individual characters from there.
- Character Group: Contains characters. Can be named, associated with a place/setting/map, etc
- Event: An event. Contains Location, Time, Characters, What starts the event, and what ends the event. Start/End notes can be replaced with Chapter+paragraph identifiers once chapters are written.
- Location: Is a place. Has attributes of a place. Might give history. Can be referenced in story. Can contain a Map. Can also contain other locations.
- Map: Contains Grid(functional only) and MUST be part of a Location. Can have an image to better define the layout. Can contain characters to place on map. Can be shared/viewed/manipulated in real time. Can be scaled up/down. Can have spots that link to other Locations w or w/o maps.
- References: A table of references. Can be linked back to Characters, Locations and Themes. This would include URLs, images, documents, etc
Site Objects:
- Main Dashboard: Big web of tiles to click to each major area of your story to edit. Maybe some other auxilary things, like word cloud or soemething
- WordCloud: A wordcloud generator that can take a story, paragraph, whatever and make a cloud of either the words or the grammar elements.
- Stats Dashboard: Stats for the story. This would be a table of all kinda of junk, like number of prepositional phrases, most used word, maybe even bad habits or most mispelled word or something. Avg paragraph length, word count, longest word, etc.
Functions:
- Import File: Check other writing apps to import
- Export File: Check other writing apps to import