|
2 | 2 |
|
3 | 3 | ELIXIR Cloud Components (ECC) are lightweight, fast and reusable Web Components for operationalizing various [ELIXIR Cloud & AAI](https://elixir-cloud.dcc.sib.swiss/) and [GA4GH](https://ga4gh.org/) [Cloud](https://www.ga4gh.org/work_stream/cloud/) services. |
4 | 4 |
|
5 | | -<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --> |
6 | | - |
7 | | -[badge-all-contributors-image]: https://img.shields.io/badge/all_contributors-1-orange.svg?style=flat-square&color=%23F6DA80%20 |
8 | | - |
9 | | -<!-- ALL-CONTRIBUTORS-BADGE:END --> |
10 | | - |
11 | 5 | [![License][badge-license-image]][badge-license-url] |
12 | 6 | [![Chat][badge-chat-image]][badge-chat-url] |
13 | 7 |
|
| 8 | +## Documentation |
14 | 9 |
|
15 | | -### Packages |
| 10 | +For comprehensive guides, API references, and examples, visit our documentation: |
16 | 11 |
|
17 | | -| Name | Description | |
18 | | -|----------------------------|--------------------------------------------------------------------------------------------------------| |
19 | | -| @elixir-cloud/design | Encapsulation & Utility components to manage the headless yet constitent design accross ecc components | |
20 | | -| @elixir-cloud/tes | Collection of Web Components for interacting with TES (Task Execution Service) | |
21 | | -| @elixir-cloud/wes | Collection of Web Components for interacting with WES (Workflow Execution Service) | |
| 12 | +**[https://cloud-components.2.rahtiapp.fi/](https://cloud-components.2.rahtiapp.fi/)** |
22 | 13 |
|
23 | | -## Development Setup |
| 14 | +## Quick Start for Developers |
24 | 15 |
|
25 | 16 | ### Prerequisites |
26 | 17 |
|
27 | | -- Node.js (v16 or higher) |
| 18 | +- Node.js (v18 or higher) |
28 | 19 | - npm or yarn |
29 | 20 |
|
30 | | -### Getting Started |
| 21 | +### Development Setup |
| 22 | + |
| 23 | +1. **Clone the repository:** |
| 24 | + ```bash |
| 25 | + git clone https://github.com/elixir-cloud-aai/cloud-components.git |
| 26 | + cd cloud-components |
| 27 | + ``` |
| 28 | + |
| 29 | +2. **Install dependencies:** |
| 30 | + ```bash |
| 31 | + npm install |
| 32 | + ``` |
| 33 | + |
| 34 | +3. **Start development:** |
| 35 | + ```bash |
| 36 | + # Run the design package first (required by all other packages) |
| 37 | + npm run dev --workspace=@elixir-cloud/design |
31 | 38 |
|
32 | | -1. Clone the repository: |
| 39 | + # In another terminal, run a specific package: |
| 40 | + npm run dev --workspace=@elixir-cloud/<package-name> |
| 41 | + ``` |
33 | 42 |
|
34 | | - ```bash |
35 | | - git clone https://github.com/elixir-cloud-aai/cloud-components.git |
36 | | - ``` |
| 43 | +### Available Packages |
37 | 44 |
|
38 | | -2. Install dependencies: |
| 45 | +| Package | Description | |
| 46 | +|---------|-------------| |
| 47 | +| `@elixir-cloud/design` | Design system and utility components | |
| 48 | +| `@elixir-cloud/service-registry` | GA4GH Service Registry components | |
| 49 | +| `@elixir-cloud/cloud-registry` | ELIXIR Cloud Registry components | |
| 50 | +| `@elixir-cloud/trs` | GA4GH Tool Registry Service components | |
| 51 | +| `@elixir-cloud/trs-filer` | TRS-Filer service components | |
| 52 | +| `@elixir-cloud/wes` | GA4GH Workflow Execution Service components | |
39 | 53 |
|
40 | | - ```bash |
41 | | - npm install |
42 | | - ``` |
| 54 | +## Development Commands |
43 | 55 |
|
44 | | -3. Start the development server: |
| 56 | +```bash |
| 57 | +# Install dependencies |
| 58 | +npm install |
45 | 59 |
|
46 | | - - Run the design package first as it is required by all other packages as dependency: |
47 | | - ```bash |
48 | | - npm run dev --workspace=@elixir-cloud/design |
49 | | - ``` |
50 | | - - Run the specific package of choice from [here](#packages): |
51 | | - |
52 | | - ```bash |
53 | | - npm run dev --workspace=@elixir-cloud/<package-name> |
54 | | - ``` |
| 60 | +# Run specific package in development mode |
| 61 | +npm run dev --workspace=@elixir-cloud/<package-name> |
55 | 62 |
|
56 | | - e.g. |
57 | | - ```bash |
58 | | - npm run dev --workspace=@elixir-cloud/tes |
59 | | - ``` |
| 63 | +# Build all packages |
| 64 | +npm run build |
60 | 65 |
|
| 66 | +# Run tests |
| 67 | +npm test |
61 | 68 |
|
| 69 | +# Lint code |
| 70 | +npm run lint |
| 71 | + |
| 72 | +# Format code |
| 73 | +npm run format |
| 74 | +``` |
| 75 | + |
| 76 | +## Architecture |
| 77 | + |
| 78 | +ECC is built on modern web standards: |
| 79 | + |
| 80 | +- **Web Components**: Platform-agnostic, framework-independent components |
| 81 | +- **TypeScript**: Type-safe development with excellent IDE support |
| 82 | +- **Lit**: Efficient web component library for building reactive UIs |
| 83 | +- **Vite**: Fast build tool and development server |
| 84 | +- **Monorepo**: Organized workspace with shared dependencies and tooling |
62 | 85 |
|
63 | 86 | ## Contributing |
64 | 87 |
|
@@ -106,12 +129,11 @@ To get in touch with use, please use one of the following routes: |
106 | 129 | [chat board][badge-chat-url] or [email] the community |
107 | 130 | leaders. |
108 | 131 |
|
| 132 | +--- |
| 133 | + |
109 | 134 | [![logo-elixir][logo-elixir]][elixir] |
110 | 135 | [![logo-elixir-cloud-aai][logo-elixir-cloud-aai]][elixir-cloud-aai] |
111 | 136 |
|
112 | | -[all-contributors]: https://allcontributors.org/docs/en/specification |
113 | | -[all-contributors-bot]: https://allcontributors.org/docs/en/bot/overview |
114 | | -[all-contributors-types]: https://allcontributors.org/docs/en/emoji-key |
115 | 137 | [badge-license-image]: https://img.shields.io/badge/license-Apache%202.0-blue.svg |
116 | 138 | [badge-license-url]: http://www.apache.org/licenses/LICENSE-2.0 |
117 | 139 | [badge-chat-image]: https://img.shields.io/static/v1?label=chat&message=Slack&color=ff6994 |
|
0 commit comments