Document fullstack app commands and fix Moon config

This commit is contained in:
Asep Haryana Saputra
2026-05-22 13:04:43 +00:00
parent da18375c92
commit 1712108382
3 changed files with 50 additions and 4 deletions
+50
View File
@@ -55,6 +55,46 @@ jupyter notebook notebook.ipynb
There is no project test suite, lint command, or build system configured in the current repository. There is no project test suite, lint command, or build system configured in the current repository.
## Fullstack app commands
The TypeScript application scaffold lives at the repository root and uses Bun workspaces with Moon tasks.
Install dependencies:
```bash
bun install
```
Run all development tasks through Moon:
```bash
bun run dev
```
Run type checks:
```bash
bun run typecheck
```
Run production builds:
```bash
bun run build
```
Run the API directly:
```bash
cd apps/api && bun run start
```
Run the web app directly:
```bash
cd apps/web && bun run dev
```
## High-level architecture ## High-level architecture
- `Machine_Learning/preprocessing.py` prepares the training dataset locally. It extracts three source ZIP files, merges selected class folders into `dataset/`, maps selected Mandarin labels from Dataset 3 via `desc.json`, removes known problematic image files, then creates `dataset.zip` for upload to Google Drive/Colab. - `Machine_Learning/preprocessing.py` prepares the training dataset locally. It extracts three source ZIP files, merges selected class folders into `dataset/`, maps selected Mandarin labels from Dataset 3 via `desc.json`, removes known problematic image files, then creates `dataset.zip` for upload to Google Drive/Colab.
@@ -62,6 +102,16 @@ There is no project test suite, lint command, or build system configured in the
- `Machine_Learning/save_model.py` is the production export step. It loads `best_model/best_model.keras`, rebuilds a clean EfficientNetV2B0 architecture without training-time augmentation layers, copies weights into that model, exports `model/saved_model/`, and writes `model/model.tflite`. - `Machine_Learning/save_model.py` is the production export step. It loads `best_model/best_model.keras`, rebuilds a clean EfficientNetV2B0 architecture without training-time augmentation layers, copies weights into that model, exports `model/saved_model/`, and writes `model/model.tflite`.
- TensorFlow.js export is intentionally done with the `tensorflowjs_converter` CLI rather than from Python to avoid protobuf/runtime conflicts documented in the README. - TensorFlow.js export is intentionally done with the `tensorflowjs_converter` CLI rather than from Python to avoid protobuf/runtime conflicts documented in the README.
## Fullstack application architecture
The root TypeScript workspace is a Bun + Moon monorepo:
- `apps/web/` contains the React + Vite + TypeScript frontend with React Router, TanStack Query, Zustand, Tailwind, and shadcn/ui-style components.
- `apps/api/` contains the Elysia backend with health/status routes and Drizzle/PostgreSQL configuration.
- `packages/shared/` contains shared TypeScript types and utilities consumed by both apps.
The backend reads `DATABASE_URL` for Drizzle/PostgreSQL, but the initial health/status endpoints do not require a live database connection.
## Model labels and dataset mapping ## Model labels and dataset mapping
The classifier targets four Indonesian labels: The classifier targets four Indonesian labels:
-2
View File
@@ -14,7 +14,6 @@ tasks:
- package.json - package.json
- tsconfig.json - tsconfig.json
- drizzle.config.ts - drizzle.config.ts
- ../../packages/shared/dist/**/*
outputs: outputs:
- dist - dist
typecheck: typecheck:
@@ -26,4 +25,3 @@ tasks:
- package.json - package.json
- tsconfig.json - tsconfig.json
- drizzle.config.ts - drizzle.config.ts
- ../../packages/shared/dist/**/*
-2
View File
@@ -18,7 +18,6 @@ tasks:
- vite.config.ts - vite.config.ts
- tailwind.config.ts - tailwind.config.ts
- postcss.config.js - postcss.config.js
- ../../packages/shared/dist/**/*
outputs: outputs:
- dist - dist
typecheck: typecheck:
@@ -32,4 +31,3 @@ tasks:
- tsconfig.node.json - tsconfig.node.json
- vite.config.ts - vite.config.ts
- tailwind.config.ts - tailwind.config.ts
- ../../packages/shared/dist/**/*