Implement: US: Integrate Expo Mobile Application into Monorepo (#16) #23

Merged
crisleo94 merged 1 commits from feature/expo-integration into main 2026-05-29 04:50:50 +00:00
Owner

Summary

Integrates an Expo React Native mobile application into the cloud-reader monorepo, along with a shared types/utilities package.

Changes

/mobile/ — Expo React Native App

  • Project config: package.json, app.json, tsconfig.json, babel.config.js
  • API client (mobile/src/api/): Axios instance with JWT auth + token refresh via AsyncStorage
  • Auth (mobile/src/context/AuthContext.tsx): Login, register, logout with token persistence
  • Navigation (mobile/src/navigation/): Auth stack (Login/Register) + Main tabs (Library/Search/Settings)
  • Screens: LoginScreen, RegisterScreen, LibraryScreen, SearchScreen, SettingsScreen

/packages/shared/ — Shared Package

  • @cloud-reader/shared with domain types, API endpoint constants, validation utils
  • Shared types: Book, Bookmark, Note, User, PaginatedResponse, TokenResponse
  • Shared utils: isValidEmail(), validatePasswordStrength(), formatRelativeTime()

Root Config

  • Updated package.json workspaces to include "mobile" and "packages/shared"

Spec

  • docs/backend/009-expo-integration.md — full spec doc

Related Issues

## Summary Integrates an Expo React Native mobile application into the `cloud-reader` monorepo, along with a shared types/utilities package. ## Changes ### `/mobile/` — Expo React Native App - **Project config**: `package.json`, `app.json`, `tsconfig.json`, `babel.config.js` - **API client** (`mobile/src/api/`): Axios instance with JWT auth + token refresh via `AsyncStorage` - **Auth** (`mobile/src/context/AuthContext.tsx`): Login, register, logout with token persistence - **Navigation** (`mobile/src/navigation/`): Auth stack (Login/Register) + Main tabs (Library/Search/Settings) - **Screens**: LoginScreen, RegisterScreen, LibraryScreen, SearchScreen, SettingsScreen ### `/packages/shared/` — Shared Package - `@cloud-reader/shared` with domain types, API endpoint constants, validation utils - Shared types: `Book`, `Bookmark`, `Note`, `User`, `PaginatedResponse`, `TokenResponse` - Shared utils: `isValidEmail()`, `validatePasswordStrength()`, `formatRelativeTime()` ### Root Config - Updated `package.json` workspaces to include `"mobile"` and `"packages/shared"` ### Spec - `docs/backend/009-expo-integration.md` — full spec doc ## Related Issues - Closes #16 - Duplicate #15 closed
marko added 1 commit 2026-05-29 02:52:44 +00:00
- Add mobile/ directory with Expo React Native project
- Create API client with JWT auth and token refresh using AsyncStorage
- Implement AuthContext for login/register/logout flow
- Add screens: Login, Register, Library, Search, Settings
- Set up React Navigation with AuthStack and MainTabs
- Create packages/shared/ with shared types and utilities
- Add shared validation utilities (email, password strength)
- Update root package.json workspaces to include mobile + shared
- Add spec document docs/backend/009-expo-integration.md
crisleo94 approved these changes 2026-05-29 04:50:46 +00:00
crisleo94 merged commit 656d20879f into main 2026-05-29 04:50:50 +00:00
This repo is archived. You cannot comment on pull requests.
No Reviewers
No labels
2 Participants
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: HermesFactory/cloud-reader#23