-
Notifications
You must be signed in to change notification settings - Fork 15
/
05-project-start.html
413 lines (360 loc) · 18 KB
/
05-project-start.html
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
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>CS 4970: 05-project-start slide set</title>
<meta name="description" content="A set of slides for UVa's Service Learning Practicum course">
<meta name="author" content="Aaron Bloomfield">
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui">
<link rel="stylesheet" href="../slides/reveal.js/css/reveal.css">
<link rel="stylesheet" href="../slides/reveal.js/css/theme/black.css" id="theme">
<link rel="stylesheet" href="../slides/css/slp.css">
<!-- Code syntax highlighting -->
<link rel="stylesheet" href="../slides/reveal.js/lib/css/zenburn.css">
<!-- Printing and PDF exports -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? '../slides/reveal.js/css/print/pdf.css' : '../slides/reveal.js/css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
<!--[if lt IE 9]>
<script src="../slides/reveal.js/lib/js/html5shiv.js"></script>
<![endif]-->
</head>
<body>
<div class="reveal">
<!-- Any section element inside of this container is displayed as a slide -->
<div class="slides">
<section data-markdown><script type="text/template">
# CS 4970
### Capstone Practicum I
<center><small>[Aaron Bloomfield](http://www.cs.virginia.edu/~asb) / [[email protected]](mailto:[email protected]) / [@bloomfieldaaron](http://twitter.com/bloomfieldaaron)</small></center>
<center><small>Repository: [github.com/aaronbloomfield/slp](http://github.com/aaronbloomfield/slp) / [↑](index.html) / <a href="05-project-start.html?print-pdf"><img class="print" width="20" src="images/print-icon.png"></a></small></center>
## Project Start
</script></section>
<section data-markdown><script type="text/template">
# Contents
[Survey Statistics](/#stats)
[Project Assignments](#/assignments)
[Next Steps](#/next)
</script></section>
<section>
<section data-markdown id="stats"><script type="text/template">
# Survey Statistics
</script></section>
<section data-markdown><script type="text/template">
## Introduction
- There are 105 people in the course
- I spent *many* hours working on the project assignments and setup...
</script></section>
<section data-markdown><script type="text/template">
## Project Stats
- Most popular projects:
- Highest project had 70 people select it as their first choice
- Next highest project had 28
- Third highest project had 22
- All 15 projects have 7 people on them
</script></section>
<section data-markdown><script type="text/template">
## Project Choices
- The primary metric was the individual project ratings
- With a few exceptions, almost everybody got a project they rated their highest
- 85 people (81%) got a project they rated as a 5
- 9 people (9%) got a project they rated as their highest rating (one 3, rest were 4)
- That left 11 people who did not get a project that matched their highest rating
</script></section>
<section data-markdown><script type="text/template">
## Project Choices
- That left 11 people who did not get a project that matched their highest rating
- 2 were placed due to group placement preferencs
- 4 only gave one project as a 5, so the lack of flexibility made it impossible to place them better
- 1 was placed due to their textual comment
- Thus, there were only 4 people (4%) who did not get as high as they could have
- I'm very sorry to those four of you!
- But in all those cases, they ended up on a project they rated as a 4
</script></section>
<section data-markdown><script type="text/template">
## Project Choices
- 85 students (81%) got a project they rated as a 5
- 19 students (18%) got a project they rated as a 4
- But 8 of those had their highest rating as a 4
- 1 students (1%) got a project they rated as a 3
- That student rated *all* projects as a 3
- Average assigned project rating: 4.80
- All projects have an average rating between 4.4 and 5.0 (six got a 5.0!)
</script></section>
<section data-markdown><script type="text/template">
## Platform Preferences
- Exactly three people really wanted Rails
- And one was more interested in the project than the platform
- The other two had such disparate preferences that I couldn't place them in a group
- So I expect all the projects to be Django based
- I'm really sorry for those who wanted Rails!
</script></section>
<section data-markdown><script type="text/template">
## Mortal Enemies
- Nobody got his/her mortal enemies
- I had to do a *lot* of re-arranging for all of this
- Average of 2/3 a (valid) mortal enemy per person
- Although one person listed 5 mortal enemies
- And about a half-dozen listed mortal enemies are not in this class
</script></section>
<section data-markdown><script type="text/template">
## MySQL knowledge
- Most teams have at least one person with MySQL knowledge of 4 or higher
- Two don't, but they have multiple people at a 3
- Average MySQL knowledge overall was 2.87
</script></section>
</section>
<section>
<section data-markdown id="assignments"><script type="text/template">
# Project assignments
</script></section>
<section data-markdown><script type="text/template">
## Project Assignments
- It's a [local file](../../../work/slp/groups/groups.html)
- The other members in your group, as well as their UVa userids, can be found in the PostEm tool
- You'll meet them shortly
</script></section>
<section data-markdown><script type="text/template">
## Project tag
- Each project has a *tag* -- a short, single word -- which is the name for the project
- This was shown after your name in the listing just shown
- This tag can be found in the Collab PostEm tool
</script></section>
<section data-markdown><script type="text/template">
## Project tag
- This tag is used for:
- The name of your github repo (http://github/uva-slp/tag)
- Your team login on the course server
- The URL; see next slide
- The basis for the DB name on the server (it's `slp_tag` and `slp_tag_test`)
- Generally how your project will be referred to
</script></section>
<section data-markdown><script type="text/template">
## Project tags and URLs
- The server name is the same as for the homeworks
- Django projects will be at http://server/tag
- The URLs for other platforms don't matter this year:
- ~~Rails projects will be at http://server/tag~~
- ~~CakePHP projects will be at http://server/~tag (note the tilde ('~') in there)~~
- ~~But http://server/tag will *redirect* to http://server/~tag~~
</script></section>
<section data-markdown><script type="text/template">
## Setting up your project
- When you deploy the basic Django site, please register it via the wsgi-admin utility
- You can find info for that in the [Django getting started](../docs/django-getting-started.html) document
- Then *email me* (Bloomfield), as I have to complete the installation
- If you don't do that step, then it will not have the correct URL
- Please don't wait to the very last minute to do this
- And don't forget to do it either
</script></section>
</section>
<section>
<section data-markdown id="next"><script type="text/template">
# Next Steps
</script></section>
<section data-markdown id="itlist"><script type="text/template">
## 2017-2018 Iteration schedule
- All iterations start on a Tuesday and end on a Monday two weeks later; they start tomorrow
- There are 6 iterations in the fall:
- Sep 19 -> Oct 2, Oct 3 -> 16, Oct 17 -> 30, Oct 31 -> Nov 13, Nov 14 -> 27, Nov 28 -> Dec 11
- The last half of iteration 6 is during finals week
- There are 8 iterations in the spring:
- Jan 16 -> 29, Jan 30 -> Feb 12, Feb 13 -> 26, Feb 27 -> Mar 12, Mar 13 -> 26, Mar 27 -> Apr 9, Apr 10 -> 23, Apr 24 -> May 7
- Iteration 10 has spring break
- The last half of iteration 14 is during finals week
</script></section>
<section data-markdown><script type="text/template">
## Phases
- There are 14 iterations this year
- Fall semester: all groups will have three phases in the fall semester: iterations 1-2, 3-4, and 5-6
- Spring semester
- ~~6 person groups will have 3 phases in the spring: 7-9, 10-11, 12-14~~
- 7 person groups will have 4 phases in the spring: 7-8, 9-10, 11-12, 13-14
- I will remind you of all of this when the time comes
</script></section>
<section data-markdown><script type="text/template">
## Project leadership roles
- Everybody will be lead for one phase and secretary for another
- Restrictions
- Nobody can have two leadership roles in the fall
- Thus, 7 person groups will have one person that has no roles in the fall and both roles in the spring
- You can not be the lead and secretary for the same iteration
</script></section>
<section data-markdown><script type="text/template">
## Project leadership roles
- You must decide today who is the lead and secretary for the *entire* year
- You can change this later, subject to the restrictions on the previous slide, by emailing me
</script></section>
<section data-markdown><script type="text/template">
## Pick leadership roles
- How you pick is completely up to you
- If you can't decide, then I propose the following:
- Sort everybody by (formal) first names in *reverse* order, and that is the order of the leads
- The 4th person in that list is the first secretary, and it cycles through in the same order
</script></section>
<section data-markdown><script type="text/template">
## Project Leads
- The person responsible for submitting reports
- We will see the custom course management system for submitting them on Wednesday; first report is not due until next week
- Responsible for reserving the rooms, creating the agenda for the meeting, and keeping the meeting on track
- This is an *administrative* role, not an *authoritative* one
- At the start of one's time as project lead, I send them an email summarizing their duties
</script></section>
<section data-markdown><script type="text/template">
## Reserving rooms
- You can reserve a Rice Hall conference room in one of three ways:
- By swinging by Rice 527 (the main CS office)
- Ask nicely, and tell them you are in CS 4970
- By emailing [email protected]
- Ask nicely, and tell them you are in CS 4970
- Faculty cannot reserve rooms directly anymore (!)
</script></section>
<section data-markdown><script type="text/template">
## Secretary
- This is the person who will take notes at each meeting
- Each meeting (of all types) MUST have notes!
- This is how I am going to be able to keep up with all the projects
- Notes must include who was present
- They will need to be entered into the system that you'll see on Wednesday
- The secretary will rotate through everybody, just like the project lead
- And the secretary can not be the project lead in the same iteration
</script></section>
<section data-markdown><script type="text/template">
## Remember to report time
- Keep track of ALL time you expend for this course
- Meetings (customer and not), learning the framework, etc.
- The only things you should NOT include are Monday's group meetings in class and Wednesday's lecture
- This is to be reported via the custom course management that you will see on Wednesday
- Recall that you grade will NEVER depend (one way or the other) on how much time you report
- But there WILL be a grade penalty if you do *not* enter any time
</script></section>
<section data-markdown><script type="text/template">
## Scheduling the first meeting
- The project lead should contact the customer listed in the requirements document
- <font color="red">But not before I give the go-ahead, as I want to talk to them first!</font>
- I expect that to be today or tomorrow
- But you should really wait until after Wednesday's lecture to *have* the meeting
- Then arrange an initial meeting
- A note about travel on the next slide
- You may not be able to meet this week, due to scheduling issues
- Secretary: remember to take notes!
</script></section>
<section data-markdown><script type="text/template">
## A note about travel
- It is between you and the customer whether you travel to him/her, or s/he comes to you
- You can reserve a room in Rice
- However, you are not to travel to a non-Charlottesville
- The UVa office of Risk Management has deemed any address outside of Charlottesville as being "too far" to be safe
- Any non-Charlottesville customers have been made aware of this
</script></section>
<section data-markdown><script type="text/template">
## A note about travel
- Note that "Charlottesville" includes the City of Charlottesville, as well as any location in Albemarle County that lists "Charlottesville" as the town on their address
- Like the other restrictions, this is not a judgement on you (or your driving skills!)
</script></section>
<section data-markdown><script type="text/template">
## Emaling the customer
- Wait until I give the go ahead!
- Introduce yourself, and tell them that you are on the project team that will be working on their SLP project
- Their emails are in the requirements document
- Be polite and professional!
- Propose some times to meet, based on the team's schedule
- But be open to other meeting times
- And mention any travel restrictions
</script></section>
<section data-markdown><script type="text/template">
## Changes and updates already made...
- Updated course server account information
- In particular, the group account information
- The github repos are all ready, and you all have access to your group repos
- Except for meals -- we have to handle that separately
- You now have access to the [uva-slp/tutorails](https://github.com/uva-slp/tutorials) repo, which we'll talk about on Wednesday
</script></section>
<section data-markdown><script type="text/template">
## Stuff on my todo list...
- At some point today or tomorrow you will receive from me:
- A e-mail from me that is the go-ahead to contact the customer
</script></section>
<section data-markdown id="it1goals"><script type="text/template">
## Goals for iteration 1, part 1
- Fully understand the requirements
- Generate questions to ask the customer!
- This may mean that the requirements document is updated or changed; the original source version is in the [uva-slp/projects repo](https://github.com/uva-slp/projects) in three formats: HTML, PDF, and Markdown
- Meet with the customer
- As the questions that you generated!
- Design (and implement) a basic DB schema
- And enter it into your course server group DB, or generate the DB tables (into that DB) via Rails or Django
</script></section>
<section data-markdown><script type="text/template">
## Goals for iteration 1, part 2
- Get your dev environment set up
- See the [uva-slp/tutorails](https://github.com/uva-slp/tutorials) repo for guidance, as well as the [development environment setup](../docs/dev-env-setup.html) page
- Get a basic MVC website working on the course server (CRUD operations for the schema tables)
- This should all be working on the course server by the end of the iteration
- Everybody must add themselves to their basecamp project
</script></section>
<section data-markdown><script type="text/template">
## Goals for iteration 1, part 3
- Have the system stored properly in the github repo
- You are all members of your respective repos
- ~~I will give directions for initalizing the repo later this week~~ (done!)
- ***PASSWORDS ARE NOT TO BE STORED IN THE REPO***
- This includes MySQL passwords; we can chat about how to best store these later
- Your system should be in an app/ directory, or similar
- Don't have all the various files for the Django/Rails/CakePHP in the root directory....
</script></section>
<section data-markdown><script type="text/template">
## Goals for iteration 1, part 4
- Enter all the requirements as tasks as Github issues
- We'll talk about this in an upcoming class, so please wait until then
- Everybody MUST have a github commit this iteration!
- Even if your work is not code based, commit something
</script></section>
<section data-markdown><script type="text/template">
## Nametags
- I have a set of "Hello, my name is..." nametags with me for each group
- Do *not* fill in "Inigo Montoya. You killed my father. Prepare to die."
- And a Sharpie marker for each group
- They are too hard to read when written in pen or pencil
- You are to use these in each of the *customer* meetings until you run out
</script></section>
<section data-markdown><script type="text/template">
## For the rest of today's lecture
- Split off into groups
- Introduce yourselves!
- Select leads and a secretaries for the year
- Select a platform, if you can decide on one today
- Fill out that information on the [SLP Project Start Information Sheet](../uva/project-start-info-sheet-2017.pdf), and turn that in before you leave
- Look over the requirements document
- Generate a list of questions and clarifications that you want to get from the customer
- The secretary should take notes!
</script></section>
<section data-markdown><script type="text/template">
## Meeting your groups
- I selected meeting locations for each group
- It's a [local file](../../../work/slp/groups/meeting-locations.png), and also on the next slide
- And if you forgot your project assignment already, that's in this [local file](../../../work/slp/groups/groups.html)
- Or you can look it up on Collab
</script></section>
<section>
<img class="stretch" src="../../../work/slp/groups/meeting-locations.png">
</section>
</section>
</div>
</div>
<script src="../slides/reveal.js/lib/js/head.min.js"></script>
<script src="../slides/reveal.js/js/reveal.js"></script>
<script src="../slides/js/settings.js"></script>
</body>
</html>