Project Management

Initial Reaction

The first week is focused on project- and time management. This topic came with two assignments: to work through a git tutorial, and to build a personal website in the class archive describing myself and my idea for a final project. If everything has gone well, you are on that website now. These assignments sounded simple enough during the lecture, but now that I have spent several hours at it, I realize this is going to be intense! I am in a whole new world here and I have a TON to learn. I can barely even keep straight all the software I have downloaded, let alone what it's used for or how to use it to get what I want. The git tutorial assumes way more background knowledge than I have. It starts off by giving commands that might be useful if I had any idea where to use them, and then just continues with more and more sophisticated commands and options for people who really know what they are doing. No help for an ultra-noob unfortunately...it's depressing to not even know enough to learn from the tutorial.

After Local Workshop

After the local class with our instructors, I am feeling much better! Now, I feel like I at least understand enough to be able to appreciate the possibilities. I am really impressed by watching people use these tools efficiently. I definitely have room to grow in that area so this provides a lot of motivation for me. In this class, we learned the basics of how a website works from a coding perspecive as well as how to use VisualStudioCode, git and the bash terminal to write the structure of a website and then publish it to the internet for public consumption.

What I Learned

Bash Terminal

Using the bash terminal, I learned:

  • to configure my user name using
    git config --global user.name"my.user.name"
  • to set up my email using
    git config --global user.email “my.email.com”
  • to generate an SSH key using
    Ssh-keygen -t rsa -C “comment: usually email“
  • as well as some useful commands for publishing such as:
    cd “name of the directory”
    git add *
    git status
    git commit -m "commit message"
    git push
  • Git

    Then in Git, I learned:

  • how the projects are organized and arranged in general
  • how to set up the SSH key I generated with the bash terminal
  • how to clone my repository to create a working copy
  • how to access my own website and other projects on the server
  • how to edit my website using MKDocs and the template that was provided
  • How to change the CI/CD configuration in case I want to use HTML instead of Markdown
  • VisualStudioCode

    In VisualStudioCode, I learned:

  • the basics of how to set up my directories to keep everything organized
  • how to create the structure of an HTML document
  • some useful commands for creating the content of the site such as
    <H1> <H1/>, <H2> <H2/>, etc.
    <a href = "URL">Link Text <a/>
    <p> <p/>
    <br>
  • as well as some helpful extensions like Live Server and HTML Snippets
  • Other Tools

    We also learned about several other useful tools for the web-development workflow. We learned about sites like html5up.net for finding HTML templates and imagecompressor.com for compressing images down to qualities that are suitable for publishing (<100 KB). We also saw codepen.io, which is a very useful tool for being able to view HTML, CSS, and JAVA side-by-side.

    My Submission

    Git Tutorial

    I actually made my way through a few tutorials for Git this week. I began with the one that was suggested in the lecture, which had so discouraged me before the local workshop. This time it made MUCH more sense. I was able to follow along with no real problems and even continued on with the second one. I also spent time with this tutorial, which was helpful for troubleshooting a merge conflict. Finally, from the Global Recitation on Monday, I learned of a surprisingly easy to use game that teaches you to use Git while you play it. Now that I have some familiarity with Git, I think it may be how I document everything from now on. It makes organizing projects and handling version control SO much easier. I could see these tools making me much more efficient over time as I get good at using them.

    Website

    As you can see, the webiste is up and running! I decided to go with HTML in the end, and I am happy that I did. In terms of syntax, the very basics of structure are easier to do with Markdown, but it's difficult to be expressive or creative. I understand now that HTML gives you a lot more control. HTML is really quite clever, or rather the HTML/ CSS/ Java-relationship that makes up the internet. It was actually surprisingly fun once I got the hang of it. Of course I have only scratched the surface, but it's really nice to be understanding some computer science stuff for once.

    For this site, I used a template called "Editorial," but before downloading it, I found a FabAcademy student from last year who used the same one. Inspecting his code with Ctrl+U helped me work out the details of how to change the original to what I wanted and it gave me a lot of confidence. All of that pointed me in the right direction and I got started. I really like to keep my projects organized, so I began by organizing the folder structure for the site on my local machine. Once I had that, I opened up VSCode and just started adding content to, and rearranging, the index file from the template--always checking my progress with the Live Server extension. As I made progress creating the menus, it became necessary to start branching out to the other pages on the site, such as this page documenting my first week of FabAcademy. It took a while to get all the links working, but now I have an HTML placeholder for each week and for the final project, so I can just fill them in with my documentation as I go.

    Once I had the structure and content, I had to update the CI/CD to allow me to use HTML and the template I had chosen. With that done, I was ready to add my site to the internet. In a fit of paranoia, I made an absurd number of copies of everything, and then got on the terminal. The commit went without issue, but the push generated an error because of a merging conflict. That took an hour or two of research and a helpful tutorial to troubleshoot, but eventually I figured it out; with the CI/CD update, I made changes in my git repository in GitLab that were not in my local files. So Git had changes from two locations and didn't know how to reconcile the differences because I hadn't told it. I told it which changes to keep, and I was up and running. Since then, I have made several pushes without any problems.