Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
9d724e2
updating branch
DecodeX15 Jul 26, 2026
657efb6
initial setup
DecodeX15 May 26, 2026
0764c99
remove initial commits
DecodeX15 May 26, 2026
c6f2445
initialising themes and folder strucutre and completeing welcome screen
DecodeX15 May 27, 2026
b67ad17
adding naviagtion setup and goalscreen ui and some ui config
DecodeX15 May 30, 2026
35d87c9
implement onboarding state management with Riverpod and update goal s…
DecodeX15 May 30, 2026
a57db51
add rest onboarding screens and state management for user customization
DecodeX15 May 31, 2026
dd0d954
fix warnings
DecodeX15 May 31, 2026
5746c37
refactor ButtonCard widget to use InkWell for improved tap handling a…
DecodeX15 Jun 3, 2026
ac17c17
fix suggested changes and some ui bugs
DecodeX15 Jun 6, 2026
2e9e2c1
done suggested changes my madhaav and adding freezed and riverpod-ann…
DecodeX15 Jun 7, 2026
2b81986
fixed filenames and added routes_files
DecodeX15 Jun 7, 2026
979c60a
some more fix
DecodeX15 Jun 7, 2026
0024c70
integrating ml model
DecodeX15 Jun 12, 2026
08507a1
adding build yaml
DecodeX15 Jun 13, 2026
8c1cc66
merging database branch
DecodeX15 Jun 13, 2026
1baaa5a
implementing ai_inference repo layer, adding tagstable configuration,…
DecodeX15 Jun 14, 2026
7484875
fix btn name
DecodeX15 Jun 14, 2026
817458e
completed top k tags extraction
DecodeX15 Jun 28, 2026
4b0dd3e
showing top k tags in ui
DecodeX15 Jun 28, 2026
bc0f3f7
adding equipment and safety filters
DecodeX15 Jun 30, 2026
f9cda8a
adding home naviagtion and home screen widgets
DecodeX15 Jul 1, 2026
78644e2
fixing widgets responsive error and adding models and vm
DecodeX15 Jul 1, 2026
31dad5b
fix bot behaviour
DecodeX15 Jul 9, 2026
a63d123
adding lottie animations
DecodeX15 Jul 9, 2026
7757414
adding session screee and widget
DecodeX15 Jul 9, 2026
c9e3f3c
adding schema for session exercise and session schedule and screens also
DecodeX15 Jul 11, 2026
b99f131
adding fixed files
DecodeX15 Jul 11, 2026
b98fe39
adding map data structure
DecodeX15 Jul 11, 2026
ea70e0e
adding more exercises
DecodeX15 Jul 12, 2026
3134110
adding animation caching service
DecodeX15 Jul 12, 2026
fdc9af2
Adding Session execution screens,widgets,viewmodels and repo
DecodeX15 Jul 14, 2026
614477c
fixing incosistency in animation preview initstate func and prep anim…
DecodeX15 Jul 14, 2026
58e2ae8
Setting up the github action workflow pipeline
DecodeX15 Jul 22, 2026
8009829
fix workflow
DecodeX15 Jul 22, 2026
d8a66c3
adding post-feedback screen and logic
DecodeX15 Jul 24, 2026
8284fdc
adding anti-boredom logic (skipping last x sessions exercises)
DecodeX15 Jul 25, 2026
aeeaa56
adding fuzzy search implementatio
DecodeX15 Jul 25, 2026
05ecd6a
10 exercises added
DecodeX15 Jul 25, 2026
67e2be3
Activity screen with mvvm architecture
DecodeX15 Jul 26, 2026
10050e4
fixed break-line error, enhanced sentences and added debugPrint inste…
DecodeX15 Aug 4, 2026
bf60294
adding test for view and model in onboarding feature
DecodeX15 Aug 9, 2026
5b434da
added viewmodel and repo test files of onboarding feature
DecodeX15 Aug 9, 2026
639b345
adding test files of ai_inference feature
DecodeX15 Aug 9, 2026
732093e
adding test files of stats feature
DecodeX15 Aug 9, 2026
d007507
adding viewmodel test files of stats feature
DecodeX15 Aug 9, 2026
460d395
setting up coderabbit and pr workflow
DecodeX15 Aug 12, 2026
06b3fa3
ci: replace generate_db with automated release_apk workflow
DecodeX15 Aug 12, 2026
195113d
fix ai runtime error
DecodeX15 Aug 12, 2026
9dc6fb9
fixing flutter icons
DecodeX15 Aug 18, 2026
82b1d72
adding calorie service and fl chart for calorie tracking
DecodeX15 Aug 18, 2026
8f1e423
adding quick plan schema, tabls, repo, viewmodela and wdigets
DecodeX15 Aug 21, 2026
3f1a88c
adding singed keys for playstore release and fixing some bugs
DecodeX15 Aug 22, 2026
91c6baf
fixing version for the playstore
DecodeX15 Aug 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
271 changes: 35 additions & 236 deletions .coderabbit.yaml
Original file line number Diff line number Diff line change
@@ -1,280 +1,79 @@
# Enables IDE autocompletion for this config file
# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

