This guide outlines the workflow for collaborating on the Shifa project. Following these steps ensures code safety, organized branching, and a smooth review process.
Main Repository: https://github.com/ShifaLabs/shifa.git
Before starting, ensure you have the following:
- Git Installed: Download here
- Terminal: Git Bash (Windows) or native Terminal (Mac/Linux).
- Access: Ensure you have collaborator access to the Shifa repository.
Recommended for secure, passwordless access to private repos.
- Generate Key: Open your terminal and run:
ssh-keygen -t ed25519 -C "your_email@example.com"
- Start Agent:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
- Add to GitHub: Copy your key to clipboard:
cat ~/.ssh/id_ed25519.pub
Go to GitHub Settings → SSH and GPG keys → New SSH key and paste it. 4. Test Connection:
ssh -T git@github.com
git clone git@github.com:ShifaLabs/shifa.git
cd shifa
Never work directly on main or development. Always create a feature branch from development.
# Switch to development and get latest changes
git checkout development
git pull origin development
# Create your branch: <name>/<feature-description>
git checkout -b <yourname>/<feature-name>
_Example: git checkout -b sojib/video-call-feature_
Work on your feature, then stage and commit your changes using the mandatory format:
| Type | Prefix | Description |
|---|---|---|
| New Feature | [ADDED] |
Use when adding new files/logic. |
| Updates | [MODIFIED] |
Use for bug fixes or logic updates. |
| Completion | [DONE] |
Use when the entire feature is ready. |
Example Commit:
git add .
git commit -m "[ADDED]: Implement video call feature using 100ms SDK"
- Push to GitHub:
git push origin <yourname>/<feature-name>
- Open PR: Go to the GitHub repository → Pull Requests → New Pull Request.
- Base:
development - Compare:
your-branch-name
- Review: Wait for a maintainer to review and merge. Do not merge your own PR.
To avoid merge conflicts, regularly pull the latest code from development into your branch:
git fetch origin
git rebase origin/development
If conflicts occur, resolve them locally, then continue your work.
Important
- No Direct Commits: Never commit directly to
mainordevelopment. - Branch Preservation: Do not delete other members' branches.
- Feature Requirement: Every member must implement at least one complete feature (UI components like Navbars do not count toward technical marks).
- Local Testing: Ensure the app runs locally before pushing code.
- Clean History: Prefer
rebaseovermergeto keep the git graph readable.
Happy Coding! If you run into issues, please reach out via the team WhatsApp.