Skip to main content

Routes

Route Overview

SCHEMA-Lab implements a comprehensive routing architecture designed for intuitive navigation and effective task management. The application's URL structure is organized into logical categories that support user workflows for managing tasks, workflows, and experiments.

Route Categories

General Routes

These routes are accessible to all users, whether authenticated or not.

RouteDescription
/Home page and landing screen
/authAuthentication portal for login and registration
/aboutusInformation about the SCHEMA-Lab project and team
/learnmoreEducational resources and additional information

Protected Routes

These routes require user authentication to access.

RoutePurpose
/logoutSecure user logout process
/dashboardMain control center for tasks and workflows
/runtaskInterface for creating and executing single tasks
/runworkflowtaskInterface for creating and orchestrating workflow tasks
/preferencesUser settings and configuration options

Experiment Management

Experiment Routes

SCHEMA-Lab provides dedicated routes for managing experiments (collections of related tasks).

RouteFunction
/experimentLists all available experiments
/viewDisplays selected experiment details
/createInterface for creating new experiments
/previewPreviews experiment configuration before creation
/edit/:creator/:nameEdit interface for existing experiments

Experiment Details

Each experiment has detailed views accessed through parameterized routes.

/experiment-details/:creator/:name

This route displays comprehensive information about a specific experiment identified by creator and name parameters. It includes:

  • General experiment metadata
  • Associated tasks
  • Execution statistics (Submission, Update)
  • Status information

Nested Experiment Routes

Nested RouteContent
/experiment-details/:creator/:name/descriptionDetailed experiment descriptions and documentation

Task Management

Task Detail Routes

Individual tasks can be examined through dedicated detail views:

/task-details/:uuid

This route provides access to specific task information identified by the task's unique UUID.

Nested Task Routes

Nested RouteContent
/task-details/:uuid/executorsDetails about the task executors and runtime environment
/task-details/:uuid/inputsTask input parameters and configurations
/task-details/:uuid/outputsTask results and output artifacts

Adding New Routes

To extend SCHEMA-Lab with new functionality, add routes following this pattern:

  1. Create your component in the appropriate directory
  2. Import it in routes.jsx
  3. Add a new Route element with the desired path
  4. For protected functionality, place inside the ProtectedRoute element
// Example of adding a new protected route
<Route element={<ProtectedRoute />}>
{/* Existing routes */}

{/* New custom route */}
<Route path="/custom-feature" element={<CustomFeature />} />
</Route>

Best Practices

When working with SCHEMA-Lab routes:

  1. Use the established URL patterns for consistency
  2. Leverage route parameters for dynamic content
  3. Implement proper authentication checks for protected routes
  4. Consider creating nested routes for related functionality
  5. Use descriptive route names that reflect their purpose