No description
This repository has been archived on 2026-10-03. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
  • TypeScript 98.6%
  • CSS 1%
  • JavaScript 0.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-05-20 11:53:12 +02:00
app Add shared SelectModal and improve resource screens 2026-05-20 11:50:41 +02:00
assets refactor: address code review findings across auth, routing and UI 2026-05-17 20:27:28 +02:00
components Add shared SelectModal and improve resource screens 2026-05-20 11:50:41 +02:00
constants feat: DSFR component library, media upload, and soft email verification 2026-05-18 15:38:20 +02:00
context feat: DSFR component library, media upload, and soft email verification 2026-05-18 15:38:20 +02:00
services Add shared SelectModal and improve resource screens 2026-05-20 11:50:41 +02:00
utils refactor: address code review findings across auth, routing and UI 2026-05-17 20:27:28 +02:00
.env.example refactor: address code review findings across auth, routing and UI 2026-05-17 20:27:28 +02:00
.gitignore feat: initialize Expo project with DSFR design system 2026-05-11 18:54:39 +02:00
app.json feat: DSFR component library, media upload, and soft email verification 2026-05-18 15:38:20 +02:00
CLAUDE.md feat: initialize Expo project with DSFR design system 2026-05-11 18:54:39 +02:00
eslint.config.js feat: initialize Expo project with DSFR design system 2026-05-11 18:54:39 +02:00
global.css feat: DSFR component library, media upload, and soft email verification 2026-05-18 15:38:20 +02:00
metro.config.js feat: initialize Expo project with DSFR design system 2026-05-11 18:54:39 +02:00
nativewind-env.d.ts feat: initialize Expo project with DSFR design system 2026-05-11 18:54:39 +02:00
package.json feat: DSFR component library, media upload, and soft email verification 2026-05-18 15:38:20 +02:00
pnpm-lock.yaml feat: DSFR component library, media upload, and soft email verification 2026-05-18 15:38:20 +02:00
pnpm-workspace.yaml feat: DSFR component library, media upload, and soft email verification 2026-05-18 15:38:20 +02:00
postcss.config.mjs feat: initialize Expo project with DSFR design system 2026-05-11 18:54:39 +02:00
README.md refactor: address code review findings across auth, routing and UI 2026-05-17 20:27:28 +02:00
tsconfig.json feat: initialize Expo project with DSFR design system 2026-05-11 18:54:39 +02:00

resources-relationnelles-mobile

Mobile client for the Ressources Relationnelles / CESIZen platform.

Expo (React Native) app using Expo Router, NativeWind v5, TypeScript strict, and the DSFR design tokens (French government design system).

Prerequisites

  • Node.js 20+
  • pnpm (the repo ships a pnpm-lock.yaml)
  • The sibling resources-relationnelles-api running locally
  • iOS Simulator / Android Emulator / Expo Go on a physical device

Setup

pnpm install
cp .env.example .env
# Edit .env to point at your local API (see below)
pnpm start

Environment variables

Copy .env.example to .env and set:

Variable Required Description
EXPO_PUBLIC_API_URL Yes Base URL of the API. The platform you run on changes what this should be, see the table below.

EXPO_PUBLIC_* variables are inlined into the JS bundle at build time. Do not put secrets there.

Choosing EXPO_PUBLIC_API_URL

The API listens on http://localhost:5172 from the host machine. The right URL for the mobile app depends on where it runs:

Target URL
iOS Simulator http://localhost:5172
Android Emulator http://10.0.2.2:5172
Expo Go on a physical device http://<your-LAN-IP>:5172
Web (expo start --web) http://localhost:5172

If the app boots but every request hangs or returns Network request failed, this is almost always the cause.

Scripts

pnpm start            # Expo dev server (scan QR or pick a platform)
pnpm android          # Launch on Android emulator
pnpm ios              # Launch on iOS simulator
pnpm web              # Open in a browser
pnpm lint             # Run expo lint (ESLint)

Architecture

See CLAUDE.md for the full conventions reference. Quick map:

  • app/ — file-based routes (Expo Router). (tabs)/ is the bottom-nav root.
  • app/_layout.tsx — root layout, font loading, auth/route guard.
  • services/ — API client (api.ts), auth flow (auth.ts), resources/comments (resources.ts).
  • context/ — AuthContext (JWT + SecureStore), ThemeContext (light/dark DSFR palette).
  • components/ — shared UI primitives (Tag, Footer).
  • utils/ — small helpers (formatDate).
  • constants/colors.ts — DSFR-flavored design tokens for both themes.