Create Apps for Scifeon
Last updated on 26-Jun-2020 by Jakob Jakobsen Boysen
This documentation consists of tutorials for setup and development, descriptions of available utilities for development, introduction of the Scifeon SDK and available extension points in Scifeon.
What are Apps?
Apps are simple add-ons that can be used to customize your own Scifeon platform. They are written using TypeScript and HTML, are testable and easy to debug using modern technologies. Apps usually use the Scifeon REST API for interacting with data from Scifeon.
What makes up an App?
- An NPM-style
package.json
andcontributions.json
file contains metadata and information about the app. - The TypeScript and HTML files that make up the different plugins.
- Additional resources, e.g. images and files for download.
What can you do with Apps?
There are many extension points in Scifeon that an App can utilize:
- Pages and routes, e.g. a page showing specific tables for a specific type of result set.
- Data loaders, e.g. for loading your specific file format or standard.
- File downloads, e.g. for storing file templates.
- Database views for using the database to join data instead of the client.
- Spreadsheet functions for creating your own advanced company specific spreadsheet function.
App structure
Apps are typically structured like this:
├── src
| ├── module1
| | ├── components // components are reusable @customElement's that can be used in other views, e.g. <cmp-my-component>
| | | ├── cmp-my-component.html
| | | ├── cmp-my-component.ts
| | | ├── cmp-my-component.scss
| | | └── cmp-my-component.test.ts
| | ├── data-loaders
| | | ├── my-data-loader.ts
| | | └── my-data-loader-2.ts
| | ├── my-result-panel.html
| | ├── my-result-panel.ts
| | ├── my-route.html
| | ├── my-route.ts
| | ├── my-route.scss
| | └── my-route.e2e-test.ts
| |── module 2
| | └── ...
| |── constants.ts
| |── interfaces.ts
| └── utils.ts
├── contributions.json
├── package.json
└── tsconfig.json
For a deep dive, checkout the reference page App Folder Structure