lab-brussels-1 / home

Home repository for Lab Brussels 1.
https://lab-brussels-1.github.io/home
MIT License
4 stars 5 forks source link

Madhu: Workflows, 2 weeks #184

Open MadhuMNG opened 2 years ago

MadhuMNG commented 2 years ago

Learning Objectives

Priorities: πŸ₯š, 🐣, πŸ₯, πŸ” (click to learn more)
There is a lot to learn in this repository. If you can't master all the material at once, that's expected! Anything you don't master now will always be waiting for you to review when you need it. These 4 emoji's will help you prioritize your study time and to measure your progress: - πŸ₯š: Understanding this material is required, it covers the base skills you'll need for this module and the next. You do not need to finish all of them but should feel comfortable that you could with enough time. - 🐣: You have started all of these exercises and feel you could complete them all if you just had more time. It may not be easy for you but with effort you can make it through. - πŸ₯: You have studied the examples and started some exercises if you had time. You should have a big-picture understanding of these concepts/skills, but may not be confident completing the exercises. - πŸ”: These concepts or skills are not necessary but are related to this module. If you are finished with πŸ₯š, 🐣 and πŸ₯ you can use the πŸ” exercises to push yourself without getting distracted from the module's main objectives. ---

πŸ₯š 0. Local Development Without Git

Practice the foundational workflows of software development by learning to write Markdown locally on your own computer using Visual Studio Code (VSCode), the Command Line Interface (CLI), and NPM scripts to automate your code's quality (formatting, linting and spell checking).

πŸ₯š 1. Local Development With Git

Practice using Git to save and organize your development process. You will learn how you can use Git to go back to previous versions of your project, and to work on different changes in parallel.

πŸ₯š 1. Local/Remote Development

Learn how you can connect your local Git repositories with a GitHub repository to add more structure to your development process and to share your projects.

🐣 3. Remote Collaboration

Learn how to collaborate with a group on a single project hosted in a GitHub repository. Practice using GitHub's project management features to organize your group's tasks and to double-check your project's code quality.

πŸ₯ 4. Open Source Development

Explore the wider world of Open Source software by learning how communities of independent developers write and maintain the code we all rely on.

TOP


Study Tips

expand/collapse
- Don't rush, understand! Programming is hard. - The examples and exercises will still be there to study later. - It's better to fail tests slowly and learn from your mistakes than to pass tests quickly and not understand why. - Don't skip the examples! Understanding and experimenting with working code is a very effective way to learn programming. - Write lots of comments in the examples and exercises. The code in this repository is yours to study, modify and re-use in projects. - Practice [Pair Programming](https://home.hackyourfuture.be/students/study-tips/pair-programming): two people, one computer. - Take a look through the [Learning From Code](https://home.hackyourfuture.be/students/study-tips/learning-from-code) guide for more study tips ### Study Board Creating a project board on your GitHub account for tracking your study at HYF can help you keep track of everything you're learning. You can create the board at this link: `https://github.com/your_user_name?tab=projects`. These 4 columns may be helpful: - **todo**: material you have not studied yet - **studying**: material you are currently studying - **to review**: material you want to review again in the future - **learned**: material you know well enough that you could help your classmates learn it

TOP


Setting Up

You will need NPM installed on your computer to study this material

  1. Clone this repository:
    • using SSH: git clone --depth 1 git@github.com:HackYourFutureBelgium/workflows.git
  2. navigate to the cloned repository
    • cd workflows
  3. Install dependencies:
    • npm install

It's highly recommended that you use either Linux or Mac. If you have a Windows computer you can either dual-boot your computer or install a virtual machine.

TOP


Code Quality Scripts

