-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProjectNotes.txt
232 lines (157 loc) · 6.79 KB
/
ProjectNotes.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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
***********************************************************************************************************************************
The below are some notes typed up during the initial ideation and creation of the project.
Once the full architecture was up and running, no more additional notes were added. All changes should then
be read from the commit messages. -A.Y. 4/11/2020
***********************************************************************************************************************************
High Level Order of Build (in rough order of priority): ---------------------------------------------------------------------------
- Build out full forms (make editable and deletable)
-task/subtask
-user
- Build out the basic views structure (be able to go between all the pages) based on seed data
- put in the filters needed for the task/subtask views
- Give each user a profile page only they can edit
(for now this item is the only thing that distinguises the different users
in the future, this can be used to define user roles and admin rights between parent/child
scope too big for sinatra project, i think, we shall see)
- Build a simple/presentable layout
--------What I have Complete---------------------------
- Setting up the environment
- setting up the initial tables/models (need testing)
- set up the migrations
- make sure the basic relationship structure of models work (user, task, subtask)
- seed table for testing of database
PROJECT DESC/OBJECTIVES ------------------------------------------------------------------------------------------------------------
I think this could be helpful for households where everyone's very busy,
and you want to have everyone pitch in to run the household, especially teaching children chore responsibility, or just a family
who might have a hard time keeping organized! (e.g. ADD FAMILIES!)
It would be cool to see certain metrics on a dashboard that would make it fun for everyone involved.
FAMILY GOALS:
organization
cooperation
responsibility
********* BUILD OUT (structure of basic pages layout)******************************
For the purposes/scope of this project:
*all users can see all tasks*
*they can all have filter to see tasks by user at the task level*
*everyone has ability to edit and reassign tasks and subtasks for now*
Filters At Task Level:
Filter Task: By Week
Filter Task: Unfinished (lists all tasks that have outstanding subtasks, otherwise all tasks are listed)
Filter Tasks by User (lists all tasks where user is assigned to a subtask within the task)
Tasks:
-task
-task
-task
[click into task:]
Single Task:
-task attributes
edit / delete (can't delete if there are subtasks)
OR
Filters At Subtask Level:
By Week:
Finished/Unfinished
By User
-subtask
-subtask
-subtask
[click into subtask:]
Single subask:
-task attributes
edit / delete
Functionality
- Create sessions/password login validations
Views
- Home Page
- Login Page
- Create User Form (Signup Page)
- Create User Page (can see all tasks and subtasks)
- Create Task Form
- Create Task Page/index (Can see all tasks (maybe lists how many subtasks))
- Can see
- Create Subtask Form
- Create subtask view. Can click back into the main task
**************************************************
*********************** DATA MODEL RELATIONSHIPS *****************
This model structure is like Artist/Song/Genre pattern:
Where User, Task, Subtask is to Genre, Artist and Song
Users can have many tasks through subtasks, since subtask belongs to task
subtask has many users through task/user table
task has many users through task/user table
Decided that if there is only one task, but no subtasks,
I will just force the database to save the task info as a subtask, but the user can just fill it out as one task.
So:
Task: has many subtasks,, has many users through subtasks
Subtask: belongs to task, has many user tasks, has many users through user task
Users: has many user task, has many subtasks through user task, has many tasks through subtasks
UserTask: belongs to subtask, belongs to user
(MAKE THESE PRELOADED IN DATABASE) --------------------------
- Groceries/Shopping
- Dishes
- load and turn on dishwasher
- unload dishwasher
- Laundry
- wash cycle
- dry cycle
- put away clothes
- Mop
- Cat
- feed
- litter
- Trash
- take out trash
- bring up trash and recycling
(MAKE THESE FOR TESTING) --------------------------------------
- Vaccuum
- living area
- master bedroom
- baby room
- Car
- refuel
- take for maintenance
- Yardwork
-Bathroom
- clean sink counter
- clean shower
- clean toilet
----------------------------------------------------------------
************* TASK FORM with ATTRIBUTES ************************
Task Title [selection] or create
radio button () no subtask
** same as subtask attributes **
radio button () has subtask(s)
Show Subtasks
Add Subtask
SAVE
***************** SUBTASK Form with ATTRIBUTES **********************
Task Title [prepopulated with task title]
Title [selection] or create
Priority [high, medium, low] - nothing urgent, since families should just communicate when urgents
Deadline [same day, future date]
Duration [nothing more than 2 hours]
Notes
Feedback
[]user
[]user
[]user
Create User
SAVE
|||||||||||||||||||||||||||||||||||||||||Nice to Have List (Which means I don't have to do them now): |||||||||||||||||||||||||||||||||||||||||||||||||||
- be able to upload images
- be able to build continuous subtasks to subtasks
- have reoccuring tasks tied to a calendar
- push and pull notifications
- rewards system (medals, etc)
- household tasks delegated to outside help, budget tracker
- definitive household roles like parent/child/caregiver/service person with different admin/viewing privileges
- have "owners" who are expected to become experts in certain tasks, so if delegated to someone else, they can go to that person for questions/help (right now it's just mommy for all =(((()
- anything that can help break out care giving for baby/kids for caregivers
- create household view, at this point assume only users at within the same household
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
References I Used:
https://guides.rubyonrails.org/association_basics.html
https://bundler.io/guides/using_bundler_in_applications.html#getting-started---installing-bundler-and-bundle-init
https://flatironschool.com/blog/why-you-dont-need-has-and-belongs-to-many
https://guides.rubyonrails.org/active_record_querying.html
<!-- active record .build method -->
https://stackoverflow.com/questions/783584/ruby-on-rails-how-do-i-use-the-active-record-build-method-in-a-belongs-to-rel
https://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html