Code Monkey home page Code Monkey logo

otter's Introduction

Otter Framework

Super cute Otter!



Description

The Otter project is a highly modular framework whose goal is to provide a common platform to accelerate and facilitate the development on Angular web applications. It is split into several units to cover different aspects of these applications (localization, testing, customization, etc.). Also, to customize an application, metadata can be extracted from the application source code and injected into a CMS to manage dynamic configuration.

Note: The full documentation is available here.

Built With

Get Started

A new application can be set up with these simple commands:

# Starting a new angular application
npm install -g @angular/cli
ng new my-app

# Add Otter framework
ng add @o3r/core

Note: Please refer to Otter Get Started and Angular Get Started for complete documentation.

Contributing

Please read the Contributing file for details on our code of conduct and the process to submit pull requests.

Versioning

Please refer to Security file.

License

Please refer to the License file.

Acknowledgments

The Otter Team, @AmadeusITGroup/otter_admins, is responsible for the review of the code of this repository. Any bug of feature request can be addressed via issue report.

Developer

Building and Testing library

These documents describe how to set up your development environment to build and test the framework. It also explains the basic mechanics of using git, node, and npm.

Refer to the contribution guidelines if you'd like to contribute to the framework.

Prerequisite Software

Before you can build and test Otter modules, you must install and configure the following products on your development machine:

  • Git and/or the GitHub app (for Mac or Windows)

  • Node.js, (version >=10.0.0)

    • This is used to run tests and generate distributable files. We also use Node's Package Manager, npm (version >3.8.x), which comes with Node. Depending on your system, you can install Node either from source or as a pre-packaged bundle.
  • Yarn, a Node's Package Manager

    • You can install yarn using NPM manager (coming with Node.js). The version of Yarn currently used is embedded in the repository. In case you need to link this library with your project, you can check the section "Link local packages".
  • Chrome

    • We use Chrome to run our tests.

Getting the sources

Clone the Otter repository using the button Code or using the following git command:

git clone https://github.com/AmadeusITGroup/otter.git

Installing NPM modules

Next, install the JavaScript modules needed to build:

# Install library project dependencies (package.json)
yarn install

Build command

To build the modules, run:

yarn run build

Each module can be built independently thanks to Nx commands:

# ex: Build Core package only
yarn nx build core

Note: Results are put in the dist of each module (packages/@<scope>/<module>/dist).

Running tests locally

Check the formatting:

yarn run lint

Check Unit Tests:

yarn run test

Each module can be test independently thanks to Nx commands:

# ex: Test Core package only
yarn nx test core

# ex: Lint Core package only
yarn nx lint core

Manage task cache

When running the Build, Lint, or Test commands, Nx can use its cache mechanism. In some cases, it may be useful to clear the cache to investigate an issue. This can be done with the following command:

yarn nx reset

Debugging with Visual Studio Code

The repository contains the mandatory configuration and the recommended VSCode plugins to ensure optimal comfort and productivity while developing on the Otter Framework.

The default configuration of the repository provides a way to run Unit Tests one by one and to define, within VSCode, break points using the vscode-jest-tests debugger task.

Link local packages

For Yarn v1, add the resolutions property in the main package.json. It should be filled with the relative path to the dist of the local packages you want to link. The protocol link: can be used.

NOTE: It will not import the transitive dependencies of the linked packages.

Example:

{
  "resolutions": {
    "@o3r/localization": "./relative/path/to/otter/packages/@o3r/localization/dist",
    "@o3r/core": "link:./relative/path/to/otter/packages/@o3r/core/dist",
  }
}

For Yarn v2+, the protocol portal: can also be used.

NOTE: The portal protocol will also import all the transitive dependencies of the linked packages. Please keep in mind that mismatched versions of these dependencies may cause some issues.

Example:

{
  "resolutions": {
    "@o3r/localization": "./relative/path/to/otter/library/@o3r/localization/dist",
    "@o3r/core": "link:./relative/path/to/otter/library/@o3r/core/dist",
    "@o3r/rules-engine": "portal:./relative/path/to/otter/library/@o3r/rules-engine/dist",
  }
}

otter's People

Contributors

kpanot avatar matthieu-crouzet avatar mrednic-1a avatar vscaiceanu-1a avatar cpaulve-1a avatar renovate[bot] avatar fpaul-1a avatar dependabot[bot] avatar nhoffmann-1a avatar sdo-1a avatar guillaumerochelle avatar rubenhouri avatar pginoux-1a avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.