Skip to content
SelleoPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Let's Play

Let's Play is a cross-platform Arabic learning experience with a mobile learning app and a local administrator dashboard. The dashboard is a usable, read-only POC backed by deterministic fictional data.

Source of truth

OpenSpec is the source of truth for product behaviour, acceptance criteria, and non-goals. Read the relevant accepted change under openspec/changes/<change-id>/ before changing a learner or administrator flow. This README explains repository operation; it does not restate product requirements.

Workspace layout

  • apps/mobile — Expo SDK 57 learning application for Android, iOS, and web.
  • apps/dashboard — React Router framework-mode dashboard with local SSR and hydration.
  • packages/contracts — framework-independent dashboard read models and repository contract.
  • packages/design-tokens — shared brand primitives, platform semantic tokens, and dashboard CSS variables.
  • openspec — approved behaviour specifications and implementation records.

The dashboard currently uses an in-process mock adapter. Its future boundary is browser -> dashboard SSR -> dashboard-bff (NestJS) -> core API; no backend, HTTP API, authentication, persistence, or deployment is included in this POC.

Requirements

  • Node.js 24.18.0
  • pnpm 11.20.0 through Corepack

Install the locked workspace dependencies:

corepack enable
corepack pnpm install --frozen-lockfile

Run an app

pnpm dev:mobile
pnpm dev:dashboard

Run mobile commands from the repository root. The workspace starts Expo after building its required workspace dependencies.

dev:mobile starts Expo. Use pnpm --filter @lets-play/mobile web for the web target. dev:dashboard starts the local React Router development server and renders dashboard data on the first server response.

Quality commands

pnpm format
pnpm format:check
pnpm lint
pnpm typecheck
pnpm build
pnpm check

Turbo runs workspace tasks with a local cache. Development tasks are never cached; remote cache is disabled.

Dependency policy

Dependencies use exact versions and pnpm catalogs. Add or update a package only by changing the appropriate catalog entry and regenerating pnpm-lock.yaml. The workspace has a seven-day minimum release age to reduce supply-chain risk. The reviewed lockfile is trusted for repeatable frozen installs; new resolutions remain subject to the age gate.

POC boundaries

  • Dashboard data is fictional and read-only.
  • No NestJS service, database, authentication, API endpoint, analytics, hosting, CI, E2E suite, or editing workflow is included.
  • Recharts is the only dashboard charting library.
  • React Native and web do not share UI components. They share only contracts and design tokens where appropriate.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages