-
Notifications
You must be signed in to change notification settings - Fork 1
352 Contribution Guide
This document outlines the guidelines for the procedure of contributing to this project. In addition to the processes, we outline several of the important points that must be considered when implementing a feature.
This guide is subject to change as the team develops more efficient workflows.
Please check out the README.md
file for the relevant project (under frontend/
, backend/
, and mobile/
) to learn how to set up your development environment. In addition, the ARCHITECTURE.md
when available contains information about the architecture of the code. CODEOWNERS
files define who owns that directory and all of its content in terms of code ownership. For the time being, CODEOWNERS
only consists of the leads for that section of the codebase.
We merge all our code into the develop
branch. From there, releases are cut first by merging to staging
then tagging the release. A tag will trigger a CD docker build that will build and push to the DigitalOcean Container Registry. Our staging environment will be updated with the new release automatically. Release to the production happens in the same way with a merge from staging
into main
and a tag.
Release tags must be annotated tags. The tagging format for the releases are vNUM
where NUM increases incrementally and is independent of the other versions.
Quick fixes may be merged into staging
or main
as needed with the approval of a lead on the respective team.
As a way to ensure code quality, we will be conducting code reviews. We'll have leads for the 3 teams, who will do code reviews. We also encourage all team members to review open PRs as the ability to read code is a very important one to have. It's also very important to be aware of the code changes that are in the process of getting merged.
For the code review process, we utilize Github Pull Requests. Developers will open PRs and assigned reviewers (including the lead) will review and request changes. The developer will respond to those requests and the both parties will iterate until the code is ready to merge.
Here is an outline of steps of a typical code merge:
- Create a branch for your request (Branch Naming)
- Incrementally develop your feature by committing to your branch.
- Push the branch to this GitHub repository.
- Open a pull-request to
develop
with our PR template. - Add the lead for the relevant team as a code reviewer and any other teammates you'd like.
- Iterate as reviews come in and merge when approved. The merge method should be "Create a merge commit"
Tip
For a guide on how to do git-specific things, check out the Git Basics document.
There are a couple of important points to look for when reviewing code. Here are some (but not all) things to look for when reviewing:
- Code is not too complicated or dense.
- Code matches the common formatting rules.
- Naming of variables, classes and files are consistent with the rest of the codebase.
- All new code that has been added has unit test coverage.
- The changes satisfy the acceptance criteria of the issue linked to it.
- There aren't unrelated changes included (eg. formatting change should not be combined with a feature addition, please open separate PRs)
- PR description accurately and completely describes the changes included in the PR.
- The formatting of the changes should be past tense. e.g:
- Fixed sign-in button's hover styles
- Implemented dark mode support
- ...
- Make sure that:
- all status checks pass (i.e. all CI checks must be passing),
- there are no unresolved discussions,
- the lead for that team has approved the changes.
We use feature branches with concise naming for the feature. The general form of the feature branch's name is {scope}/feature/{issue-id}-{short-desc}
.
For example, if you're implementing a sign-in page's form whose task has an issue number 42
, you can name your branch frontend/feature/42-sign-in-form
.
After merging in your branch with a pull request, you may delete the feature branch.
We aim to use automatic formatters for all the parts of the codebase. For the frontend and mobile parts, this is Prettier and we have our own prettierrc. Please configure your editor as detailed in the README
. Formatting is also enforced in CI.
- Meeting Note 9 - 10.12.2024
- Meeting Note 8 - 03.12.2024
- Meeting Note 7 - 19.11.2024
- Meeting Note 6 - 12.11.2024
- Meeting Note 5 - 05.11.2024
- Feedback Meeting - 29.10.2024
- Meeting Note 4 - 15.10.2024
- Meeting Note 3 - 08.10.2024
- Meeting Note 2 - 01.10.2024
- Meeting Note 1 - 24.09.2024
- Lab Report-1 📝
- Lab Report-2 📝
- Lab Report-3 📝
- Lab Report-4 📝
- Lab Report-5 📝
- Lab Report-6 📝
- Lab Report-7 📝
- Lab Report-8 📝
- Lab Report-9 📝
- Milestone Report
- Additional Scenario & Mockups
- Final Milestone Presentation Scenario
- Requirements
- Standard Implementation Documentation
- Software Design Diagrams ✨
- Customer Feedback for Demo
- Milestone Report
- Presentation Scenario
- Software Quality Standards
- Data Population Strategy
- Customer Feedback for Demo
- Standard Implementation Documentation
- Testing Documentation
- Requirements
- Software Design Diagrams ✨
- Milestone Report
- Scenarios & Mockups 🖌️
- User Stories
- Responsibility Assigment Matrix ☑️
- Class Diagram
- Issue Creation Guidlines ❓
- Wikidata Query Service Guidlines and Resources ❓
- Communication Plan ☎️
- Requirements
352 Sidebar
- Contribution Guide
- Backend Roadmap and Resources
- Issue Creation Guidlines ❓
- Wikidata Query Service Guidlines and Resources ❓
- Communication Plan ☎️
- UI Design Images, Figma
- Requirements
- Frontend Meeting Note 5 - 16.05.2024
- Frontend Meeting Note 4 - 14.05.2024
- Backend Meeting Note 6 - 11.05.2024
- Backend Meeting Note 5 - 10.05.2024
- Backend Meeting Note 4 - 07.05.2024
- Frontend Meeting Note 3 - 07.05.2024
- Backend Meeting Note 3 - 06.05.2024
- Frontend Meeting Note 2 - 05.05.2024
- Frontend Meeting Note 1 - 29.04.2024
- Meeting Note 11 - 28.04.2024
- Backend Meeting Note 2 - 26.04.2024
- Backend Meeting Note 1 - 25.04.2024
- Meeting Note 10 - 21.04.2024
- Meeting Note 9 - 14.04.2024
- Meeting Note 8 - 04.04.2024
- Meeting Note 7 - 23.03.2024
- Customer Meeting Note - 18.03.2024
- Meeting Note 6 - 16.03.2024
- Meeting Note 5 - 12.03.2024
- Meeting Note 4 - 09.03.2024
- Meeting Note 3 - 02.03.2024
- Meeting Note 2 - 24.02.2024
- Meeting Note 1 - 18.02.2024
- Nazire Ata
- Enes Başer
- Aslı Gök
- Çağatay Çolak
- Mehmet Efe Akça
- Yiğit Memceroktay
- Ufuk Altunbulak
- Boray Kasap
- Atakan Yasar