No description
  • Rust 83.1%
  • CSS 8.4%
  • Shell 5%
  • Python 2.2%
  • Makefile 1.3%
Find a file
Kristof fd6075b02c Add Forgejo/curl-based upload and update documentation
- 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>
2026-06-17 07:41:20 +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 Forgejo/curl-based upload and update documentation 2026-06-17 07:41:20 +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
INSTALL.md Add one-command installation script for end users 2026-06-17 07:38:04 +02:00
Makefile Add Forgejo/curl-based upload and update documentation 2026-06-17 07:41:20 +02:00
README.md Add Forgejo/curl-based upload and update documentation 2026-06-17 07:41:20 +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

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:

  1. Downloads latest release from Forge
  2. Extracts to local directory
  3. Starts HTTP server on port 8000
  4. 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

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)