## Goals

• Figure out what you're doing
• Meet your technical targets
• Meet your community targets

## Pick a name

• Unique, distinctive, "searchable", trademark-free
• Interpretable, understandable, descriptive
• Short, easy to pronounce
• Interesting, amusing, fun
• Can be used as an identifier (for repo, etc)
• Some naming guides:

• Be Warned: I won't take a project name like "Course Project" or with "CS 461" or the like in it. Name your project something meaningful for the long haul

## Pick a license

• http://opensource.org

• If your code needs to work with or interoperate with code under an existing OSS license, use theirs

• If you think the hardest thing in your project is attracting many quality developers, or if you feel strongly about how other people use your code, or if you really think you'll need legal/license help later on, choose the GPL

• If you think the hardest thing in your project is attracting many users, or if want to cause other users and developers minimal legal grief and concern, use the MIT license

## Set up the project

• Git / Github repository
• Create account for yourself at Github.com
• Create project following Github instructions
• Further instructions to be determined.
• Get your programming tools / environment
• Get your build environment set up
• Get your web page / README.md / whatever set up and the links and text straight

## For This Course

• Find a group of 2-4 people with a common interest. Figure out what to do

• Working alone is less fun and misses out on some of the experience. Also, not an option this offering except by special permission

• Groups of more than 4 please consult with me so that we can figure out what makes sense

• Work out what technologies are going to be used. What programming language? What resources are needed?

• Make a public Git repository for your project. Do this before you have anything meaningful to put in it. I strongly prefer Gitlab or Github for this class, but you may use something else if you really must.

• Once you have a repo, commit everything you do and push it upstream right away. You cannot start too early

• Add a README.md and LICENSE file to your project first thing. Make it clear what you are doing and under what license you are making it available

• Make a project roadmap and add it to the README. Say what you expect to do this quarter and when you expect it to be done. Then include post-class plans for the project.

• Your roadmap should include some kind of "demo" or "prototype" version of your project to be done by week 3 of the course. This needs to be enough to show the viability of the project

• Your roadmap should include some kind of "minimum viable product" (MVP) version of your project to be done by week 6 of the course. This doesn't have to have all the features, but should be enough that you could turn it in if needed. If you can't do this, rethink the project

• Start to commit code, docs, etc to the project

Last modified: Monday, 29 June 2020, 12:16 AM