Thank you for investing your time in contributing to our project! Please read our Code of Conduct to keep our community approachable and respectable.
If you are looking to help to with a code contribution, our project uses Android as our OS, Realm as our local database, Java (Kotlin in the near future) as our developing language and Git for collaboration. If you don't feel ready to make a code contribution yet, no problem! You can help us out with documentation issues or UI design issues. If you are interested in making a code contribution and would like to learn more about the technologies that we use, check out the list below.
- Realm - Realm is a fast, scalable alternative to SQLite for mobile development.
- Android - The operating system inside 2.5 billion active devices.
- Java SE - Java SE and component technologies offer a rich user interface, performance, versatility, portability, and security.
- Git - Git is easy to learn and has a tiny footprint with lightning fast performance.
By now, you should have a copy of the project on your local machine. If not, take a look at the README for instructions. This quick rundown introduces Git and the command line to beginners. If you are an experienced collaborator/programmer, more power to you!, you can skip this part and head over to Submit a Pull Request and guidelines
Before moving on, open the terminal and type the command git remote add upstream https://github.com/ucfcs/GrowthPlus.git
to track the original project.
Find an issue/feature that you are interested in addressing.
Create a new branch for your fix, from the terminal type
git switch -c yourNewBranchName
, this will create a new branch and run the git checkout command right away.
Make the appropriate changes for the issue you are trying to address or the feature that you want to add and then follow these commands:
git status
shows you the state of the project files, this is usefull because you do not need to add files that Android Studio generates for your local enviroment.
git add <file-name>
simply stages files so they can be committed.
git commit -m "Message here"
commits your files and completely saves your progress to your branch, it is normal to have multiple commits in a branch, in fact, it is recommended to commit your progress throughout your coding session. Include a short descriptive message of your progress.
git push -u origin <branch-name>
pushes your committed changes to the remote repository, the origin parameter will push to the repository the project was cloned from, in this case, it's the project's copy that is in your github.
Before submitting a pull request, make sure your forked copy is to up date with the original project. Fetch the lastest changes with git fetch upstream
git checkout main
to go back to the main branch in your local repo.
git merge upstream/main
, merges the changes from upstream/main branch to your local main branch, this brings your fork's main branch into sync with the upstream repository, without losing your local changes.
In the local main branch, git push
updates your remote forked copy.
Go back to the working branch, git checkout <branch-name>
git merge main
combines the changes of the main branch and your working branch, this is why we update the main branch with the latest changes before merging with your branch's progress, you must ensure that your working branch is up to date to avoid merge conflicts when doing a pull request.
Great Job!, if you are done with your implementation, it is time to submit a pull request. If you recently pushed your changes to your own forked repository, click the Compare & pull request green button.
In the Write tab:
- Include a brief description about your pull request, what issue or feature are you addressing and how you fixed it.
- Provide testing instructions, what should the reviewers be looking for? , be as detailed as possible.
- Include the following script
ucfcs/GrowthPlus #<issue-number>
at the very end, this will refer and close the specific issue you were working on. - Finally, click Create pull request
What happends now?, each pull request needs two approvals from the maintainers. If a pull request does not pass the testing steps or does not function as it should, it is the responsibility of the reviewer to document the issues and it is the responsibility of the owner of the pull request to fix it and push new changes.
For any enquiries, contact us at [email protected]. If you need help with programming or are stuck somewhere, write a comment in the issue that you are working, a maintainer will try to address it as soon as possible.