Welcome! You must be baffled by the project, not having any clear idea as you just joined. Dread not! We'll walk you through the onboarding.
Hopefully after spending some time reading sections below, you'll have a more clear idea.
By all means, please feel free to ask on Slack general channel!
We're so excited and grateful that you've decided to spend the semester working with us!
⏫ Participant Submit Survey (From Mobile App)
🧪 Laboratory Genetic Sequencing
Upload processed sequencing data to MongoDB (categorized by species).
Upload raw data to generate a set of files for processing and visualization.
The project is divided into 2 workflows: online and offline
The members are divided into 5 teams: frontend-mobile, frontend-dashboard, backend-mobile, backend-dashboard, and infra
The table below gives a roughly good idea of understanding the relations between 2 workflows and 5 teams
| Workflow | User | Interface (frontend) | API (backend) | database |
|---|---|---|---|---|
| Mobile (Online) | e.g. Parents uploading data/photo | app (iOS, Android) | APIs | Database named "BioHPC" |
| (by frontend-mobile team) | (by backend-mobile team) | |||
| Dashboard (Offline) | e.g. Scientists view data | web (React & Typescript) | APIs | Database named "BioHPC" |
| (by frontend-dashboard team) | (by backend-dashboard team) | |||
| Infra | Developer ONLY | Automating deployment by using Github, Jenkins, ArgoCD, Nexus, Docker, Kubernetes, AWS EC2, Cloudflare, AWS lambda | ||
📖 Understand the project structure: This initial step ensures you have a clear understanding of the existing codebase, project architecture, and dependencies, which is crucial for effective implementation.
🎨 Implement the feature: You focus on developing the new feature, following best practices, and ensuring it meets the project's requirements and specifications.
🏭 Reconstruct the implementations to achieve scalability and readability by decoupling the UI and Logic: After the implementation, refactor the code to separate the user interface (UI) from the business logic. This decoupling enhances code maintainability, scalability, and readability.
🙋 Start a Pull Request & Review request to the admin: Submit your changes through a pull request, inviting the project admin and team members to review your code. This step ensures that your implementation is scrutinized for quality, adherence to standards, and potential issues.
🧰 Fix highlighted issues: Address any feedback or issues raised during the code review. This collaborative process helps to catch bugs, improve code quality, and ensure the feature integrates smoothly with the existing codebase.
✅ Merge: Once all issues are resolved and the code review is approved, merge your changes into the main codebase. This final step deploys your feature and makes it available for use in the project.