Skip to content

Commit e851d7d

Browse files
committed
Updated DB Models as reqested in #57
1 parent cc2ce48 commit e851d7d

File tree

1 file changed

+61
-5
lines changed

1 file changed

+61
-5
lines changed

conditional/models/docs.md

Lines changed: 61 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,17 @@
33
## FreshmanAccount table ##
44
This table stores the basic metadata associated with a freshman before they pass
55
their 10-week evaluation.
6+
67
* `id`: Autoincrementing primary key.
78
* `name`: The freshman's name
89
* `eval_date`: The date of the freshman's 10-week evaluation
10+
* `onfloor_status`: Tracks whether they have been granted on-floor status.
11+
* `signatures_missed`: Allows for members who do not get an account to have their missed signatures tracked.
912

1013
## FreshmanEvalData table ##
1114
This table stores the evaluations data for freshmen before they pass their
1215
10-week evaluations.
16+
1317
* `id`: Autoincrementing primary key.
1418
* `uid`: The freshman's LDAP uid (if they pass their packet)
1519
* `freshman_project`: Their status on the freshman project (pending, passed,
@@ -19,9 +23,12 @@ This table stores the evaluations data for freshmen before they pass their
1923
evals form)
2024
* `other_notes`: Any other notes the freshman has attended (part of the fall
2125
evals form)
26+
* `freshmen_eval_result`: The result of introductory evaluations.
27+
* `active`: Determines whether the freshman account is currently active / displayed.
2228

2329
## CommitteeMeeting table ##
2430
This table stores a list of committee meetings.
31+
2532
* `id`: Autoincrementing primary key.
2633
* `committee`: The committee the meeting belongs to.
2734
* `timestamp`: The date and time of the meeting.
@@ -30,13 +37,15 @@ This table stores a list of committee meetings.
3037
## MmeberCommitteeAttendance table ##
3138
This table stores attendance for committee meetings for full members (i.e.
3239
non-freshmen).
40+
3341
* `id`: Autoincrementing primary key.
3442
* `uid`: The LDAP uid (i.e. username) of the member who attended the meeting
3543
* `meeting_id`: Foreign key referencing the meeting that was attended
3644
(`committee_meetings.id`)
3745

3846
## FreshmanCommitteeAttendance table ##
3947
This table stores attendance for committee meetings for freshmen.
48+
4049
* `id`: Autoincrementing primary key.
4150
* `fid`: Foreign key referencing the freshman account for the freshman who
4251
attended (`freshman_accounts.id`).
@@ -45,19 +54,22 @@ This table stores attendance for committee meetings for freshmen.
4554

4655
## TechnicalSeminar table ##
4756
This table stores a list of technical seminars.
57+
4858
* `id`: Autoincrementing primary key.
4959
* `name`: The name of the seminar
5060
* `active`: Whether or not the seminar applies to the current year.
5161

5262
## MemberSeminarAttendance table ##
5363
Stores seminar attendance for full members.
64+
5465
* `id`: Autoincrementing primary key.
5566
* `uid`: The LDAP uid of the member who atended the seminar
5667
* `seminar_id`: Foreign key referencing the seminar attended
5768
(`technical_seminars.id`)
5869

5970
## FreshmanSeminarAttendance table ##
6071
Stores seminar attendance for freshmen.
72+
6173
* `id`: Autoincrementing primary key.
6274
* `fid`: Foreign key referencing the freshman who attended the seminar
6375
(`freshman_accounts.id`)
@@ -66,14 +78,17 @@ Stores seminar attendance for freshmen.
6678

6779
## MajorProject table ##
6880
Stores major projects through their entire lifetime.
81+
6982
* `id`: Autoincrementing primary key.
7083
* `uid`: LDAP uid of the member the project belongs to
7184
* `name`: Name of the major project
7285
* `description`: Description of the project
7386
* `status`: Status of the project (pending, passed, failed)
87+
* `active`: Determines if the project is relevent to the current evaluations period.
7488

