- Rust 81%
- CSS 8.1%
- Shell 7.2%
- Python 2.2%
- Makefile 1.3%
- Other 0.2%
Bundle compiled JS/WASM/CSS and index.html as release artifacts, add a serve-release.sh helper, and update README/INSTALL to lead with the download-based quick start (no Rust toolchain required). Fix tar extraction path in INSTALL.md to unpack into a dedicated cm50/ directory. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| assets | ||
| cm50_server | ||
| cm50_ui | ||
| scripts | ||
| .gitignore | ||
| BUILD_SINGLE_FILE.md | ||
| Cargo.lock | ||
| Cargo.toml | ||
| index.html | ||
| INSTALL.md | ||
| Makefile | ||
| README.md | ||
CM50 — Cooperatives & Mutuals Leadership Circle
A mobile-first, fully responsive event & collaboration app for CM50, the leadership circle of the world's top cooperatives and mutuals. Built with Dioxus 0.7 (web).
This is a front-end-only mock-up: all data lives locally in the frontend
(src/data/mock_data.rs) and the "AI" is deterministic and local
(src/services/ai_mock.rs). The architecture is backend-ready — models are plain data
and a thin service layer (src/services/) isolates persistence and AI so they can be
swapped for real backend calls later.
Installation
✅ Quick Start (No Build Required)
Download the pre-built release and run in one command:
curl -sL https://forge.ourworld.tf/coopcloud_code/cm50_app/raw/main/scripts/install.sh | bash
Automatically:
- ✅ Downloads the latest release from Forgejo
- ✅ Extracts the app
- ✅ Starts HTTP server on port 8000
- ✅ Opens in browser
Requirements: Python 3 (plus curl/wget and tar)
Build From Source
No Rust toolchain needed for the quick start above. To build locally instead:
bash scripts/install_local.sh
Checks for Rust, Cargo, and the Dioxus CLI, builds the production app, then serves it on port 8000.
Requirements: Rust, Cargo, Python 3
For Developers
make setup # Install Rust + Dioxus (one-time)
make run # Dev server with hot-reload
make build # Production build
make release # Build, package, and upload to Forgejo
Sharing Pre-Built Releases
For releasing to other developers:
export FORGE_TOKEN='your-token'
make release # Builds, creates archive, uploads to Forgejo
Note: The pre-built release is published on the Forgejo server, so the
curl … | bash quick start works without a local Rust toolchain. If the release
asset is ever missing, install.sh falls back to guiding users through a local build.
See INSTALL.md for troubleshooting.
Open the printed http://127.0.0.1:<port>, then click Enter the Circle
(or Continue as the demo organiser). Demo user: Alex Moreau (Super-Admin).
Building for Distribution
Single-Folder Distribution (Recommended)
make dist # Create portable web folder
Output: cm50_ui/target/dx/cm50_ui/release/web/
Share with users:
# Users receive the folder and run:
python3 -m http.server 8000
open http://localhost:8000
Upload to Forge release:
make upload # Pack & upload web folder to latest Forge release
See BUILD_SINGLE_FILE.md and PORTABLE_BUILD.md for details.
All Make Targets
make # Show this help
make setup # Install Rust WASM target + Dioxus CLI
make install # Alias for setup
make run # Dev server (hot-reload)
make build # Production web build
make dist # Create portable distribution folder
make upload # Upload distribution to Forge release
make clean # Remove build artifacts
make help # Show all available targets
What's inside
12 sections, reachable via the desktop sidebar / mobile bottom-nav + "More" sheet:
- Home dashboard · Directory (filter + AI search) · My Profile (AI-assisted editor)
- Chat (private + group, AI intro/summarize/next-step) · Groups (admin-only create)
- News feed (admin publish) · Knowledge Base (search/filter + AI actions)
- AI Assistant ("ask the CM50 brain") · Interviews (scripted Q&A → profile section)
- Recordings (video placeholder + transcript + AI) · Event Program (Today / Full / My agenda)
- Admin area (manage participants, admins, groups, news; event settings)
A floating AI assistant is available on every screen.
Layout
src/
main.rs · app.rs · routes.rs
data/ models.rs · mock_data.rs
services/ ai_mock.rs · search.rs · permissions.rs · storage.rs
components/ ui · navigation · layout · cards · ai
pages/ home · directory · profile · participant_detail · chat · groups ·
news · knowledge · knowledge_article · assistant · interviews ·
recordings · event_program · admin · login
assets/theme.css # bespoke CM50 design system (no CSS framework)