Skip to content

Learnathon-By-Geeky-Solutions/triangle

Repository files navigation

Little Steps

Little Steps Logo

Supporting Parents in Tracking and Nurturing Baby's Growth


πŸ“‘ Table of Contents


🧩 Overview

Little Steps is a mobile app designed to help parents track and support their baby's growth. It offers tools to monitor vaccines, sleep, feeding, and milestones, all in one place. With timely reminders, expert parenting advice, and a supportive community, Little Steps simplifies parenting and ensures babies get the care they need.


✨ Key Features

  • Easy sign-up and setup with user authentication.
  • Create profiles for parents and babies for personalized insights.
  • Track vaccines, sleep, feeding, and growth milestones in one place.
  • Get timely reminders with push notifications.

πŸ› οΈ Problems We Solved

  • Unified multiple tracking tools into one parent-friendly app.
  • Replaced manual vaccine tracking with automated reminders.
  • Delivered expert parenting advice and milestone guidelines.
  • Encouraged a connected, digital parenting experience.

πŸ” Challenges with Code Quality Analysis (SonarCloud)

While integrating SonarCloud for static code analysis and test coverage, we encountered a few technical issues that initially hindered proper feedback from our codebase:

  1. Folder Exclusion Issue:
    The lib/ and test/ directories were being automatically excluded by default during SonarCloud analysis, which meant no meaningful code metrics were being generated.

  2. Test Coverage Detection Issue:
    Despite having a working test suite, SonarCloud was not detecting coverage data, preventing visibility into our test effectiveness and untested code areas.


πŸ› οΈ Solutions Implemented for SonarCloud Integration

To ensure a complete and professional CI workflow with SonarCloud, we applied the following resolutions:

  1. Custom GitHub Actions Workflow for CI:
    We created a tailored GitHub Actions CI workflow to explicitly include the lib/ and test/ directories in the SonarCloud scan. This resolved the exclusion issue and enabled proper code analysis across the entire project.

  2. Test Coverage Configuration with Documentation Support:
    The test coverage detection was resolved by carefully reviewing SonarCloud’s official documentation.
    With support from our mentor, we corrected the coverage reporting configuration to align with SonarCloud expectations, ensuring full test visibility.


🎯 Target Users

  • Parents and guardians of babies and children aged 0 months to 10 years.
  • Caregivers who want a centralized baby care tracking solution.

πŸ–ΌοΈ UI/UX Showcase

Here's a glimpse of our user-friendly interface that supports parents with clarity, warmth, and ease of use:

UI/UX Design Preview


πŸ‘₯ Team Members

Name Role GitHub Profile
minhazul73 Team Leader @minhazul73
jannatulferdous2730 Member @jannatulferdous2730
rowshannahar3 Member @rowshannahar3
ihjohny Project Mentor @ihjohny

🧰 Tech Stack

Flutter Dart GetX Firebase Android Studio VS Code License

πŸ—οΈ Development Practices

πŸ“Œ Topic βœ… Best Practices
Architecture MVVM: Separated /model, /view, /viewmodel, and /core logic
State Management GetX – Lightweight, fast reactive bindings
Version Control GitHub Projects used for issue tracking and task planning
Code Quality SonarCloud analysis to improve maintainability, detect duplicates, and refactor
Testing Firebase Test Lab for widget/unit testing across devices
Reusability Custom reusable widgets for forms, buttons, and notifications

πŸ’Ό Engineering Highlights

  • Implemented clean MVVM architecture for scalable development.
  • Integrated SonarCloud to measure maintainability and code duplication.
  • Built reusable UI components to follow the DRY principle.
  • Used GetX for smooth reactive state control and routing.
  • Employed Firebase for secure, real-time data handling and push notifications.

πŸ“ Project Structure