# Language for CodeRabbit's review comments
language: en

# Enable experimental features (currently not using any specific early_access features)
early_access: true
early_access: false

chat:
# CodeRabbit will automatically respond to @coderabbitai mentions in PR comments
auto_reply: true

issue_enrichment:
labeling:
auto_apply_labels: true
labeling_instructions:
- label: bug
instructions: Issues reporting bugs, errors, crashes, incorrect behavior, or unexpected results. This includes runtime errors, logic errors, broken functionality, regressions, and any deviation from expected or documented behavior.
- label: enhancement
instructions: Feature requests, improvements to existing functionality, performance optimizations, refactoring suggestions, UI/UX enhancements, and any suggestions to make the project better or add new capabilities.
- label: documentation
instructions: Documentation updates, additions, corrections, or clarifications needed. This includes missing docs, outdated information, unclear instructions, API documentation, code examples, README improvements, and any requests for better explanations or guides.
planning:
enabled: true
auto_planning:
enabled: true
labels:
- "plan-me" # Auto-plan issues with this label
- "feature" # Also auto-plan these
- "!no-plan" # Never auto-plan issues with this label

reviews:
profile: assertive # Options: chill (focuses on significant issues, less nitpicky about style), assertive (more thorough, flags style issues and minor improvements too)
profile: assertive

auto_review:
# Automatically trigger reviews when PRs are opened or updated
enabled: true
# Skip auto-review if PR title contains these keywords
ignore_title_keywords:
- "WIP"
# Don't auto-review draft PRs
- "[WIP]"
drafts: false
# Only auto-review PRs targeting these branches
base_branches:
- main
- develop

# Include a high-level summary at the start of each review
high_level_summary: true

# Generate sequence diagrams for complex code flows
sequence_diagrams: true

# Include poems in reviews
poem: true

# Show review completion status
review_status: true

# Keep the walkthrough section expanded by default
collapse_walkthrough: false

# Include summary of all changed files
changed_files_summary: true

# Automatically request changes on the PR (just leave comments)
request_changes_workflow: true

# Pre-merge checks to enforce before merging PRs
pre_merge_checks:
description:
# Validate that PR has a proper description
mode: warning # Options: off, warning, error
docstrings:
# Disable docstring coverage checks (let's assume we don't need them)
mode: off

# Exclude these paths from reviews (build artifacts and dependencies)
path_filters:
- "!**/node_modules/**" # npm dependencies
- "!**/android/**" # Native Android build files
- "!**/ios/**" # Native iOS build files
- "!**/.expo/**" # Expo build cache
- "!**/.expo-shared/**" # Expo shared config
- "!**/dist/**" # Build output
- "!**/*.g.dart" # Ignore auto-generated Dart files
- "!**/*.freezed.dart" # Ignore Freezed generated files
- "!**/android/**" # Native Android build files
- "!**/ios/**" # Native iOS build files
- "!**/build/**" # Build output
- "!**/.dart_tool/**" # Dart tools cache
- "!assets/**" # ML Models and Database files

