Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/gentics/mesh-ui

Gentics Mesh UI
https://github.com/gentics/mesh-ui

angular headless-cms ui

Last synced: about 2 months ago
JSON representation

Gentics Mesh UI

Awesome Lists containing this project

README

        



Gentics Mesh

Gentics Mesh is your friendly, enterprise-grade, open-source headless CMS.


To be honest, it’s more than that: it’s your application development platform
to develop your websites, your IoT applications, your mobile apps, your smart
devices and your digital signage solutions. With its best-in-class APIs, a
complete feature list and great documentation, you’ll get your projects done
successfully in less time, no matter which technology you prefer.


stable


License


Stack Overflow


Join the chat at https://gitter.im/gentics/mesh


Latest release


CLA assistant




Gentics Mesh Screenshot

# Quick Start

This repository contains the source code for the *user interface* of [Gentics Mesh](https://getmesh.io/). Please check out the [Gentics Mesh backend repository](https://github.com/gentics/mesh) for further information.

# Development

1. `$ git clone [email protected]:gentics/mesh-ui.git`
2. `$ git checkout develop`
3. `$ npm ci`
4. `$ npm start`
5. Download and run the Mesh Demo: https://getmesh.io/download/ OR you can run `npm run mesh` if you have docker installed.
6. Open `http://localhost:4200` in a browser.

# Testing

```
$ npm test
```

# Developer Notes

## Code Formatting

This project uses [TSLint](https://palantir.github.io/tslint/) and [Prettier](https://prettier.io/) to automatically format the TypeScript code,
and [js-beautify](https://github.com/beautify-web/js-beautify) to format the HTML templates.

Formatting is performed automatically with every commit (by means of [lint-staged](https://github.com/okonet/lint-staged)). This means that
only well-formatted code should ever make it into the repo. In the event that there is a TSLint failure which cannot be automatically
fixed, the commit will fail with an error message from TSLint explaining what needs to be fixed manually.

## Strict null checks and the `!` operator

This project makes use of TypeScript's `strictNullChecks`. In general, we should avoid the use of the `!` non-null
assertion operator and try to make better use of correct typings, type guards and defensive programming.

This is not a hard rule and there are the following valid exceptions:

* Certain JavaScript patterns are not easy to express without falling back on `!`, for example when working with JavaScript Maps
(See this discussion: https://github.com/Microsoft/TypeScript/issues/9619). So we do not ban its use, but
it should be a last resort.
* In spec files we are less strict, since we are often purposefully constructing partial mock objects or creating
non-null states explicitly, so `!` is okay in specs in general if they cannot be easily avoided.
* There is a class of incorrectly-defined optional properties of the Mesh models generated by the RAML, e.g. `node.project.name`. Such
properties force the use of `!` until the RAML definitions are fixed. See https://github.com/gentics/mesh/issues/402
Once the Mesh interfaces have been fixed, that class of `!` operators can be removed.

# Distribution

In order to build the bundled static files for a web server to be served:

0. Optionally: Edit the base path in /src/app/index.html at `````` to your need. E. g. ``````
1. ```$ npm run build```
2. At /dist are the files ready to be served.

# Copyright & License

Copyright (c) 2014-2023 Gentics Software GmbH. Licensed under the Apache License, Version 2.0.

Gentics is a registered trade mark of Gentics Software GmbH.