Skip to content

Latest commit

 

History

History
69 lines (53 loc) · 3.83 KB

File metadata and controls

69 lines (53 loc) · 3.83 KB

Contributors guide

How to contribute to the code base

Install Git

Guide - https://github.com/git-guides/install-git

Install Git GUI

Guide - https://git-scm.com/downloads/guis/

Project Overview - https://github.com/kaushikjadhav01/Deep-Surveillance-Monitor-Facial-Emotion-Age-Gender-Recognition-System/blob/main/README.md

Types of code changes and contributions we accept

  • Minor issue fixes like typos, basic layout changes, etc
  • Resolutions for raised issues, raising a new issue
  • Addition and modifications to existing features provided with proper unit testing and code coverage

Tips to begin development

  • Go through the documentation hosted on the GitHub pages website to understand the description of each of the classes and the hierarchy of inheritance.
  • Setup the tools for development and a virtual device for quick testing.
  • Familiarize yourself with android implementation tests for quick validation of any changes. Getting started with Android implementation tests
  • You can also read up on Firebase to get a better understanding of the Firebase platform and the Android SDK. Getting started with Firebase & Android SDK

Sample Workflow

  • Install Git and Android Studio on your machine.
  • Clone the repo to the machine.
  • Open the project in Android Studio and configure Gradle plugins and build scripts by running Build in Android Studio.
  • Once the build is successful, open the Android device manager and install a virtual device (you can also use a physical device in case the machine is low on memory by using wireless debugging).
  • Run the application in the newly created/ connected device.
  • Create a new account in Firebase by following the sign-up process in the application.
  • After updating the repository with latest version of 'main', fork a new branch to contain the new changes.
  • Proceed to build the feature and use the 'deploy' the button at the top to flash the latest code to the device.
  • Commit frequently to ensure that the changes are small and reversible in case of an issue.
  • Once the feature is built, make sure that the new changes are commented appropriately for the documentation to be generated correctly for any new methods and classes.
  • Also add appropriate tests to ensure that the newly added parts are continuously validated.
  • From the build options dropdown in Android Studio pick the task 'generateDocsForDebug' or 'generateDocsForRelease' to generate updated documentation.
  • Commit the documentation changes and push to remote.
  • All the automated tasks will begin to run, monitor the progress and fix any failures which show up.
  • Request a review from one of the maintainers and get an approval.
  • The changes will now be merged.

Branching Strategy

  • Create a feature branch or a bug branch from the dev branch
  • Branch naming conventions :
    • Adding a new feature to the existing code base: feature/--implementiation name--
    • Resolving a bug or an issue: bug/--fix name--
  • Commit your code to the feature branch and raise a Pull Request to the dev branch.
  • No commits should be added to the main branch from a feature branch, only the dev branch can add commits to the main.
  • Please ensure all style checkers and validation steps are passing before requesting for review.

Raising a PR and approvals

  • Raise a PR from the feature branch to the dev branch and request for review from the repository owners
  • 2 mandatory reviews are required before merging
  • Follow clean code and fix the PR comments before merging PR
  • A release will be triggered every time the code is merged to the main branch, only the dev branch should be merged to the main

Allowed actions

  • Watching repo
  • Forking repo
  • Contributing to the repo
  • Cloning and making changes
  • Raising issues
  • Fixing bugs