Directory structure:
└── lib/
    β”œβ”€β”€ app.dart
    β”œβ”€β”€ firebase_options.dart
    β”œβ”€β”€ main.dart
    β”œβ”€β”€ bindings/
    β”‚   └── general_bindings.dart
    β”œβ”€β”€ data/
    β”‚   β”œβ”€β”€ models/
    β”‚   β”‚   β”œβ”€β”€ child/
    β”‚   β”‚   β”‚   └── child_model.dart
    β”‚   β”‚   └── user/
    β”‚   β”‚       └── user_model.dart
    β”‚   └── repositories/
    β”‚       β”œβ”€β”€ auth/
    β”‚       β”‚   β”œβ”€β”€ authentication_repository.dart
    β”‚       β”‚   └── authentication_repository_impl.dart
    β”‚       β”œβ”€β”€ child/
    β”‚       β”‚   β”œβ”€β”€ child_repository.dart
    β”‚       β”‚   └── child_repository_impl.dart
    β”‚       └── user/
    β”‚           β”œβ”€β”€ mock_user_repository_impl.dart
    β”‚           β”œβ”€β”€ user_repository.dart
    β”‚           └── user_repository_impl.dart
    β”œβ”€β”€ utils/
    β”‚   β”œβ”€β”€ constants/
    β”‚   β”‚   β”œβ”€β”€ app_colors.dart
    β”‚   β”‚   └── sizes.dart
    β”‚   β”œβ”€β”€ environment/
    β”‚   β”‚   └── env.dart
    β”‚   β”œβ”€β”€ exceptions/
    β”‚   β”‚   β”œβ”€β”€ app_exceptions.dart
    β”‚   β”‚   └── format_exceptions.dart
    β”‚   β”œβ”€β”€ formatters/
    β”‚   β”‚   └── formatter.dart
    β”‚   β”œβ”€β”€ helpers/
    β”‚   β”‚   β”œβ”€β”€ age_calculator.dart
    β”‚   β”‚   β”œβ”€β”€ helper_functions.dart
    β”‚   β”‚   └── network_manager.dart
    β”‚   β”œβ”€β”€ loaders/
    β”‚   β”‚   β”œβ”€β”€ animation_loader.dart
    β”‚   β”‚   └── circular_loader.dart
    β”‚   β”œβ”€β”€ popups/
    β”‚   β”‚   β”œβ”€β”€ full_screen_loader.dart
    β”‚   β”‚   └── loaders.dart
    β”‚   β”œβ”€β”€ theme/
    β”‚   β”‚   β”œβ”€β”€ theme.dart
    β”‚   β”‚   β”œβ”€β”€ extensions/
    β”‚   β”‚   β”‚   └── custom_color_extension.dart
    β”‚   β”‚   └── widget_themes/
    β”‚   β”‚       β”œβ”€β”€ app_bar_theme.dart
    β”‚   β”‚       β”œβ”€β”€ bottom_navigation_bar_theme.dart
    β”‚   β”‚       β”œβ”€β”€ checkbox_theme.dart
    β”‚   β”‚       β”œβ”€β”€ filled_button_theme.dart
    β”‚   β”‚       β”œβ”€β”€ outlined_button_theme.dart
    β”‚   β”‚       β”œβ”€β”€ text_field_theme.dart
    β”‚   β”‚       └── text_theme.dart
    β”‚   β”œβ”€β”€ translations/
    β”‚   β”‚   └── localization_service.dart
    β”‚   └── validators/
    β”‚       └── app_validator.dart
    β”œβ”€β”€ view/
    β”‚   β”œβ”€β”€ auth/
    β”‚   β”‚   β”œβ”€β”€ email_verification_view.dart
    β”‚   β”‚   β”œβ”€β”€ login_view.dart
    β”‚   β”‚   └── register_view.dart
    β”‚   β”œβ”€β”€ child_onboarding/
    β”‚   β”‚   β”œβ”€β”€ child_dob_input_view.dart
    β”‚   β”‚   β”œβ”€β”€ child_name_input_view.dart
    β”‚   β”‚   └── child_stats_input_view.dart
    β”‚   └── home/
    β”‚       β”œβ”€β”€ home_view.dart
    β”‚       └── widgets/
    β”‚           β”œβ”€β”€ activity_grid_layout.dart
    β”‚           β”œβ”€β”€ age_grid_layout.dart
    β”‚           └── vaccine_stack_layout.dart
    └── view_model/
        β”œβ”€β”€ auth/
        β”‚   β”œβ”€β”€ initial_screen_redirect.dart
        β”‚   β”œβ”€β”€ login_controller.dart
        β”‚   └── register_controller.dart
        β”œβ”€β”€ child/
        β”‚   └── child_controller.dart
        β”œβ”€β”€ child_onboarding/
        β”‚   └── child_onboarding_controller.dart
        └── home/
            └── home_controller.dart

πŸ“˜ What We Learned

πŸ’‘ Topic πŸ’¬ Insight
Software Engineering Applied structured team workflow using real-world tools like GitHub Boards
Clean Architecture Learned how to break app into scalable and testable modules
Code Quality SonarCloud taught us how to improve reliability and maintainability
Reusability & DRY Principle Mastered reuse of widgets for faster and cleaner development
Testing & Debugging Used Firebase and test-driven logic to simulate real user cases

βš™οΈ Getting Started

Project Setup Instructions

  1. Clone the repository:
    git clone https://github.com/Learnathon-By-Geeky-Solutions/triangle.git
  2. Install dependencies:
    flutter pub get
  3. Run the application:
    flutter run

Little Steps Banner

About

Repository for team Triangle . Supporting Parents in Tracking and Nurturing Baby's Growth.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages