Welcome
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!
Why Diaper
Participant
- ✨Participant onboarding process (From Website)
- Sign-Up: Direct participants to the sign-up website through advertisement portals. https://dashboard.diaper-project.com/signup
- Participant Onboarding: Automatically send the collected information to the researcher and send the participant the infant nutrition onboarding link for demographics and consent.
- Register Account: Automatically register an account and send a mobile resetting password email.
- App Invitation:
- IPhone: Direct participants to TestFlight and the Tester Group.
- Android: TBD
- Receive: Participants receive a home stool collection kit.
- Start: After giving birth, participants click "I had my baby," receive an email to complete the after-birth survey, and provide the birth date.
- Database: The demographics will be stored in BioHPC (not MongoDB, or AWS S3 Bucket)
⏫ Participant Submit Survey (From Mobile App)
- Barcodes: milk barcode and stool barcode
- Survey: A list of questions for child information
- Database: Survey data will be directly stored in MongoDB
Researcher (Using Dashboard)
- 💻 Visualize and analyze data
- Tables: there is a robust table template for multiple data categories
🧪 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.
- Database: sequencing data are stored in MongoDB
Team management
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 | ||
Onboarding knowledge check
- We require everyone to acknowledge GitHub to access the code base:
- Each team has a different tech stack, please check the below
- frontend-mobile
- frontend-dashboard
- backend-mobile
- backend-dashboard
- infra
Implementation flow:
📖 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.