Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(workspace): Update main README.md #13514

Merged
merged 6 commits into from
Sep 16, 2024
Merged
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
100 changes: 55 additions & 45 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@
Altinn Studio is the next generation Altinn application development solution. Together with **Altinn Apps** and
**Altinn Platform**, this is a complete application development and hosting platform (Altinn 3).

Read the [Altinn Studio documentation](https://docs.altinn.studio/) to [get started](https://docs.altinn.studio/app/getting-started/).
We've also created a [introductory course for app development](https://docs.altinn.studio/app/app-dev-course/) that you can follow at your own pace.
Read the [Altinn Studio documentation][1] to [get started][2].
We've also created a [introductory course for app development][3] that you can follow at your own pace.

> **Note** Developing apps?
> If you just want to quickly perform tests of your app on your development machine you can follow the instructions on
> how to [run apps locally](https://github.com/Altinn/app-localtest). This repository is mainly the Designer-tool which is used to build and
> how to [run apps locally][4]. This repository is mainly the Designer-tool which is used to build and
> deploy apps.

## Getting Started with developing Altinn Studio
Expand All @@ -21,23 +21,22 @@ See deployment for notes on how to deploy the project on a live system.

### Prerequisites

1. Newest [.NET 8 SDK][2]
2. [Node.js][3] (version 16.\*)
3. Newest [Git][4]
4. A code editor - we like [Visual Studio Code][5]
- Also install [recommended extensions][6] (f.ex. [C# Dev Kit][7])
5. [Docker Desktop][8]
1. Newest [.NET 8 SDK][5]
2. [Node.js][6] (Latest LTS version, v20.\*)
3. Newest [Git][7]
4. A code editor - we like [Visual Studio Code][8]
- Also install [recommended extensions][9] (e.g. [C# Dev Kit][10])
5. Newest [Docker Desktop][11]
- Requires a license in most cases. Alternative options can be found [here][12]
6. If you are running Docker Desktop in Hyper-V mode you need to make sure your C drive is shared with Docker, Docker
Settings -> Shared Drives The File sharing tab is only available in Hyper-V mode, because in WSL 2 mode and Windows
container mode all files are automatically shared by Windows.
7. World Wide Web Publishing Service must be disabled, Services -> "World Wide Web Publishing Service" right click and
choose "stop"

_NOTE: If you want to use Safari on MacOS add `127.0.0.1 studio.localhost` to `/private/etc/hosts`_

### Running the solution locally

Clone the [Altinn Studio repo](https://github.com/Altinn/altinn-studio) and navigate to the folder.
Clone the [Altinn Studio repo][13] and navigate to the folder.

```bash
git clone https://github.com/Altinn/altinn-studio
Expand All @@ -59,7 +58,7 @@ The development environment consist of several services defined in [compose.yaml

- `studio-loadbalancer` which is a simple nginx-container using `nginx:alpine` directly, just used for development.
- `studio-designer` which is the actual build artifact with the .NET backend and the react-apps.
- `studio-repos` which is [gitea][20] with some custom config. More [here](gitea/README.md).
- `studio-repos` which is [gitea][14] with some custom config. More [here](gitea/README.md).
- `studio-db` which is a postgres database used by both `studio-designer` and `studio-repos`.
- `database_migrations` which is a one-time task container designed to perform and complete database migrations before exiting.

Expand All @@ -69,7 +68,7 @@ Run all parts of the solution in containers (Make sure docker is running), with
docker-compose up -d --build
```

The solution is now available locally at [studio.localhost](http://studio.localhost). (Just create a new user for testing. No email
The solution is now available locally at [studio.localhost][15]. (Just create a new user for testing. No email
verification required). If you make changes and want to rebuild a specific project using docker-compose this can be done using

```bash
Expand All @@ -88,7 +87,7 @@ parts of the solution. The load balancer is configured to route the traffic to t
particular use case. This is done by placing a `.env`-file in the same folder as compose.yaml. The load balancer
is configured with the following variables.

```text
```dotenv
DEVELOP_BACKEND=0
DEVELOP_DASHBOARD=0
DEVELOP_APP_DEVELOPMENT=0
Expand All @@ -106,13 +105,13 @@ When running the backend locally, the .env file will be used to fetch the client

If the setup script is run, an OAuth2 application will be created in Gitea, and the CLIENT_ID and CLIENT_SECRET values will be set in the .env file. Alternatively, you can set up the OAuth2 application yourself in Gitea and manually set the client ID and client secret values in the configuration.

If you want to work on creating apps locally, the [app-template-dotnet](https://github.com/Altinn/app-template-dotnet) repo
If you want to work on creating apps locally, the [app-template-dotnet][16] repo
should be cloned. If the templates repo is cloned in the same folder as altinn-studio, no changes needs to be done,
otherwise it should be referenced in `appsettings.development.json`.

```
```json
{
"GeneralSettings": {
"GeneralSettings": {
"TemplateLocation": "Path to src folder of app-template-dotnet repo",
"DeploymentLocation": "Path to src/deployment folder of app-template-dotnet repo",
"AppLocation": "Path to src/App folder of app-template-dotnet repo"
Expand Down Expand Up @@ -149,20 +148,24 @@ More about developing frontend [can be found here](frontend/README.md).

## Cypress tests

Some [integration tests](https://github.com/Altinn/altinn-studio/tree/main/frontend/testing/cypress) for studio have
been created with Cypress. More about these tests [can be found here](frontend/testing/cypress/README.md).
Some [integration tests][17] for studio have been created with Cypress. More about these tests can be found [here](frontend/testing/cypress/README.md)

## Playwright tests

We are currently in the process of replaceing Cypress with Playwright.
Playwright is used in some [integration tests][18] for studio. More about these tests can be found [here](frontend/testing/playwright/README.md).

## Deployment

The current build is deployed in Kubernetes on Azure. Automated CI/CD using Azure DevOps pipelines.

## Built With

- [React](https://reactjs.org/) - The front-end framework
- [.NET Core](https://docs.microsoft.com/en-us/dotnet/core/)/[C#](https://docs.microsoft.com/en-us/dotnet/csharp/) - The back-end framework
- [yarn](https://yarnpkg.com/) - Package management
- [Docker](https://www.docker.com/) - Container platform
- [Kubernetes](https://kubernetes.io/) - Container orchestration
- [React][19] - The front-end framework
- [.NET Core][20]/[C#][21] - The back-end framework
- [yarn][22] - Package management
- [Docker][23] - Container platform
- [Kubernetes][24] - Container orchestration

## Status for container scans

Expand All @@ -175,30 +178,37 @@ Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduc

## Authors

- **Altinn Studio development team** - If you want to get in touch, just [create a new issue](https://github.com/Altinn/altinn-studio/issues/new).
- **Altinn Studio development team** - If you want to get in touch, just [create a new issue][25].

See also the [list of contributors](https://github.com/Altinn/altinn-studio/graphs/contributors) who participated in this project.
See also the [list of contributors][26] who participated in this project.

## License

This project is licensed under the 3-Clause BSD License - see the [LICENSE.md](LICENSE.md) file for details.

[1]: https://docs.altinn.studio/
[2]: https://dotnet.microsoft.com/download/dotnet/8.0
[3]: https://nodejs.org
[4]: https://git-scm.com/downloads
[5]: https://code.visualstudio.com/Download
[6]: https://code.visualstudio.com/docs/editor/extension-gallery#_workspace-recommended-extensions
[7]: https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit
[8]: https://www.docker.com/products/docker-desktop
[9]: https://github.com/Altinn/altinn-studio
[10]: http://studio.localhost
[11]: https://reactjs.org/
[13]: https://docs.microsoft.com/en-us/dotnet/core/
[14]: https://docs.microsoft.com/en-us/dotnet/csharp/
[15]: https://yarnpkg.com/
[16]: https://www.docker.com/
[17]: https://kubernetes.io/
[18]: https://github.com/Altinn/altinn-studio/issues/new
[19]: https://github.com/Altinn/altinn-studio/graphs/contributors
[20]: https://gitea.io/
[2]: https://docs.altinn.studio/app/getting-started/
[3]: https://docs.altinn.studio/app/app-dev-course/
[4]: https://github.com/Altinn/app-localtest
[5]: https://dotnet.microsoft.com/download/dotnet/8.0
[6]: https://nodejs.org
[7]: https://git-scm.com/downloads
[8]: https://code.visualstudio.com/Download
[9]: https://code.visualstudio.com/docs/editor/extension-gallery#_workspace-recommended-extensions
[10]: https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit
[11]: https://www.docker.com/products/docker-desktop
[12]: https://docs.altinn.studio/community/contributing/handbook/docker/without-docker-desktop/
[13]: https://github.com/Altinn/altinn-studio
[14]: https://gitea.io/
[15]: http://studio.localhost
[16]: https://github.com/Altinn/app-template-dotnet
[17]: https://github.com/Altinn/altinn-studio/tree/main/frontend/testing/cypress
[18]: https://github.com/Altinn/altinn-studio/tree/main/frontend/testing/playwright
[19]: https://reactjs.org/
[20]: https://docs.microsoft.com/en-us/dotnet/core/
[21]: https://docs.microsoft.com/en-us/dotnet/csharp/
[22]: https://yarnpkg.com/
[23]: https://www.docker.com/
[24]: https://kubernetes.io/
[25]: https://github.com/Altinn/altinn-studio/issues/new/choose
[26]: https://github.com/Altinn/altinn-studio/graphs/contributors