# Use the following tools when reviewing
tools:
shellcheck:
enabled: true
ruff:
enabled: true
markdownlint:
enabled: true
github-checks:
enabled: true
timeout_ms: 90000
languagetool:
enabled: true
enabled_only: false
level: default
biome:
enabled: true
hadolint:
enabled: true
swiftlint:
enabled: true
phpstan:
enabled: true
level: default
golangci-lint:
enabled: true
yamllint:
enabled: true
gitleaks:
enabled: true
checkov:
enabled: true
detekt:
enabled: true
eslint:
enabled: true

# Apply the following labels to PRs
labeling_instructions:
- label: Python Lang
instructions: Apply when the PR/MR contains changes to python source-code
- label: Solidity Lang
instructions: Apply when the PR/MR contains changes to solidity source-code
- label: Typescript Lang
instructions: Apply when the PR/MR contains changes to javascript or typescript source-code
- label: Ergoscript Lang
instructions: Apply when the PR/MR contains changes to ergoscript source-code
- label: Bash Lang
instructions: >-
Apply when the PR/MR contains changes to shell-scripts or BASH code
snippets
- label: Make Lang
instructions: >-
Apply when the PR/MR contains changes to the file `Makefile` or makefile
code snippets
- label: Documentation
instructions: >-
Apply whenever project documentation (namely markdown source-code) is
updated by the PR/MR
- label: Linter
instructions: >-
Apply when the purpose of the PR/MR is related to fixing the feedback
from a linter
- label: Dart Lang
instructions: Apply when the PR contains changes to Dart source code (.dart files)
- label: UI/Flutter
instructions: Apply when the PR contains changes related to Flutter UI components
- label: ML/AI
instructions: Apply when the PR contains changes related to the ONNX model or AI logic
- label: Database
instructions: Apply when the PR contains changes to SQLite or database scripts

# Review instructions that apply to all files
instructions: >-
- Verify that documentation and comments are free of spelling mistakes
- Ensure that test code is automated, comprehensive, and follows testing best practices
- Verify that all critical functionality is covered by tests
- Confirm that the code meets the project's requirements and objectives
- Confirm that copyright years are up-to date whenever a file is changed
- Point out redundant obvious comments that do not add clarity to the code
- Ensure that comments are concise and suggest more concise comment statements if possible
- Discourage usage of verbose comment styles such as NatSpec
- Look for code duplication
- Suggest code completions when:
- seeing a TODO comment
- seeing a FIXME comment
- Confirm that the code meets the project's requirements (fully offline, on-device AI)
- Look for code duplication and suggest refactoring
- Suggest code completions when seeing a TODO or FIXME comment

# Custom review instructions for specific file patterns
path_instructions:
# TypeScript/JavaScript files
- path: "**/*.{ts,tsx,js,jsx}"
- path: "**/*.dart"
instructions: |
NextJS:
- Ensure that "use client" is being used
- Ensure that only features that allow pure client-side rendering are used
- NextJS best practices (including file structure, API routes, and static generation methods) are used.

TypeScript:
- Avoid 'any', use explicit types
- Prefer 'import type' for type imports
- Review for significant deviations from Google JavaScript style guide. Minor style issues are not a priority
- The code adheres to best practices associated with React
- The code adheres to best practices associated with React PWA
- The code adheres to best practices associated with SPA
- The code adheres to best practices recommended by lighthouse or similar tools for performance
- The code adheres to best practices associated with Node.js
- The code adheres to best practices recommended for performance

Security:
- No exposed API keys or sensitive data
- Use expo-secure-store for sensitive storage
- Validate deep linking configurations
- Check for common security vulnerabilities such as:
- SQL Injection
- XSS (Cross-Site Scripting)
- CSRF (Cross-Site Request Forgery)
- Insecure dependencies
- Sensitive data exposure

Internationalization:
- User-visible strings should be externalized to resource files (i18n)

# HTML files
- path: "**/*.html"
instructions: |
Review the HTML code against the google html style guide and point out any mismatches. Ensure that:
- The code adheres to best practices recommended by lighthouse or similar tools for performance

# CSS files
- path: "**/*.css"
instructions: |
Review the CSS code against the google css style guide and point out any mismatches. Ensure that:
- The code adheres to best practices associated with CSS.
- The code adheres to best practices recommended by lighthouse or similar tools for performance.
- The code adheres to similar naming conventions for classes, ids.