expand/collapse
This repository comes with some scripts to check the quality of this code. You can run these scripts to check the code provided by HYF, and to check the code you write when experiment with the examples and complete the exercises. ### `npm run format` This script will format all of the code in this repository making sure that all the indentations are correct, the code is easy to read, and letting you know if there are any syntax errors. ### `npm run format:check` Checks the formatting of all files in the repository and throws an error if any files are not well-formatted. ### `npm run spell-check` This script will check all of the files in your repository for spelling mistakes. Spelling is not just a detail, is important! Good spelling helps others read and understand your programs with less effort. `spell-check` is not so clever though, it doesn't have _all_ possible words in it's dictionary and it won't know if you _wanted_ to spell a word incorrectly. If you think one of it's "Unknown word"s is not a problem, you can either ignore the suggestion or add the word to the `"words": [ ... ],` list in [.cspell.json](./.cspell.json). ### `npm run lint:md` This script will [lint](https://en.wikipedia.org/wiki/Lint_%28software%29) all the Markdown files in this repository, checking for syntax mistakes and other bad practices. Fixing linting errors will help you learn to write better code by pointing out your mistakes _before_ they cause problems in your program. Some linting errors will take some practice to understand and fix, but it will be a good use of time. ### `npm run lint:ls` This script will [lint](https://en.wikipedia.org/wiki/Lint_%28software%29) the names of all files and folders in the project to check that they follow the project naming convention ([kebab-case](https://betterprogramming.pub/string-case-styles-camel-pascal-snake-and-kebab-case-981407998841)).

TOP

MadhuMNG commented 2 years ago

Week 2

I Need Help With:

What went well?

What went less well?

Lessons Learned

Sunday Prep Work

-I will go through the study materials.

danielhalasz commented 2 years ago

@MadhuMNG happy to hear that you understand git commands!

for each module, you have to create 2 issues, one for check-ins (to keep track of your study progress) and one for deliverables (to submit homework)

now we are on week-1 of the Workflows module, for instance. I have now changed the title of the issue and the label as well to reflect this.

MadhuMNG commented 2 years ago

@MadhuMNG happy to hear that you understand git commands!

for each module, you have to create 2 issues, one for check-ins (to keep track of your study progress) and one for deliverables (to submit homework)

now we are on week-1 of the Workflows module, for instance. I have now changed the title of the issue and the label as well to reflect this.

Thanks Danial

danielhalasz commented 2 years ago

@MadhuMNG you already added a week-2 label, but I do not see the check-in comment yet for this week. are you working on it now? please add it once you are done and added the weekly checkin. thanks

MadhuMNG commented 2 years ago

Workflow - Week2

I Need Help With:

What went well?

  1. Created the issue
  2. started working as per the README.md file
  3. Pulled the most recent code from master
  4. created a new branch and did modification in branch
  5. I have added my bio file.
  6. Initially I had difficulties in using right commands, now I have a good hold on commands.
  7. Lot of practices in VS code

What went less well?

  1. PR was not reflecting even after a successful push to remote repo, hence I tried a couple more times and ended up with multiple branches. Realised that the network was down hence PR wasn't reflected immediately. To wait for sometime is a good approach.
  2. Naming convention created lot of confusion.

Lessons Learned

  1. Understood whats the task for the week and proceeded towards the execution.
  2. Tried to fix team member's issue and helping them brought me more confidence on subject knowledge.
  3. adding photo/image in remote repos.

Sunday Prep Work

  1. I have started reading document- Planning and collaboration.
  2. Getting to know about html.
danielhalasz commented 2 years ago

@MadhuMNG very happy to see that you gained a lot of confidence this week and could also help others. Can you say what naming convention caused confusion for you? You mean kebab-case vs camelCase? Yes, GitHub was down today, that usually does not happen..do not worry about it. What installations do you need help with?

MadhuMNG commented 2 years ago

Thanks Daniel.

  1. Particularly naming the branch file. Which one should be used, Github username or any nam is fine?
  2. I was getting few errors while running npm install -g eslint' . When I used the command Sudo and gave password then if I run npm install -g eslint , there were no errors. Bernardo helped me with installations.
danielhalasz commented 2 years ago

1 There is no one good way to name branches, it is really up for discussion within each team. Also, there are many different branching strategies, the two most popular are Git Flow and GitHub Flow. You can look them up. 2 the -g option means that that package will be installed globally, on your entire operating system, not just one repo. In order to do this, you need to have admin privileges on your machine. sudo invokes this and asks for your password.

colevandersWands commented 2 years ago

@MadhuMNG, you also won't need ESLint until we reach JavaScript. For now the MarkdownLint that comes with the project repository is enough since you're only writing Markdown. There's already a script in the package.json for linting the project:

  1. npm install - install the dependencies in your package.json, you only need to do this once
  2. npm run lint:md - run this each time you want to lint the project.
MadhuMNG commented 2 years ago

Thanks @danielhalasz @colevandersWands