mlmihjaz commited on
Commit
cc179f5
Β·
1 Parent(s): 2846662

Restore ECHO 3D README and HF metadata

Browse files
Files changed (1) hide show
  1. README.md +59 -5
README.md CHANGED
@@ -1,11 +1,65 @@
1
  ---
2
- title: Echo
3
- emoji: πŸš€
4
- colorFrom: pink
5
- colorTo: purple
6
  sdk: docker
 
7
  pinned: false
8
  license: mit
 
9
  ---
10
 
11
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
+ title: ECHO 3D
3
+ emoji: 🎀
4
+ colorFrom: blue
5
+ colorTo: yellow
6
  sdk: docker
7
+ app_port: 7860
8
  pinned: false
9
  license: mit
10
+ short_description: 3D vocab trainer with seasonal weather.
11
  ---
12
 
13
+ # ECHO 3D
14
+
15
+ A vocabulary trainer with a full 3D world and seasonal weather progression. The player listens to a spoken English word and types it back. Mastering words in each grade unlocks the next weather stage β€” from Sunny mornings all the way to a final Ice Age blizzard.
16
+
17
+ Built with **Vite + Three.js + GSAP** on the frontend, **Node + Express + SQLite** on the backend, packaged as a single Docker image.
18
+
19
+ ---
20
+
21
+ ## Features
22
+
23
+ - 7 weather stages: Sunny β†’ Cloudy β†’ Drizzle β†’ Mist β†’ Thunderstorm β†’ First Snow β†’ Ice Age
24
+ - Procedural scene: sun + moon, day/night cycle, forest, sea, fish, shark, cranes, goats, penguins, sprite clouds, line-segment rain, soft-flake snow, forked lightning, sea fog
25
+ - Medal journey panel (bronze β†’ silver β†’ gold β†’ trophy)
26
+ - TTS via StreamElements (Polly), Google Translate, or browser SpeechSynthesis (with a Random-voice option)
27
+ - File-based sound library β€” drop audio into `public/sounds/<category>/` and list it in `manifest.json`
28
+ - **Admin dashboard** at `/admin` for managing users, online activity, exporting/importing the DB
29
+ - Boot loader with progress bar
30
+
31
+ ## Admin login
32
+
33
+ A fresh deploy ships with one admin account ready to go. Default credentials live in code as a fallback but can be overridden by environment variables on the Space:
34
+
35
+ - `ADMIN_SEED_EMAIL` β€” defaults to `admin@echo.app`
36
+ - `ADMIN_SEED_PWD` β€” defaults to a random value baked into the source
37
+
38
+ > ⚠ Set `ADMIN_SEED_PWD` in **Space Settings β†’ Variables and secrets** before the first boot if you want a private password. The seed only runs once per fresh DB.
39
+
40
+ ## URLs
41
+
42
+ - `/` β€” the game (public, anyone can register and play)
43
+ - `/?admin` or `#admin` β€” the admin dashboard (admin sign-in required)
44
+ - `/admin` β€” also opens the dashboard (the backend serves index.html for unknown routes)
45
+
46
+ ## Architecture
47
+
48
+ - **Frontend**: Vite + Three.js, built to `dist/`
49
+ - **Backend**: Node 22+ Express + built-in `node:sqlite`, serves the frontend AND the `/api/*` REST endpoints
50
+ - **Database**: a single SQLite file at `$DB_DIR/echo.db`. Default `/data/echo.db` in the container β€” mount Persistent Storage at `/data` on HF to keep data across restarts.
51
+
52
+ ## Local development
53
+
54
+ ```bash
55
+ npm install
56
+ cd backend && npm install && cd ..
57
+ npm run dev # vite-only frontend (localStorage fallback)
58
+ # OR full stack:
59
+ npm run build
60
+ cd backend && node --experimental-sqlite server.js # http://localhost:7860
61
+ ```
62
+
63
+ ## License
64
+
65
+ MIT