Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/fabrix-app/fabrix

Strongly Typed Modern Web Application Framework for Node.js and Browsers
https://github.com/fabrix-app/fabrix

fabrix framework nodejs spool typescript

Last synced: 7 days ago
JSON representation

Strongly Typed Modern Web Application Framework for Node.js and Browsers

Awesome Lists containing this project

README

        

[![Gitter][gitter-image]][gitter-url]
[![NPM version][npm-image]][npm-url]
[![Build Status][ci-image]][ci-url]
[![Test Coverage][coverage-image]][coverage-url]
[![Dependency Status][daviddm-image]][daviddm-url]
[![Follow @FabrixApp on Twitter][twitter-image]][twitter-url]

Fabrix is a strongly typed modern web application framework for Node.js or even Browsers. It builds on the pedigree of [Rails](http://rubyonrails.org/) and [Grails](https://grails.org/) to accelerate development by adhering to a straightforward, convention-based, API-driven design philosophy.

_Note: Because Fabrix is lightweight and easily extendable, it's also very __very__ fast and well suited for function based environments._

## Getting Started

#### Install
_Note: The CLI is under construction, search for [example apps](https://github.com/fabrix-app/example-app) in the meantime_

Install the Fabrix CLI. This will help you generate a Fabrix app and more.

```sh
$ npm install @fabrix/fab-cli -g
```

#### Generate A New Fabrix App
```sh
$ fab app
```

#### Start Sewing

Fabrix uses a CLI to generate scaffolding for new
applications, and to create resources inside the application.

```sh
$ fab --help

Usage:
fab

Generators:
Create New App
fab app

Create New Model
fab model

Create New Controller
fab controller

Create New Policy
fab policy

Create New Service
fab service

Create New Spool
fab spool
```

#### Run

Once installation is complete, begin weaving!
```sh
$ npm run compile && node dist/server.js
```

or simply

```sh
$ npm start
```

#### Sew on and Sew Forth!
Fabrix is really focused on bringing great libraries together in congruent ways. So if you have something like a web [scrapping library](https://github.com/fabrix-app/spool-scraper), then it's easy to implement that as a Spool and share it with the ever growing fabrix ecosystem.

## Spools

[Spools](https://github.com/search?q=topic%3Aspools+org%3Afabrix-app&type=Repositories) extend the framework's
capabilities and allow developers to leverage existing ecosystem tools through a simple and well-defined API. New features, behavior, APIs, and other functionality can be added to the Fabrix framework through Spools.

Many Fabrix installations will include some of the following Spools:

- [router](https://github.com/fabrix-app/spool-router)
- [errors](https://github.com/fabrix-app/spool-errors)
- [i18n](https://github.com/fabrix-app/spool-i18n)
- [repl](https://github.com/fabrix-app/spool-repl)
- [express](https://github.com/fabrix-app/spool-express)
- [sequelize](https://github.com/fabrix-app/spool-sequelize)

## Compatibility

- Windows, Mac, and Linux
- Node 8.0 and newer

## Documentation

See [**fabrix.app/docs**](http://fabrix.app/docs) for complete documentation.

## More Resources

#### Tutorials
Coming soon!

#### Videos
Coming soon!

#### Support
- [Live Gitter Chat](https://gitter.im/fabrix-app/Lobby)
- [Twitter](https://twitter.com/FabrixApp)
- [Fabrix.app Website](http://fabrix.app/support)
- [Stackoverflow](http://stackoverflow.com/questions/tagged/fabrix)

## FAQ

See https://github.com/fabrix-app/fabrix/wiki/FAQ

## Contributing
We love contributions! Please check out our [Contributor's Guide](https://github.com/fabrix-app/fabrix/blob/master/.github/CONTRIBUTING.md) for more
information on how our projects are organized and how to get started.

## Development
Fabrix uses a continuous integration process and all tests must pass for Fabrix to release a new version. CircleCI releases a new version when a PR is merged into master. For local development, you can download [CircleCI's local development tools](https://circleci.com/docs/2.0/local-cli/#installing-the-circleci-local-cli-on-macos-and-linux-distros) and run local tests before submitting a Pull Request.

Fabrix maintains a high score of coverage tests, any Pull Request should have well written Integration and Unit tests that increase the overall coverage score.

### Browser Support
Browser support provided by Webpack is on it's way.

`webpack --config ./test-browser/webpack.config.js`

## License
[MIT](https://github.com/fabrix-app/fabrix/blob/master/LICENSE)

## Legacy
Fabrix would not have been possible without the substantial work done by the [Trails.js team](https://github.com/trailsjs). While Fabrix maintains a different code base and system of best practices, none of this would have been possible without the contributions from the Trails community.

[npm-image]: https://img.shields.io/npm/v/@fabrix/fabrix.svg?style=flat-square
[npm-url]: https://npmjs.org/package/@fabrix/fabrix
[ci-image]: https://img.shields.io/circleci/project/github/fabrix-app/fabrix/master.svg
[ci-url]: https://circleci.com/gh/fabrix-app/fabrix/tree/master
[daviddm-image]: http://img.shields.io/david/fabrix-app/fabrix.svg?style=flat-square
[daviddm-url]: https://david-dm.org/fabrix-app/fabrix
[gitter-image]: http://img.shields.io/badge/+%20GITTER-JOIN%20CHAT%20%E2%86%92-1DCE73.svg?style=flat-square
[gitter-url]: https://gitter.im/fabrix-app/Lobby
[twitter-image]: https://img.shields.io/twitter/follow/FabrixApp.svg?style=social
[twitter-url]: https://twitter.com/FabrixApp
[coverage-image]: https://img.shields.io/codeclimate/coverage/github/fabrix-app/fabrix.svg?style=flat-square
[coverage-url]: https://codeclimate.com/github/fabrix-app/fabrix/coverage