Skip to content

feat: add expo module - #467

Merged
lcaohoanq merged 3 commits into
mainfrom
feature/add-expo-module
Oct 4, 2026
Merged

lcaohoanq merged 3 commits into
mainfrom
feature/add-expo-module

Conversation

@lcaohoanq

@lcaohoanq lcaohoanq commented Jul 23, 2026 •

Copy link
Copy Markdown
Member

Summary by CodeRabbit

  • New Features
    • Launched the BIT Learning mobile app with secure sign-in (email/password and Google OAuth).
    • Added tabs for home, course search, learning progress, and profile (view/edit/logout).
    • Added course details, lesson playback (video), quizzes, lesson completion, certificates, and sharing/saving PDFs.
    • Enabled deep links to open courses directly in the app and redirected unauthenticated/authenticated users appropriately.
  • Documentation
    • Added initial mobile app setup docs, environment variable configuration guidance, and backend redirect/app-link requirements.

@cursor

cursor Bot commented Jul 23, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@netlify

netlify Bot commented Jul 23, 2026 •

Copy link
Copy Markdown

❌ Deploy Preview for bit-learning failed.

Name Link
🔨 Latest commit 5dadedc
🔍 Latest deploy log https://app.netlify.com/projects/bit-learning/deploys/6a68ca9ceb4b350007953d18

@coderabbitai

coderabbitai Bot commented Jul 23, 2026 •

Copy link
Copy Markdown

Review Change Stack

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 1ae0061f-686e-4cc9-87eb-f9fd3d8a36f7

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds a new Expo mobile learner app with environment and build configuration, authentication, typed API access, protected navigation, course discovery, enrollment, lessons, certificates, profile management, and Android native configuration.

Changes

Mobile learner application

Layer / File(s) Summary
Expo foundation and shared UI
apps/mobile/.env.example, apps/mobile/README.md, apps/mobile/app.json, apps/mobile/eas.json, apps/mobile/package.json, apps/mobile/tsconfig.json, apps/mobile/lib/types.ts, apps/mobile/components/ui.tsx
Adds Expo and EAS configuration, environment guidance, TypeScript settings, API/domain types, and reusable mobile UI components.
API and authentication flow
apps/mobile/lib/api.ts, apps/mobile/lib/learner.ts, apps/mobile/lib/session.ts, apps/mobile/providers/auth.tsx, apps/mobile/app/(auth)/*, apps/mobile/app/_layout.tsx, apps/mobile/app/index.tsx
Adds typed API requests with token refresh, secure session persistence, protected routing, email/password and Google authentication, registration, and root navigation setup.
Navigation and course browsing
apps/mobile/app/(tabs)/*, apps/mobile/app/course/[id].tsx, apps/mobile/app/open-mobile.tsx, apps/mobile/components/course-card.tsx
Adds tab navigation, home, course search, learning filters, profile display, course cards, enrollment, access-controlled lecture links, and deep-link routing.
Lessons, certificates, and profile editing
apps/mobile/app/lesson/[courseId]/[lectureId].tsx, apps/mobile/app/certificate/[courseId].tsx, apps/mobile/app/profile/edit.tsx, apps/mobile/lib/last-lecture.ts
Adds video, quiz, and text lessons with progress synchronization, last-lecture persistence, certificate download/sharing, and profile updates.
Android native build and runtime configuration
apps/mobile/android/*
Adds Gradle and wrapper configuration, React Native application bootstrapping, manifests, native resources, launcher assets, ProGuard rules, and Expo autolinking setup.

Estimated code review effort: 4 (Complex) | ~75 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Learner
  participant MobileApp
  participant AuthProvider
  participant SecureStore
  participant API
  Learner->>MobileApp: Open app
  MobileApp->>AuthProvider: Initialize authentication
  AuthProvider->>SecureStore: Load session
  MobileApp->>API: Fetch courses or lesson data
  API-->>MobileApp: Return learner data
  MobileApp-->>Learner: Render protected learner screen
Loading

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown

✅ Frontend build passed

All build checks for this pull request have completed successfully.

This PR is now green from CI and can be merged once required reviews are approved.

🔀 Branch feature/add-expo-module
📝 Commit 8893a0ab7c9c53f3aa4c9ebf17239a782fba2a2d
🕐 Run #426

@netlify

netlify Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

❌ Deploy Preview for bit-learning failed.

Name Link
🔨 Latest commit 449a554
🔍 Latest deploy log https://app.netlify.com/projects/bit-learning/deploys/6ac234c748fbf90008eb9ca2

@lcaohoanq
lcaohoanq merged commit 425a6fc into main Oct 4, 2026
2 of 7 checks passed
@github-actions

github-actions Bot commented Oct 4, 2026

Copy link
Copy Markdown

✅ Frontend build passed

All build checks for this pull request have completed successfully.

This PR is now green from CI and can be merged once required reviews are approved.

🔀 Branch feature/add-expo-module
📝 Commit c1123f1c5819c1a48dee136248e628482d44d3eb
🕐 Run #489

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant