Previous Lecture lect03 Next Lecture

lect03, Mon 04/06

Monday Section: Initial README, Team Agreements

Teams are Assigned

You should have been:

You’ll also be put into a Breakout Room with your team during section today.

The Slack: _articles vs. _help channels

On the Slack, there are several pairs channels that have the endings _articles and _help, for example:

In each case:

The #nextjs_* channels are for everything JavaScript related

Note that the #nextjs_articles and #nextjs_help channels will also be used for all technologies that relate to the next.js stack, including:

The #spring_* channels are for everything Java related

Similarly that the #spring_articles, #spring_help channels will also be used for:

If you aren’t sure, you can always use #general

If you aren’t sure where to post or ask something, you can always use the #general channel.

A few more special purpose channels:

Absences

If you need to miss class for an unavoidable reason, please notify:

Please send these notifications:

This is a matter of showing respect for your team.

Then, as soon as possible after the class, check with your team to see what you missed. It should be a team responsibility to help one another with unavoidable absences.

Unavoidable reasons might include:

Of course, unavoidable absences should be rare if you are going to remain in good standing with your fellow team members, folks that are depending on you to do your part for the team.

Breakout work today

Today, during your breakout sessions, you should accomplish the following tasks:

  1. Add an initial README.md (details below)
  2. Start a discussion of your team agreements / team norms and record whatever agreements you are able to reach in team/AGREEMENTS.md (details below)

Initial README.md

One member of the group should go to the page for the repo, e.g.

On the page for your team, you should see a screen like this one:

new emptu repo screen

Click on the work README in the sentence We recommend every repository include a README, LICENSE, and .gitignore.

In your README.md, put the following:

team/AGREEMENTS.md

Under a directory called team, create a file called AGREEMENTS.md.

In this file, you’ll first put the names of the members of your team.

Then, you’ll enter a list of agreements. These are things that you all agree are good practices for creating a harmonious productive team.

As a suggestion, the first few team agreements, might be these:

  1. When one of us is absent for an unavoidable reason, we will let the other team members know on the team slack channel, in advance when possible, as soon as possible afterwards when not.
  2. We will each try to keep such absences to a minimum.
  3. Those of us that are present will do our best to share with the absent team member(s) what they missed and help them get back up to speed.
  4. We will all do our best to contribute to the teams success.

You then might add a few more.

Consult this article for ideas:

If you run out of time

If you run out of time, the agreement discussion can be continued outside of class over the slack, and during the next lecture.

If you finish early

If you finish all of the above, you can start on a discussion of the following things. These are discussions that will carry over into Tuesday and Thursday lectures, but you can start them now if you’ve finished the items above.

Add to your README.md:

Which tech stack

We’ve provided a lot of information for you already, and when we formed groups, we took tech stack preferences into account. So in most groups, there is likely to be a quick consensus on which tech stack to use. But you should still discuss the pros/cons of each, and share your preferences with one another.

If you have questions, or need guidance, ask the course staff (Prof. Conrad, Scott, Andrew L, Bryan T, Cole B., Kristin H, and Victor S.).

Planning your app

For the second item, focus on writing a single paragraph in which you go into a bit more detail about what you plan for your project.

Some things to consider:

How many different kinds of users are there, and what are their roles?

Examples:

Think about the fact that your app will be available on the public internet. If your app allows user contributed content of any kind, there is the potential for inappropriate content (spam, or worse) to be added. One option is restrict your user base to folks with an @ucsb.edu login; we can provide example code for both Spring Boot and next.js that you can build on to add this feature to your app.

What will each different kind of user be able to do in your app?

Future steps: .gitignore and LICENSE.md

Two future steps will be to also add .gitignore and a LICENSE.md

The .gitignore will depend on your tech stack choice.

For the LICENSE.md: