Assignment 0: Project Proposal
Welcome to OOSE!
One of the points of this course is that we aren’t using only pedagogical tools, but tools actually used by software engineers. To bring this point home, we run the course similar to how a software project is run, using the tools that software engineers use to coordinate their work. You’ll use GitHub throughout the course to submit assignments, ask questions, collaborate with the other members of your group in the group projects, and so forth. If you don’t have a GitHub account, create one now. Then register for the course using the form below:
If you run into problems, send an email to email@example.com. Include all the information from the form above.
After you register, you are invited via email to the GitHub organization for the course,
jhu-oose, joining the team
jhu-oose/2019-students, which grants you access to the Students Area 🔒, where you may find a public forum (visible only to other students in the course), announcements, videos of the lectures, and so forth.
After you register, you are also invited via email to a repository at
https://github.com/jhu-oose/2019-student-<identifier>. This is your individual repository in which you’ll submit the assignments, receive grades, ask questions visible only to the staff, and so forth.
Submit your profile as a Markdown document at
README.md in the
master branch of your personal repository at
Fill in the template below (parts marked with
<!-- --> are placeholders that you must fill in):
# <!-- Name --> ![Profile Picture](<!-- Show your face, because the purpose of the profile picture is to be able to recognize you, see for example the pictures at https://www.jhu-oose.com/staff -->) **Personal Pronoun (Optional):** <!-- See https://www.mypronouns.org to understand more about this question. Answer (if you wish) in the form of a link, for example, [She/her](https://www.mypronouns.org/she-her) --> # Background <!-- Are you fresh out of a data structures course? Do you have years of experience in industry? What technologies do you usually work with? What are your interests? And anything else you want to share. --> # Expectations <!-- Why did you sign up for the course? What do you expect to learn? And anything else you want to share. -->
Submit your project ideas (as well as all the rest below) as a Markdown document at
assignments/0.md in the
master branch of your personal repository at
Come up with at least 3 project ideas. They may be silly—in fact, it may be better if they are.
Choose one of your project ideas and develop it into a project proposal. Your project proposal doesn’t have to be fully developed, but you definitely need more than something at level of the sample project proposal we did in Lecture 0. Also, you must acknowledge the parts that are missing by saying, for example, “My project requires integration with the GitHub API, but I don’t know yet if it has all the features I need—further study required.”
Your goal is to have something solid enough to discuss with your group members when you start working on your group project.
We didn’t have the time to cover this in class, but see the corresponding lecture notes.
Answer the following questions:
Do you see software engineering as a science or an art? Or a mix of both? If so, to what degree?
What makes a software engineer? Do you feel you are a software engineer?
Go through the tools in the Toolbox and install them.
Visit TODOOSE and play with the live version to learn how the application works (it’s a simple to-do application).
Import TODOOSE as a project in IntelliJ IDEA.
Run the server.
Interact with the application locally in Google Chrome. Take a screenshot of the application open locally in Google Chrome and include in your submission (for example, see the screenshot below).
Run the JUnit tests in IntelliJ IDEA. Take a screenshot of the tests passing locally and include in your submission (for example, see the screenshot below).
Open the API specification in Postman.
Run the Postman tests. Take a screenshot of the tests passing and include in your submission (for example, see the screenshot below).
See the tests running on Travis CI.
Deploy the application to Heroku with the application name
todoose-<identifier>. For example, if you were
jhu-oose-example-studenton GitHub, then your application name would be
todoose-jhu-oose-example-student. We’ll look at your deployed version when grading, so make sure you get the name right and don’t remove the application from Heroku until after you received your grade.
Start watching the video series showing us buidling TODOOSE. You have about one month before we’ll dive deeper into the implementation, and by then you must have a fair understanding of the technology. One or two videos every day will get you there.
⚠️ Your assignment is submitted only when you submit the form below.
If you run into problems, send an email to firstname.lastname@example.org. Include the information about the submission: your GitHub Identifier and the Commit Identifier. Don’t include any information about the feedback—it’s anonymous.