# Python files
- path: "**/*.{py}"
instructions: |
Python:
- Check for major PEP 8 violations and Python best practices.

# Solidity Smart Contract files
- path: "**/*.sol"
instructions: |
Solidity:
- Review the Solidity contracts for security vulnerabilities and adherence to best practices.
- Ensure immutability is used appropriately (e.g., `immutable` and `constant` where applicable).
- Ensure there are no unbounded loops that could lead to gas exhaustion.
- Verify correct and explicit visibility modifiers for all state variables and functions.
- Flag variables that are declared but used only once or are unnecessary.
- Identify potential gas optimization opportunities without compromising readability or security.
- Verify that any modification to contract logic includes corresponding updates to automated tests.
- Ensure failure paths and revert scenarios are explicitly handled and validated.
- Validate proper access control enforcement (e.g., Ownable, RBAC, role checks).
- Ensure consistent and correct event emission for all state-changing operations.
- Confirm architectural consistency with existing contracts (no unintended storage layout changes unless clearly documented).
- Flag major feature additions or architectural changes that were implemented without prior design discussion (if applicable).
- Flag pull requests that mix unrelated changes or multiple concerns in a single submission.
- Ensure security-sensitive logic changes are not introduced without adequate test coverage.
- Review for common smart contract vulnerabilities, including but not limited to:
- Reentrancy
- Improper input validation
- Access control bypass
- Integer overflows/underflows (if using unchecked blocks)
- Front-running risks where applicable


# Javascript/Typescript test files
- path: "**/*.test.{ts,tsx,js,jsx}"
instructions: |
Review test files for:
- Comprehensive coverage of component behavior
- Proper use of @testing-library/react-native
- Async behavior is properly tested
- Accessibility testing is included
- Test descriptions are sufficiently detailed to clarify the purpose of each test
- The tests are not tautological

# Solidity test files
- path: "**/*.test.{sol}"
instructions: |
Review test files for:
- Comprehensive coverage of contract behavior.
- Coverage of success paths, edge cases, and failure/revert scenarios.
- Proper validation of access control restrictions.
- Verification of event emissions where applicable.
- Explicit validation of state changes after each relevant function call.
- Adequate test updates whenever contract logic is modified.
- Deterministic behavior (tests should not rely on implicit execution order or shared mutable state).
- Clear and descriptive test names that reflect the intended behavior being validated.


# Asset files (images, fonts, etc.)
- path: "assets/**/*"
Flutter and Dart Best Practices:
- Ensure compliance with standard Effective Dart guidelines.
- Strongly encourage the use of `const` constructors for widgets to optimize rebuilding.
- Ensure Riverpod state management is implemented correctly; state should not be mutated directly.
- Check for memory leaks (e.g., missing `dispose()` calls for TextControllers, AnimationControllers, etc.).
- Ensure heavy tasks (like SQLite DB generation or ONNX model inference) are handled asynchronously without blocking the main UI thread.
- No hardcoded secrets or API keys (though this is an offline app, keep security strict).
- Ensure error handling is robust, particularly around the ONNX model execution and database reads.

- path: "scripts/**/*.py"
instructions: |
Review asset files for:
- Image optimization (appropriate size and format)
- Proper @2x and @3x variants for different screen densities
- SVG assets are optimized
- Font files are licensed and optimized
Python (Database Generation):
- Ensure standard PEP 8 compliance.
- Verify that the SQLite generation script handles database connections and closures securely.
53 changes: 53 additions & 0 deletions .github/workflows/release_apk.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Build and Upload APK

on:
release:
types: [published]

permissions:
contents: write

jobs:
build:
name: Build APK and Attach to Release
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '17'

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'

- name: Install Python dependencies
run: |
python -m pip install --upgrade pip
pip install numpy onnxruntime transformers

- name: Generate SQLite Database
run: python scripts/generate_exercise_db.py

- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: 'stable'
cache: true

- name: Install Flutter dependencies
run: flutter pub get

- name: Build APK
run: flutter build apk --release

- name: Upload APK to Release
uses: softprops/action-gh-release@v2
with:
files: build/app/outputs/flutter-apk/app-release.apk
Loading
Loading