Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/colmena/colmena

Free and Open Source Full Stack RAPID API DEVELOPMENT | CURRENTLY UNMAINTAINED - READ MORE HERE ➡️
https://github.com/colmena/colmena

angular colmena colmena-cms coreui help-wanted javascript loopback mit monorepo ng2 ng4 node typescript

Last synced: about 1 month ago
JSON representation

Free and Open Source Full Stack RAPID API DEVELOPMENT | CURRENTLY UNMAINTAINED - READ MORE HERE ➡️

Awesome Lists containing this project

README

        

![](apps/admin/src/assets/logo.png?raw=true)


```javascript
Free and Open Source
Full Stack
RAPID API DEVELOPMENT
```

Powered by LoopBack and Angular







## About

Colmena is a starter kit for an API with an Admin interface that can be easily extended and built upon.

It is built using a collection of great Open Source projects, including but not limited to:

- [LoopBack](https://loopback.io/) - API server based on Express.
- [Angular](https://angular.io/) - MVC framework to build web apps.
- [LoopBack SDK Builder](https://www.npmjs.com/package/@mean-expert/loopback-sdk-builder) - Awesome integration of Loopback and Angular.
- [CoreUI](http://coreui.io/) - Amazing Bootstrap Admin Template.

## ⚠️ Warning

#### This software is under active development!

#### Please do not use it in production without addressing the issues in the [Work in Progress](#work-in-progress) section

## Work in Progress

Colmena is a work in progress and not all functionality is built yet.

- Only basic ACLS are implemented, this means that the API can be used by whoever has access to it
- The interface does not reflect the user role (admin/manager/user)
- Content will be leaking across domains, while this should not be possible

## Structure

The project is a mono-repo managed by [lerna](https://lernajs.io). It is structured like this:

- `apps/`
- `admin` The Admin interface built with Angular.
- `api` The REST API built with LoopBack.
- `modules/`
- `admin-*` Modules that add functionality to the Admin app.
- `api-*` Modules that add functionality to the API app.
- `packages/`
- `admin-*` Packages used by the Admin app.
- `api-*` Packages used by the API app.

The structure of this project is inspired by this great example: [OasisDigital/scalable-enterprise-angular](https://github.com/OasisDigital/scalable-enterprise-angular).

## Installation

### Requirements

#### Software installed on your system:

- `node` (v6.9.x or higher).
- `npm` (v3.x or higher).

#### Globally installed Node packages:

- [Angular CLI](https://github.com/angular/angular-cli)
- [Lerna](https://github.com/lerna/lerna)
- [LoopBack CLI](https://github.com/strongloop/loopback-cli)

```bash
npm install -g @angular/cli lerna loopback-cli
```

### Setup

Clone the repository and install the dependencies:

```bash
git clone https://github.com/colmena/colmena
cd colmena
npm install
lerna bootstrap
```

## Development

### Running in development mode

When the project is running in development mode the API and the Admin will restart automatically when a code change is
detected.

#### URLs

- The API listens on .
- The Admin listens on .

#### Start the project

From inside the project dir run `npm run dev`:

```bash
npm run dev
```

This will start both the API and the Admin in the same terminal.

You can also start the two components separately:

#### Start the API

```bash
npm run dev:api
```

#### Start the Admin

```bash
npm run dev:admin
```

#### Clean up the project

During development it can be useful to bring the project back to a clean state. To do this run:

```bash
npm run clean && npm install && lerna bootstrap
```

### Configuring the development setup

#### local.yaml

You can configure the API in development mode by creating a `local.yaml` file in `config`. The contents of this
file is not tracked by git so it only lives on your local machine.

To start with the default settings copy `config/default.yaml` to `config/local.yaml`.

#### Sample data

The API comes with a set of sample data for development.

To load the sample data when starting the API update [`local.yaml`](#localyaml) to include:

```yaml
system:
initdb: true
```

You can also use the `INITDB` environment variable.

#### API Base Url

By default the development stack assumes that the API and Admin are both started on localhost (using `127.0.0.1`).

In order to run the API on another host than localhost the admin needs to know on which IP address it can reach the API.
To do this you need to update the `api.baseUrl` config property.

> Make sure to configure the API Base Url **without** a trailing slash.

To set the API Base Url update [`local.yaml`](#localyaml) to include:

```yaml
api:
# Do not use trailing spaces for the baseUrl
baseUrl: http://192.168.12.34:3000
```

You can also use the `API_BASE_URL` environment variable.

You should now be able to connect to the Admin on and it should connect to the API.

### Development Servers

Colmena comes with a Docker Compose configuration for running development servers easily.

#### mongodb

To use the mongodb server update [`local.yaml`](#localyaml) to include:

```yaml
mongodb:
url: mongodb://localhost/colmena
```

You can also use the `MONGODB_URL` environment variable

#### mailhog

To use the mailhog server update [`local.yaml`](#localyaml) to include:

```yaml
smtp:
host: localhost
port: 1025
```

You can also use the `SMTP_HOST` and `SMTP_PORT` environment variables

#### Start the servers

```bash
npm run servers # or: npm run servers:start
```

#### Show the servers logging

```bash
npm run servers:logs
```

#### Stop the servers

```bash
npm run servers:stop
```

#### Delete the servers

```bash
npm run servers:rm
```

## Contributors

Thanks goes to these wonderful people ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)):

| [
Bram Borggreve](http://colmena.io/)
💬 [🐛](https://github.com/colmena/colmena/issues?q=author%3Abeeman) [💻](https://github.com/colmena/colmena/commits?author=beeman) 🎨 [📖](https://github.com/colmena/colmena/commits?author=beeman) 🔧 | [
Willian Ribeiro Angelo](https://github.com/movibe)
[💻](https://github.com/colmena/colmena/commits?author=movibe) | [
Nick Portokallidis](http://nporto.com)
[💻](https://github.com/colmena/colmena/commits?author=portokallidis) | [
drmikecrowe](https://github.com/drmikecrowe)
[💻](https://github.com/colmena/colmena/commits?author=drmikecrowe) | [
Vladimir Mechkauskas](http://elartix.com/)
[💻](https://github.com/colmena/colmena/commits?author=elartix) | [
Bernardo Arevalo](https://github.com/nardoguy14)
[💻](https://github.com/colmena/colmena/commits?author=nardoguy14) | [
yieme](https://github.com/yieme)
[💻](https://github.com/colmena/colmena/commits?author=yieme) |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: |
| [
Brian McIntyre](https://github.com/bmcintyre)
[💻](https://github.com/colmena/colmena/commits?author=bmcintyre) | [
Rob Halff](https://github.com/rhalff)
[💻](https://github.com/colmena/colmena/commits?author=rhalff) | [
Asgeir Birkisson](https://github.com/asgeirbirkis)
[💻](https://github.com/colmena/colmena/commits?author=asgeirbirkis) | [
dthib](https://github.com/dthib)
[💻](https://github.com/colmena/colmena/commits?author=dthib) | [
Oleh Kukil](http://brainstorage.me/flashbag)
[💻](https://github.com/colmena/colmena/commits?author=flashbag) | [
Pulkit Singhal](http://pulkitsinghal.blogspot.com)
[💻](https://github.com/colmena/colmena/commits?author=pulkitsinghal) | [
Tuan PM](http://tuanpm.net)
[💻](https://github.com/colmena/colmena/commits?author=tuanpmt) |
| [
brownman](http://brownman.github.io)
[💻](https://github.com/colmena/colmena/commits?author=brownman) | [
Hoàng Phúc](https://github.com/hoangtrongphuc)
[💻](https://github.com/colmena/colmena/commits?author=hoangtrongphuc) | [
Brian Dunnette](http://brian.dunnette.us)
[💻](https://github.com/colmena/colmena/commits?author=bdunnette) | [
Chenzc](https://github.com/Chenzc)
[💻](https://github.com/colmena/colmena/commits?author=Chenzc) | [
Tersius Kuhne](https://github.com/ktersius)
[💻](https://github.com/colmena/colmena/commits?author=ktersius) | [
Alex Quiambao](https://github.com/silverbux)
[💻](https://github.com/colmena/colmena/commits?author=silverbux) | [
José Luis Di Biase](http://www.camba.coop)
[💻](https://github.com/colmena/colmena/commits?author=josx) |
| [
Shing.](https://github.com/yshing)
[💻](https://github.com/colmena/colmena/commits?author=yshing) | [
Alex Wilde](alexthewilde.github.io)
[💻](https://github.com/colmena/colmena/commits?author=alexthewilde) | [
dmtw](https://github.com/dmtw)
[💻](https://github.com/colmena/colmena/commits?author=dmtw) | [
Marcus](https://github.com/kumorig)
[💻](https://github.com/colmena/colmena/commits?author=kumorig) | [
Brannon N. Darby II](https://github.com/brannon-darby)
[💻](https://github.com/colmena/colmena/commits?author=brannon-darby) | [
Sebastian Podgajny](https://github.com/SebastianPodgajny)
[💻](https://github.com/colmena/colmena/commits?author=SebastianPodgajny) | [
IsCaster](https://github.com/IsCaster)
[💻](https://github.com/colmena/colmena/commits?author=IsCaster) |

This project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind welcome!

## Backers

Support us with a monthly donation and help us continue our activities. \[[Become a backer](https://opencollective.com/colmena#backer)]






























## Sponsors

Become a sponsor and get your logo on our README on Github with a link to your site. \[[Become a sponsor](https://opencollective.com/colmena#sponsor)]






























> This project was formerly known as [Loopback Angular Admin](https://github.com/beeman/loopback-angular-admin).