No description
  • Rust 81%
  • CSS 8.1%
  • Shell 7.2%
  • Python 2.2%
  • Makefile 1.3%
  • Other 0.2%
Find a file
Kristof 1d4ba40cfc Add pre-built release assets and simplify quick-start docs
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>
2026-06-17 16:51:32 +02:00
assets Add pre-built release assets and simplify quick-start docs 2026-06-17 16:51:32 +02:00
cm50_server Refactor theme system and update component styles 2026-06-17 07:04:21 +02:00
cm50_ui Fix build paths and add local installation script 2026-06-17 07:40:32 +02:00
scripts Add pre-built release assets and simplify quick-start docs 2026-06-17 16:51:32 +02:00
.gitignore Add CM50 app source — Dioxus web frontend with mock data and AI layer 2026-06-17 06:40:49 +02:00
BUILD_SINGLE_FILE.md Add single-file HTML builder for CM50 app 2026-06-17 07:30:25 +02:00
Cargo.lock Fix embedded WASM loading in single-file HTML builder 2026-06-17 07:33:53 +02:00
Cargo.toml Refactor theme system and update component styles 2026-06-17 07:04:21 +02:00
index.html Add pre-built release assets and simplify quick-start docs 2026-06-17 16:51:32 +02:00
INSTALL.md Add pre-built release assets and simplify quick-start docs 2026-06-17 16:51:32 +02:00
Makefile Fix Forgejo API calls: strip .git from repo name, add auth to fetch 2026-06-17 08:07:07 +02:00
README.md Add pre-built release assets and simplify quick-start docs 2026-06-17 16:51:32 +02:00

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:

  1. Downloads the latest release from Forgejo
  2. Extracts the app
  3. Starts HTTP server on port 8000
  4. 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

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)