forked from allantokuda/LDT
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTODO
67 lines (57 loc) · 3.82 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
Install and deploy Unicorn
Add integration tests
Increase canvas area more
Bind canvas size to its contents
On relocate, set a coordinates negotiated flag to false; on negotiate, only proceed if flag is still false, and set the flag to true so negotiation doesn't repeat
Consider doing negotiation side at a time, with highest priority given to sides with the most endpoints
Editor -- not testing creation of graph. Should be in Graph method
Copy and Paste entities
Add hover text explaining what can be done to the thing being pointed at
Enter finishes renaming entity
Tab to finish rename and move to edit attributes
Multiple relationships between two entities should not cross each other
Reflexive relationships should float around the entity away from other relationships
Flat relationships should float away from other endpoints
Add entity and relationship at same time, with preset symbols, based on keystrokes. 'm' adds a has-many relationship from the selected entity. Also '1', and just 'h' (has) which puts down '?' symbols.
Make entity not resizable below minimum sizing
Restore entity resize corner graphic
Resize entity from top or left
Ability to snapshot a graph. Snapshot has a unique URL that does NOT include the source (editable) graph.
Persona authentication
Secondary identifier squiggle ??
Rename begins immediately on entity creation ??
Arrowheads should "squish" together when there's not enough space ??
RE-ENGINEERING, MORE
Untangle the dependency spaghetti
Entities do not store their endpoints. Instead, they broadcast an event with their entity ID.
Endpoints will receive the event, knowing which entity ID(s) they associate with, and update themselves accordingly.
Endpoint controller will watch for these events and update the endpoint model.
Controllers should talk to each other with $emit and $broadcast.
Entity deletion: graph broadcasts an entityDelete message, and then deletes the entity from its list
Endpoints referencing the entity receive the entityDelete and emit an endpointDelete message.
Graph receives endpointDelete message and deletes any associated relationship.
Entity, side, endpoint, relationship: make all the dependencies go one-way between them, by adding additional classes responsible for connecting them together.
INDICATE SYNTAX ERRORS
only one end can have an identifier
both ends should say "be" if either end does
duplicate entity names are indicated as a syntax error (highlight in red, hover text)
duplicate attribute names within an entity are indicated as a syntax error
entity without identifier is indicated as a syntax error (highlight in red, hover text)
OFFER LDS EVOLUTION SUGGESTIONS (highlight in yellow, hover text)
many-to-many suggests adding an intersection entity
double click suggested intersections to add an intersection (new entity attached to mouse, drop to place)
pick up on plural attributes and highlight as suggestions to promote to entity
double click suggested promotions to promote (new entity attached to mouse, drop to place)
EXAMPLE DATA GENERATION
example data table appears per entity, bring up by command
edit example data
pre-fill example data with auto-faker library
APP GENERATION
set "scale" (nominal/numeric/categoric) on columns
scaffold an application with all entities associated. Each entity has a full CRUD interface, plus an "Add ___" button to add many-relationship objects. When adding an object that has parent entities, treat their attributes as attributes of the child being added.
add button for generating a fake data row (mark as fake)
add "delete all fake data" button
MULTI-SELECT
box-select multiple entities and relationship endings together
delete multi-selected entities and relationship endings together
move multi-selected entities together (ignore selected relationships which cannot be individually moved)