exocore-docs / docs /projects /README.md
ChoruYt's picture
Upload 151 files
dc2b30a verified
|
Raw
History Blame Contribute Delete
3.28 kB

Project Nodes

A Project Node is one isolated workspace inside the panel. Every node has its own filesystem, run command, env vars, package manager state, and live runtime stats. The Dashboard renders them as cards (home/ProjectNodeCard.tsx) and the manager modal (home/FileManager.tsx) lets you create / archive / delete / browse them.

Visual

The Dashboard capture below shows where the project grid lives (top of the "Project Nodes" section). Without an active user account it redirects to login — sign in to see live cards.

Desktop Mobile
Dashboard — desktop Dashboard — mobile

Card anatomy

┌───────────────────────────────┐
│  ▦ project-name      [⋮]      │
│  language · template          │
├───────────────────────────────┤
│  status: Running / Idle /…    │
│  CPU 7 %  ·  RAM 142 MB       │
├───────────────────────────────┤
│   [ Open ]   [ Run ]   [ ⋮ ]  │
└───────────────────────────────┘

Card actions:

  • Opennavigate(/editor?project=${id}) (deep-links into the IDE)
  • Run → POST editor/runtime/start
  • ⋮ menu → Rename · Stop · Restart · Archive · Delete · Duplicate

Create wizard

Triggered by the + New Project quick action. Steps:

  1. Pick a templateeditor/templates provides Node.js, Python, Static HTML, React/Vite, Express, Flask, Next.js, Vanilla, "Empty".
  2. Name + slug — auto-slugged with collision detection.
  3. Select runtime — Node 20 / 22, Python 3.10 / 3.11 / 3.12, Bun, Deno.
  4. Initial files — preview tree from the template; allow tweaks.
  5. Confirm + create → spawns project under exocore-web/uploads/<id>/, records metadata in editor/projects and navigates straight into it.

Source: home/CreateProjectWizard.tsx.

File manager modal

Opened from Quick Actions → Project Nodes. Shows:

  • All nodes (active + archived) with sort by name / last opened / size.
  • Storage quota bar (per plan: free 1 GB, pro 10 GB, owner unlimited).
  • Bulk actions: archive, restore, delete, export ZIP.

Backend routes used

Route Verb Source
/exocore/api/editor/projects GET List projects
/exocore/api/editor/projects POST Create project
/exocore/api/editor/projects/:id PATCH Rename / archive
/exocore/api/editor/projects/:id DELETE Delete
/exocore/api/editor/runtime/start POST Spawn process
/exocore/api/editor/runtime/stop POST SIGTERM
/exocore/api/editor/runtime/stats GET CPU / RAM tick

(Wired in routes/editor/projects.ts and routes/editor/runtime.ts.)