-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathdesign.txt
93 lines (70 loc) · 3.33 KB
/
design.txt
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
Concept:
To model our family tree
Ideas:
- Adding a member and an email will automatically assign a login (email and auto-generated password to the site)
- This login will be emailed out to the person that has been added
- Django website on PythonAnywhere.com, allows scaling
- Biographies need to be available in different languages (probably need help of Hilson, Vicky, Ola and Kati)
- Notification emails of anyone new that is added (if this explodes may need to restrict this)
Requirements:
- Multilingual (English, Traditional Chinese, Simplified Chinese, Polish, Finnish... from what we know already)
Data Model:
- Person:
- email (optional, if supplied, automatically create a Django user)
- user_id (Django user id if email exists)
- name (Free text because inversion of last and first names in different cultures)
- birth_year (optional)
- location ( GPS coord, allow to enter on a map optional)
- picture (optional)
- gender (M/F/Neutral) Helps to draw a chart if all the females are on one side. Also help to identify bloodlines.
- telephone_number (optional) ** PRIVACY :S **
- website (optional could be a Facebook link)
- deceased (defaults to false)
- hierarchy_score (Calculated field if Justin is 100 then Shirley is 99)
- Biographies (Separate object to allow for different languages)
- person_id (Foreign Key to Person)
- language_code (English/Chinese Traditional/Chinese Simplified/Polish/Finnish)
- biography_text
- Relation:
- from_person_id (Foreign Key to Person)
- to_person_id (Foreign Key to Person)
-relation_type:
- Partnered (can include divorcees, from and to are equivalent so assigned same hierarchy_score)
- Raised (from_person_id is parent/guardian and to_person_id is child/dependent)
- Raised by (resolves to the above inverted)
- Telemetry (who's looked at what just for administrators ie you and me to see)
- person_id
- utc_datetime
- ip_address
- action_text
- viewed biog of
- viewed map of
- etc
Views
- Home page:
- Description of site and who we are
- Login Screen
- Hierarchy view starts centred on logged in user
- Shows relation diagram
- Shows only 2 levels deep
- Each person shows name and picture
- Lines show relation type
- Lowest hierarchy score at the top
- Clicking on a person reloads view centred on that person
- Centred person shows link to show biography
- Centred person show link to add a relation to a new person
- Deceased family members: Would be quite neat to show these photos in greyscale, and slightly faded out.
They could be re-saturated when the user hovers over the branches or clicks on the picture.
- More!
- Buttons for More and Less
- When clicked, the site will draw in the next layers in the heirarchy (up and down) for all nodes
- Map View.
- Same as hierarchy view but on map
- Show all Map view (this could be awesome)
- Edit/Create user
- To start, allow anyone to edit anyone else's profile and links, maybe look to only allow edit 2 levels away in future.
(we have to assume that Grandparents profiles will be maintained by Grandchildren)
- Some kind of Wikipedia-style editorial control might be appropriate, e.g.
-- Users can edit anyone's profile (default)
-- Users can change their profile to retain editorial control (updates to be authorised or disabled)
- Change my Password