- Rust 83.1%
- CSS 8.4%
- Shell 5%
- Python 2.2%
- Makefile 1.3%
- Replace gh CLI with curl-based upload for Forgejo API - scripts/upload-forge.sh: Upload distribution to Forgejo releases - Parses git remote URL to extract owner/repo - Creates release if needed (v0.1.0) - Uploads archive using Forgejo REST API - Works without gh CLI (just needs curl) - Update Makefile upload target to use new script - Update README with both installation methods: - End users: scripts/install.sh (download from Forge) - Developers: scripts/install_local.sh (build from source) Installation workflow for users: 1. scripts/install.sh (downloads latest release) 2. Starts server on port 8000 3. Opens browser automatically Development workflow: 1. make setup (install dependencies) 2. make run (dev server) 3. make release (build + create + upload) Works with Forgejo/Gitea API without requiring gh CLI. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| cm50_server | ||
| cm50_ui | ||
| scripts | ||
| .gitignore | ||
| BUILD_SINGLE_FILE.md | ||
| Cargo.lock | ||
| Cargo.toml | ||
| 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
For End Users (No Repository Needed)
One command to download and run:
bash scripts/install.sh
Or pipe from curl:
curl -sL https://forge.ourworld.tf/coopcloud_code/cm50_app/raw/main/scripts/install.sh | bash
Requirements: Python 3 only (built-in on most systems)
What it does:
- ✅ Downloads latest release from Forge
- ✅ Extracts to local directory
- ✅ Starts HTTP server on port 8000
- ✅ Opens in browser automatically
See INSTALL.md for details and troubleshooting.
For Developers (Building from Source)
One command to build and run:
bash scripts/install_local.sh
Or use make:
make setup # Install Rust + Dioxus (one-time)
make run # Development server with hot-reload
make build # Production web build
make release # Build, create distribution, and upload
Requirements: Rust, Cargo, Dioxus CLI
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)