README.md
<div align="center">
<br>
<br>
<a href="https://github.com/jefer94/choco">
<img
width="400"
src="https://img.shields.io/badge/choco-algorithm-green.svg?style=for-the-badge&colorA=21252b&colorB=568af2"
/>
</a>
[![deps](https://david-dm.org/jefer94/choco.svg)](https://david-dm.org/jefer94/choco)
[![dev-deps](https://david-dm.org/jefer94/choco/dev-status.svg)](https://david-dm.org/jefer94/choco)
[![chat](https://badges.gitter.im/jefer94/choco.svg)](https://gitter.im/jefer94/choco)
[![Maintainability](https://api.codeclimate.com/v1/badges/5a4fd7ce7e0345f692fb/maintainability)](https://codeclimate.com/github/jefer94/choco/maintainability)
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/ee185db880024f3b81a5699acde77b06)](https://www.codacy.com/manual/jefer94/choco?utm_source=github.com&utm_medium=referral&utm_content=jefer94/choco&utm_campaign=Badge_Grade)
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg?style=flat)](https://www.gnu.org/licenses/gpl-3.0)
[![github commits](https://img.shields.io/github/commit-activity/m/jefer94/choco)](https://github.com/jefer94/choco)
[![github contributors](https://img.shields.io/github/contributors/jefer94/choco)](https://github.com/jefer94/choco)
[![github last commit](https://img.shields.io/github/last-commit/jefer94/choco)](https://github.com/jefer94/choco)
[![github vulnerabilities](https://img.shields.io/snyk/vulnerabilities/github/jefer94/choco)](https://github.com/jefer94/choco)
<!-- [![security headers](https://img.shields.io/security-headers?url=https%3A%2F%2Fchoco-algorithm.herokuapp.com%2F)](https://choco-algorithm.herokuapp.com/) -->
<!-- [![website up](https://img.shields.io/website?url=https%3A%2F%2Fchoco-algorithm.herokuapp.com%2F)](https://choco-algorithm.herokuapp.com/) -->
<!-- [![w3c validation](https://img.shields.io/w3c-validation/html?targetUrl=https%3A%2F%2Fchoco-algorithm.herokuapp.com%2F)](https://choco-algorithm.herokuapp.com/) -->
<br>
<h1>Choco Algorithm</h1>
<p>Services that provide a algorithm runtime emulator, and an IDE.</p>
</div>
## Install
```bash
# Clone
git clone https://github.com/jefer94/choco.git
cd choco
# Install
yarn
# Compile deps
yarn build:deps
yarn build:deps --scope=@chocolab/i18n
yarn build:deps --scope=@chocolab/algorithm-transpiler
# Execute service
yarn execute SERVICE_NAME
# Run in docker
docker-compose up -d
```
## Services
| Name | Description |
| :--- | :--- |
| [algorithm][choco-algorithm] | Algorithm frontend. |
| [graphql-gateway][choco-graphql-gateway] | GraphQL API Gateway. |
| [activity][choco-activity] | Log of user activities. |
| [authenticator][choco-authenticator] | Manage auth and tokens. |
| [authorize][choco-authorize] | Legacy authorization manager. |
| [cache][choco-cache] | Manage in memory cache. |
| [projects][choco-projects] | User projects. |
| [world-cities-seed][choco-world-cities-seed] | Countries, cities and language database seed. |
[choco-algorithm]: https://github.com/jefer94/choco/tree/master/services/algorithm
[choco-graphql-gateway]: https://github.com/jefer94/choco/tree/master/services/graphql-gateway
[choco-activity]: https://github.com/jefer94/choco/tree/master/services/activity
[choco-authenticator]: https://github.com/jefer94/choco/tree/master/services/authenticator
[choco-authorize]: https://github.com/jefer94/choco/tree/master/services/authorize
[choco-cache]: https://github.com/jefer94/choco/tree/master/services/cache
[choco-projects]: https://github.com/jefer94/choco/tree/master/services/projects
[choco-world-cities-seed]: https://github.com/jefer94/choco/tree/master/services/world-cities-seed
## Packages
| Name | Description |
| :--- | :--- |
| [@chocolab/components][choco-components] | React components, common UI. |
| [@chocolab/algorithm-transpiler][choco-transpiler] | Algorithm to Javascript transpiler. |
| [@chocolab/configs][configs] | Configuration files. |
| [@chocolab/css-utils][choco-css] | Handle CSS variables. |
| [@chocolab/env][choco-env] | Load .env for monorepos. |
| [@chocolab/functional][choco-functional] | Functional utilities. |
| [@chocolab/hooks][choco-hooks] | React hooks. |
| [@chocolab/i18n][choco-i18n] | Load dynamically our string, in we language. |
| [@chocolab/keychain][choco-keychain] | Unique key generator for React, prevent unnecessary renders. |
| [@chocolab/middlewares][choco-middlewares] | Common Middlewares used in Express. |
| [@chocolab/password][choco-password] | Encrypt and decrypt password. |
[choco-components]: https://github.com/jefer94/choco/tree/master/packages/components
[choco-transpiler]: https://github.com/jefer94/choco/tree/master/packages/algorithm-transpiler
[choco-css]: https://github.com/jefer94/choco/tree/master/packages/css-utils
[configs]: https://github.com/jefer94/choco/tree/master/packages/configs
[choco-env]: https://github.com/jefer94/choco/tree/master/packages/env
[choco-functional]: https://github.com/jefer94/choco/tree/master/packages/functional
[choco-hooks]: https://github.com/jefer94/choco/tree/master/packages/hooks
[choco-middlewares]: https://github.com/jefer94/choco/tree/master/packages/middlewares
[choco-i18n]: https://github.com/jefer94/choco/tree/master/packages/i18n
[choco-keychain]: https://github.com/jefer94/choco/tree/master/packages/keychain
[choco-password]: https://github.com/jefer94/choco/tree/master/packages/password
## Maintainers
<table>
<tbody>
<tr>
<td align="center" valign="top">
<img width="150" height="150" src="https://github.com/jefer94.png?s=150">
<br>
<a href="https://github.com/jefer94">jefer94</a>
</td>
</tr>
</tbody>
</table>