Packages

Multi-surface application runtime for Elixir. One TEA module renders to terminal, browser (LiveView), SSH, and MCP (agents). 30+ widgets, flexbox + CSS grid, AI agent runtime, distributed swarm with CRDTs, time-travel debugging, session recording, sandboxed REPL, and agentic commerce.

Current section

Files

Jump to
raxol lib raxol_web controllers project_controller.ex
Raw

lib/raxol_web/controllers/project_controller.ex

defmodule RaxolWeb.ProjectController do
use RaxolWeb, :controller
def index(conn, _params) do
# Mock project data
projects = [
%{
id: 1,
name: "Raxol Web App",
description: "Modern web application built with Phoenix",
status: "active",
progress: 75
},
%{
id: 2,
name: "Mobile Dashboard",
description: "React Native mobile app",
status: "active",
progress: 45
},
%{
id: 3,
name: "API Gateway",
description: "Microservices API gateway",
status: "completed",
progress: 100
},
%{
id: 4,
name: "Data Analytics",
description: "Real-time analytics platform",
status: "pending",
progress: 0
}
]
render(conn, :index, projects: projects)
end
def new(conn, _params) do
render(conn, :new)
end
def create(conn, params) do
# Mock project creation
new_project = %{
id: 5,
name: params["name"] || "New Project",
description: params["description"] || "Project description",
status: "active",
progress: 0
}
conn
|> put_flash(:info, "Project created successfully")
|> redirect(to: ~p"/projects/#{new_project.id}")
end
def show(conn, %{"id" => id}) do
# Mock project data by ID
project = %{
id: String.to_integer(id),
name: "Project #{id}",
description: "Detailed description of project #{id}",
status: "active",
progress: 65,
team_members: [
%{id: 1, name: "John Doe", role: "Lead Developer"},
%{id: 2, name: "Jane Smith", role: "UI/UX Designer"}
],
tasks: [
%{id: 1, title: "Setup development environment", status: "completed"},
%{id: 2, title: "Design database schema", status: "in_progress"},
%{id: 3, title: "Implement authentication", status: "pending"}
]
}
render(conn, :show, project: project)
end
def edit(conn, %{"id" => id}) do
# Mock project data for editing
project = %{
id: String.to_integer(id),
name: "Project #{id}",
description: "Description for project #{id}",
status: "active"
}
render(conn, :edit, project: project)
end
def update(conn, %{"id" => id} = params) do
# Mock update logic
_updated_project = %{
id: String.to_integer(id),
name: params["name"] || "Updated Project",
description: params["description"] || "Updated description",
status: "active"
}
conn
|> put_flash(:info, "Project updated successfully")
|> redirect(to: ~p"/projects/#{id}")
end
def delete(conn, %{"id" => _id}) do
# Mock delete logic
conn
|> put_flash(:info, "Project deleted successfully")
|> redirect(to: ~p"/projects")
end
end