7589
## HouseMeeting table ##
7690
Stores occurrences of house meeting.
91+
7792
* `id`: Autoincrementing primary key.
7893
* `date`: Date the meeting occurred
7994
* `active`: Whether or not the meeting applies to the current year
@@ -82,31 +97,72 @@ Stores occurrences of house meeting.
8297
Stores house meeting attendance data for full members. If a member does not have
8398
an entry for a given house meeting, that means they were not required to attend
8499
that house meeting.
100+
85101
* `id`: Autoincrementing primary key.
86102
* `uid`: LDAP uid of the member the attendance record is for
87103
* `meeting_id`: Foreign key referencing the house meeting attended
88104
(`house_meetings.id`)
105+
* `excuse`: Reason for not attending.
106+
* `attendance_status`: Differenciates between storing an absent, excused, or present status.
89107

90108
## FreshmanHouseMeetingAttendance table ##
91109
Stores house meeting attendance data for freshmen.
110+
92111
* `id`: Autoincrementing primary key.
93112
* `fid`: Foreign key referencing the freshman the attendance record is for
94113
(`freshman_accounts.id`)
95114
* `meeting_id`: Foreign key referencing the house meeting attended
96115
(`house_meetings.id`)
116+
* `excuse`: Reason for not attending.
117+
* `attendance_status`: Differenciates between storing an absent, excused, or present status.
97118

98119
## CurrentCoops table ##
99120
Used to store members who are inactive and on co-op, to distinguish them from
100121
members who are inactive but could potentially become active later in the
101122
semester/year.
123+
102124
* `id`: Autoincrementing primary key.
103125
* `username`: LDAP uid of the member on coop.
126+
* `active`: Is the co-op still in progress?
127+
128+
## OnFloorStatusAssigned table ##
129+
When members are granted on-floor status plays a role in how they are ranked in the housing queue, making it important to store this information.
130+
131+
* `uid`: LDAP uid of the member.
132+
* `onfloor_granted`: Date of on-floor vote.
133+
134+
## Conditional table ##
135+
Conditional, so we can store conditionals on Conditional.
136+
137+
* `id`: Autoincrementing primary key.
138+
* `uid`: LDAP uid of the member in the conditional
139+
* `date_created`: Date conditional assigned.
140+
* `date_due`: Date conditional has to be completed by.
141+
* `active`: Whether or not the conditional is currently relevent.
142+
* `status`: Current completion status of the task assigned.
143+
144+
## SpringEval table ##
145+
Records the yearly results of member's spring evaluations.
146+
147+
* `id`: Autoincrementing primary key.
148+
* `uid`: LDAP uid of the member being evaluated.
149+
* `active`: Is this evaluation for the current year?
150+
* `date_created`: The date of the evaluation.
151+
* `status`: Result of the evaluation.
152+
153+
154+
104155

105156
### Member state ###
106-
* ldap:active = 0; ldap:alumni = 1: Alumni. Don't track attendance.
107-
* ldap:active = 0; ldap:alumni = 0; in coop table: On coop. Track committee
157+
* Not in LDAP Current Student group:
158+
* Alumni. Don't track attendance.
159+
* In LDAP Current Student group and in Co-Op Table:
160+
* On coop. Track committee
108161
meeting attendance, but not house meeting.
109-
* ldap:active = 0; ldap:alumni = 0; not in coop table: Present but not active
162+
* In LDAP Current Student group but not in LDAP Active Group:
163+
* Present but not active
110164
yet. Track attendance as normal.
111-
* ldap:active = 1; ldap:alumni = 0: Active member. Track attendance as normal.
112-
* ldap:active = 1; ldap:alumni = 1: Invalid. Should not occur.
165+
* In LDAP Current Student group and in LDAP Active group:
166+
* Active member. Track attendance as normal.
167+
* In LDAP Active group but not in LDAP Current Student Group:
168+
* Invalid. Should not occur.

0 commit comments

Comments
 (0)