Skip to content

Commit bf91d4f

Browse files
Created the base version of the project.
* This project uses my Modified CRA. * This project also uses Bootstrap 4.6. * This project uses SCSS instead of CSS. * This project uses React Router v6.
0 parents  commit bf91d4f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+20011
-0
lines changed

.gitignore

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2+
3+
# dependencies
4+
/node_modules
5+
/.pnp
6+
.pnp.js
7+
8+
# testing
9+
/coverage
10+
11+
# production
12+
/build
13+
14+
# misc
15+
.DS_Store
16+
.env.local
17+
.env.development.local
18+
.env.test.local
19+
.env.production.local
20+
21+
npm-debug.log*
22+
yarn-debug.log*
23+
yarn-error.log*

Contributing.md

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
# Contributing Instructions
2+
3+
When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the [owners / mentors](https://praveen.science/) of this repository before making a change.
4+
5+
Please note we have a code of conduct, please follow it in all your interactions with the project.
6+
7+
## Raising Issues
8+
9+
1. Make sure you understand the project and codebase.
10+
2. Go through the existing issues before raising a new one.
11+
3. When you’re suggesting a new change or would like to take up an existing issue, kindly mention your solution idea.
12+
13+
## Pull Requests
14+
15+
1. Ensure any install or build dependencies are removed before the end of the layer when doing a build.
16+
2. Update the ReadMe.md with details of changes to the interface, this includes new environment variables, exposed ports, useful file locations and container parameters.
17+
3. We strictly use GitFlow and try to have a linear merge. Please follow the guidelines below.
18+
4. Make sure your code has been prettified by Prettier & ES Lint before pushing. We use this [VS Code Config](https://gist.github.com/praveenscience/ebb5439f31774ad2fdc14cb9e7de1fc0).
19+
20+
## Git Flow
21+
22+
1. Navigate to the [CatsInTech/Rezume](https://github.com/CatsInTech/Rezume/tree/master) repository and click on Fork button.
23+
![Step 1](./docs/1-sBicOjJ.png)
24+
2. You'll either find a way to fork to your own account or you will have a link to go to your forked repository. Clicking on either takes you to the forked repository.
25+
![Step 2](./docs/2-8R63Krl.png)
26+
3. You can confirm that this repository is a fork of the original repository by finding the "forked from [CatsInTech/Rezume](https://github.com/CatsInTech/Rezume)" text under the repository name.
27+
![Step 3](./docs/3-LN2fgMH.png)
28+
4. Click on Clone or download button on the forked repository. Make sure you are cloning your version (GitHub.com/\<your username>/Rezume) and not the CatsInTech organisation's.
29+
![Step 4](./docs/4-137utKt.png)
30+
5. I use a `git clone` command with my username attached in front of the `github.com`, making the clone command look like `git clone https://[email protected]/praveenscience/Rezume.git`. This is for making sure, the compatibility is maximum.
31+
![Step 5](./docs/5-C9bX69B.png)
32+
6. Let's say I am going to start working on the `Issue #2`. Create a new branch with the format of `issue#-subject`, here it is `2-cname-update`. I use command line a lot so I am confident of what command I am using. If you're comfortable with GUI, feel free to use it, but make sure you use the right naming convention. The complete command I have used here is `git checkout -b 2-cname-update`.
33+
![Step 6](./docs/6-05XgdIa.png)
34+
7. Make all your changes in your favourite IDE. Make sure you adhere to the linting rules given in [My Personal Development Environment](https://blog.praveen.science/my-personal-development-environment/) blog post, under Visual Studio Code. There's also [My Visual Studio Code Settings](https://gist.github.com/praveenscience/ebb5439f31774ad2fdc14cb9e7de1fc0) with all the extensions I use. You don't need to use all but make sure you follow the prettier guidelines at least, which will have mostly the default ones like double quotes, no trailing quotes and spaces, line width of 80 characters or less, etc. If you have issues setting up your development environment, please contact me.
35+
8. Once you make changes, you can see the changed files. Make sure no unintended changes are there (new files added, changed files aren't recognised, etc.), which you can see by checking the `git status` command and looking at the workspace.
36+
![Step 7](./docs/7-AKOFOlf.png)
37+
9. Use a good diff tool to check if the changes are indeed intended. I use `git diff --color` to check the diffs between the changes.
38+
![Step 8](./docs/8-TQ5dz2W.png)
39+
10. If everything looks alright, add the files to staging by using `git add <filename>`. If you want to add all the files and if there are many files, you can use `git add .`. Use `git status` again to verify the changes that are added.
40+
![Step 9](./docs/9-O5XQayC.png)
41+
11. Once you have added the files to staging and checked the integrity of changes, you can start writing the commit message. The commit message should follow [Git Standards followed in our way of Spotify Agile Methodology](https://blog.praveen.science/git-standards-followed-in-our-way-of-spotify-agile-methodolgy/). The main two points you need to note are 50 characters for commit subjects and 72 characters for commit message lines. At the end of the commit message, make sure you write `Fixes #<issue number>.`. We are following sentence case everywhere and a past tense. Please follow the same. When you push for the first time, please use the `-u` flag and give the full branch name. As my branch name is `2-cname-update` and this is the first time I am pushing, I will do `git push -u origin 2-cname-update`. Once you do this, the command automatically gives you the link for creating Pull Request as a response from remote. In my case, it was `https://github.com/praveenscience/Rezume/pull/new/2-cname-update`.
42+
![Step 10](./docs/10-3xfLpVi.png)
43+
12. Either navigate to the URL that you received in the above step or just go to your repository. You can see a banner informing you about your recently pushed branches and will also give you an option to Compare & pull request. Click on the button to open the pull request.
44+
![Step 11](./docs/11-4x9AWKJ.png)
45+
13. In the Open a pull request page, you will be shown with the commit details. Make sure you enter a valid commit message explaining what you have done and give a few points on what has happened. Don't forget to add the last line `Fixes #<issue number>.` at the end. Also, make sure to notify the mentors & admin of the project by clicking on the gear icon next to Reviewers on the right side. Click on Create pull request to create the pull request for review.
46+
![Step 12](./docs/12-G46c2NH.png)
47+
14. Here you have created the pull request successfully. You can check the correct number of commits and the files changed are perfect here. One of the reviewers will be with you shortly to check the Pull Request and gives you feedback, if there are any.
48+
![Step 13](./docs/13-y678XLN.png)
49+
15. Once the pull request looks satisfying to the maintainers / mentors, your pull request will be merged. You may (or may not) delete your branch at this moment.
50+
![Step 14](./docs/14-6PU2f9C.png)
51+
16. After merging new code into the `CatsInTech/Rezume` repository, your fork's `master` branch might be outdated. To make sure your `master` branch is latest, you need to pull the latest code from the upstream repository `CatsInTech/Rezume` to your local machine's `master` branch and then push to your origin repository `<your username>/Rezume`.
52+
![Step 15](./docs/15-QoHjRbD.png)
53+
17. To do the above step, you need to add the remote upstream as `upstream` in `git remote`. **Make sure you do this only once.** This is a repository level configuration, which means, you **don't need** to do it every time you create a new branch. I use this command `git remote add upstream https://[email protected]/CatsInTech/Rezume.git` to add the upstream repository. Make sure your `upstream` repository points to `CatsInTech/Rezume` while your `origin` repository points to `<your username>/Rezume`. You can check that by entering the `git remote -v` command.
54+
![Step 16](./docs/16-CMQpqr1.png)
55+
18. The first step is to pull from the `upstream` and second step is to push to the `origin`. Remember, `upstream` is the author's and `origin` is yours and you are updating your `origin`'s `master` branch with the latest code from `upstream`'s master branch. To do this, check out to master branch by using `git checkout master`, pull the latest code from the upstream's repository by using `git pull upstream master` (at this point, your local is sync'd with author's repo) and update your forked repository's master branch by using `git push`. If you follow the instructions correctly, there shouldn't be any issues pushing, but if you encounter any issues, I'll create a new section, commonly encountered issues, which you may refer. The above said three commands should give you a result like below.
56+
![Step 17](./docs/17-TLdzlD3.png)
57+
19. Now after pushing the changes, if you check your forked repository in GitHub, you must be able to see `This branch is even with CatsInTech:master.`. If that's not present, then either you haven't pushed it yet or you aren't in the master branch.
58+
![Step 18](./docs/18-78E0Tlk.png)
59+
20. Now this way, your local `master` branch is in sync with the `upstream`'s repository. If you want to work on a new issue, create a new branch by using `git checkout -b <issue number>-subject`. In my case, for my Issue #19, I am going to use this command, `git checkout -b 19-contributions-doc`. Start working and then go to step #6 again and repeat.
60+
![Step 19](./docs/19-yPeegEW.png)
61+
62+
Although this has been stolen from Rezume project, this is similar to any GitHub flow. As always, if you have any questions regarding Git, please do reach out to me on [Discord](https://events.praveen.science/).
63+
64+
## Code of Conduct
65+
66+
### Our Pledge
67+
68+
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
69+
70+
### Our Standards
71+
72+
Examples of behavior that contributes to creating a positive environment include:
73+
74+
* Using welcoming and inclusive language
75+
* Being respectful of differing viewpoints and experiences
76+
* Gracefully accepting constructive criticism
77+
* Focusing on what is best for the community
78+
* Showing empathy towards other community members
79+
80+
Examples of unacceptable behavior by participants include:
81+
82+
* The use of sexualized language or imagery and unwelcome sexual attention or advances
83+
* Trolling, insulting/derogatory comments, and personal or political attacks
84+
* Public or private harassment
85+
* Publishing others' private information, such as a physical or electronic address, without explicit permission
86+
* Other conduct which could reasonably be considered inappropriate in a professional setting
87+
88+
### Our Responsibilities
89+
90+
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
91+
92+
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
93+
94+
### Scope
95+
96+
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
97+
98+
### Enforcement
99+
100+
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [email protected]. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
101+
102+
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
103+
104+
### Attribution
105+
106+
This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), [version 1.4](http://contributor-covenant.org/version/1/4/).
107+

0 commit comments

Comments
 (0)