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)
    1. Sign-Up: Direct participants to the sign-up website through advertisement portals. https://dashboard.diaper-project.com/signup
    2. Participant Onboarding: Automatically send the collected information to the researcher and send the participant the infant nutrition onboarding link for demographics and consent.
    3. Register Account: Automatically register an account and send a mobile resetting password email.
    4. App Invitation:
      1. IPhone: Direct participants to TestFlight and the Tester Group.
      2. Android: TBD
    5. Receive: Participants receive a home stool collection kit.
    6. 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)

    1. Barcodes: milk barcode and stool barcode
    2. 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

WorkflowUserInterface (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)APIsDatabase named "BioHPC"


(by frontend-dashboard team)(by backend-dashboard team)





InfraDeveloper ONLYAutomating deployment by using Github, Jenkins, ArgoCD, Nexus, Docker, Kubernetes, AWS EC2, Cloudflare, AWS lambda

Onboarding knowledge check

  1. We require everyone to acknowledge GitHub to access the code base: 
    1. Git usage 
    2. GitHub Repos
  2. Each team has a different tech stack, please check the below
    • frontend-mobile
    • frontend-dashboard
    • backend-mobile
    • backend-dashboard
    • infra

Implementation flow: 

  1. 📖 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.

  2. 🎨 Implement the feature: You focus on developing the new feature, following best practices, and ensuring it meets the project's requirements and specifications.

  3. 🏭 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.

  4. 🙋 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.

  5. 🧰 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.

  6. ✅ 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.