All Projects → Altinn → altinn-studio

Altinn / altinn-studio

Licence: BSD-3-Clause license
Next generation open source Altinn platform and applications.

Programming Languages

C#
18002 projects
typescript
32286 projects
javascript
184084 projects - #8 most used programming language
CSS
56736 projects
java
68154 projects - #9 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to altinn-studio

Nestedlink
Callback-free React forms with painless validation.
Stars: ✭ 194 (+113.19%)
Mutual labels:  forms
Validate
A lightweight form validation script.
Stars: ✭ 227 (+149.45%)
Mutual labels:  forms
Final Form
🏁 Framework agnostic, high performance, subscription-based form state management
Stars: ✭ 2,787 (+2962.64%)
Mutual labels:  forms
Rich Model Forms Bundle
Provides additional data mappers that ease the use of the Symfony Form component with rich models.
Stars: ✭ 198 (+117.58%)
Mutual labels:  forms
Formex
A better form library for Phoenix
Stars: ✭ 206 (+126.37%)
Mutual labels:  forms
Svelte Forms Lib
📝. A lightweight library for managing forms in Svelte
Stars: ✭ 238 (+161.54%)
Mutual labels:  forms
Redux Form
A Higher Order Component using react-redux to keep form state in a Redux store
Stars: ✭ 12,597 (+13742.86%)
Mutual labels:  forms
formz
A unified form representation in Dart used at Very Good Ventures 🦄
Stars: ✭ 262 (+187.91%)
Mutual labels:  forms
Upload
Framework agnostic upload handler library
Stars: ✭ 213 (+134.07%)
Mutual labels:  forms
Ziptastic Jquery Plugin
This is a jQuery plugin that shows how Ziptastic could be used.
Stars: ✭ 244 (+168.13%)
Mutual labels:  forms
React Json Editor
A dynamic form component for react using JSON-Schema.
Stars: ✭ 201 (+120.88%)
Mutual labels:  forms
Documentation
📋 Official documentation/website
Stars: ✭ 202 (+121.98%)
Mutual labels:  forms
Form bloc
🔥 Dart and Flutter Package 🔥 Easy Form State Management using BLoC pattern 🔥 Wizard/stepper forms, asynchronous validation, dynamic and conditional fields, submission progress, serialization and more! 🔥
Stars: ✭ 239 (+162.64%)
Mutual labels:  forms
Jsonform
Build forms from JSON Schema. Easily template-able. Compatible with Bootstrap 3 out of the box.
Stars: ✭ 2,416 (+2554.95%)
Mutual labels:  forms
Vue Form Json Schema
Create forms using JSON schema. Bring your components!
Stars: ✭ 253 (+178.02%)
Mutual labels:  forms
React Widgets
Polished, feature rich, accessible form inputs built with React
Stars: ✭ 2,236 (+2357.14%)
Mutual labels:  forms
Validate.js
Lightweight JavaScript form validation library inspired by CodeIgniter.
Stars: ✭ 2,540 (+2691.21%)
Mutual labels:  forms
MyAPI
A template to create awesome APIs easily ⚡️
Stars: ✭ 117 (+28.57%)
Mutual labels:  apis
Formspree
Easy HTML form without PHP or JavaScript
Stars: ✭ 2,749 (+2920.88%)
Mutual labels:  forms
Fui
Add CLI & form interface to your program. Docs: https://docs.rs/fui
Stars: ✭ 244 (+168.13%)
Mutual labels:  forms

Altinn Studio

Designer build status Repos build status

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 to get started. We've also created a into course for app development 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. This repository is mainly the Designer-tool which is used to build and deploy apps.

Getting Started with developing Altinn Studio

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Prerequisites

  1. Newest .NET 6 SDK
  2. Node.js (version 16.*)
  3. Newest Git
  4. A code editor - we like Visual Studio Code
  5. Docker Desktop
  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" rigth 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 and navigate to the folder.

git clone https://github.com/Altinn/altinn-studio
cd altinn-studio

The fastest way to get things running from scratch is to use our setup-script. This script will start docker and ensure that the setup is up todate. As we add more features this script will be updated. It can be run as follows:

node ./development/setup.js

More about that script and development in general, can be found here.

Docker Compose

The development environment consist of several services defined in docker-compose.yml.

  • 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 with some custom config. More here.
  • studio-db which is a postgres database used by both studio-designer and studio-repos.

Run all parts of the solution in containers (Make sure docker is running), with docker compose as follows:

docker-compose up -d --build

The solution is now available locally at studio.localhost. (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

docker-compose up -d --build <container>

Example

docker-compose up -d --build studio_designer

If using the script, the .env-file is generated and put at root, otherwise you will need to blace it there yourself. When starting docker-compose the solution should be running as it would in production. But you probably want to change parts of the solution. The loadbalancer is configured to route the traffic to the right place according to your particular usecase. This is done by placing a .env-file in the same folder as docker-compose.yml. The load balancer is configured with the following variables.

DEVELOP_BACKEND=0
DEVELOP_DASHBOARD=0
DEVELOP_APP_DEVELOPMENT=0

Developing Backend

Navigate to the designer backend folder cd backend/src/Designer. The first time running, or after any package changes, get the latest packages.

  • On MacOS you need one extra step before running .NET: Change location where the application stores the DataProtectionKeys
    export ALTINN_KEYS_DIRECTORY=/Users/<yourname>/studio/keys

If you want to work on creating apps locally, app-template-dotnet 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.

{
   "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"
  }
}

Alternative to cloning app-templates-dotnet repo is to use following script to download template dependencies:

wget -O - https://api.github.com/repos/Altinn/app-template-dotnet/releases/latest | jq '.assets[]|select(.name | startswith("app-template-dotnet-") and endswith(".zip"))' | jq '.browser_download_url' | xargs wget -O apptemplate.zip && unzip apptemplate.zip && rm apptemplate.zip

Developing Frontend

Start the webpack dev server for the respective app you want to develop:

yarn run start-app-development
yarn run start-dashboard

If you need to rebuild other react apps, for instance dashboard or app-development, this can be done by navigating to frontend and then run the following build script, which will build app frontend apps.

yarn run build

Some React projects also have various other predefined scripts, which can be viewed in the package.json file which is located in the root folder of each react project, example frontend/dashboard.

More about developing frontend can be found here.

Cypress tests

There is created some integration tests for studio with cypress. More about these tests can be found here.

Deployment

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

Built With

Status for container scans

Designer scan Repositories scan

Contributing

Please read docs/CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Authors

See also the list of contributors who participated in this project.

License

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].