- π§© Overview
- β¨ Key Features
- π οΈ Problems We Solved
- π Challenges with Code Quality Analysis (SonarCloud)
- π οΈ Solutions Implemented for SonarCloud Integration
- π― Target Users
- πΌοΈ UI/UX Showcase
- π₯ Team Members
- π§° Tech Stack
- ποΈ Development Practices
- πΌ Engineering Highlights
- π Project Structure
- π What We Learned
- βοΈ Getting Started
- π Resources
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.
- 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.
- 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.
While integrating SonarCloud for static code analysis and test coverage, we encountered a few technical issues that initially hindered proper feedback from our codebase:
-
Folder Exclusion Issue:
Thelib/
andtest/
directories were being automatically excluded by default during SonarCloud analysis, which meant no meaningful code metrics were being generated. -
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.
To ensure a complete and professional CI workflow with SonarCloud, we applied the following resolutions:
-
Custom GitHub Actions Workflow for CI:
We created a tailored GitHub Actions CI workflow to explicitly include thelib/
andtest/
directories in the SonarCloud scan. This resolved the exclusion issue and enabled proper code analysis across the entire project. -
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.
- Parents and guardians of babies and children aged 0 months to 10 years.
- Caregivers who want a centralized baby care tracking solution.
Here's a glimpse of our user-friendly interface that supports parents with clarity, warmth, and ease of use:
Name | Role | GitHub Profile |
---|---|---|
minhazul73 | Team Leader | @minhazul73 |
jannatulferdous2730 | Member | @jannatulferdous2730 |
rowshannahar3 | Member | @rowshannahar3 |
ihjohny | Project Mentor | @ihjohny |
π 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 |
- 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.
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
π‘ 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 |
- Clone the repository:
git clone https://github.com/Learnathon-By-Geeky-Solutions/triangle.git
- Install dependencies:
flutter pub get
- Run the application:
flutter run