GithubHelp home page GithubHelp logo

elartix / loopback-angular-admin Goto Github PK

View Code? Open in Web Editor NEW

This project forked from colmena/colmena

0.0 1.0 0.0 2.2 MB

Quickly create admin interfaces on a Loopback 2.x API

License: MIT License

JavaScript 52.16% ApacheConf 6.12% HTML 18.83% CSS 22.89%

loopback-angular-admin's Introduction

This software is not ready for production! It is still being developed and it will change in the future.

The goal is to have a starter project which can be used to quickly build an API with a frontend that are easily extended.

loopback-angular-admin

Stories in Ready

![Gitter](https://badges.gitter.im/Join Chat.svg)

NPM version Dependencies

Codeship Status for beeman/loopback-angular-admin

wercker status

Build Status

Try it now!

Deploy an instance on your Heroku account to play around with it!

Deploy

Users

After an installation the following users are created:

Please note, at this moment there is no difference in permissions for admin users or regular users. This needs to change in the future!

Features and implemented projects

TODO:

  • Permissions on user actions (non-admins cannot access advanced functions)
  • permissions on content items (non-admins can only edit own content, etc)
  • Detect if API is online HubSpot/offline?
  • Map API roles to Narzerus/angular-permission
  • Add tests
  • Add Dockerfile
  • Add Vagrantfile

Tell me what we need more!

Screenshots

Dashboard

Markdown Editor

SweetAlert

File uploads

Events

Installation

Dependencies

Installation depends on node/npm with grunt and bower installed globally.

$ npm install -g bower grunt-cli

The one-liner install (please create an issue if this one does not work!)

git clone https://github.com/beeman/loopback-angular-admin.git && cd loopback-angular-admin && npm install && grunt build && grunt serve

The steps above:

Checkout the project:

git clone https://github.com/beeman/loopback-angular-admin.git

Install the Node packages:

npm install

Run grunt build:

grunt build

Run grunt serve to start the API and frontend:

grunt serve

Running

The project is separated in a server and a client.

Server

To run the server you issue the command:

npm start

Or to run it with nodemon (needs nodemon installed globally). This will automatically restart the server when you change its code:

npm run dev

The command grunt serve explained below wil automatically start the API.

Client

Rebuild the lb-services.js file with the correct API_URL for development.

API_URL=http://0.0.0.0:3000/api grunt

To run the client you issue the command. This will also start the API.

grunt serve

It will open the project in your default browser with livereload enabled. This will take care of reloading the page when you change your code.

Connect to a database

You can specify the URL to the MongoDB database you want to use with the MONGODB_URL environment variable.

MONGODB_URL="mongodb://localhost:27017/loopback-angular-admin" npm start

Set INITDB to true if you want to load the initial dataset, which creates the admin user. The memory database (default) does this automatically.

INITDB=true MONGODB_URL="mongodb://localhost:27017/loopback-angular-admin" npm start

This also works with the free hosted MongoDB instances at compose.io and mongolab.com!

API Security

WARNING: Most models don't have an ACL configured. This means that anyone with access to the API can edit most of it's content.

To access models with access control enable you need an AccessToken. You can get an access token by logging in to the API.

To ease development you can create an AccessToken while starting the server by setting the DEV_ACCESS_TOKEN environment variable.

DEV_ACCESS_TOKEN=MySecretToken npm run dev

Development

If you want to share your work through a Pull Request, be sure to make it a clean branch (one functionality per PR) and base it off master.

If you plan on making a big change or replace a core function with something else it is probably best to first open an issue to discuss it with me. This will enhance the chance of the eventual changes getting merged a lot :)

The API is built with generator-loopback.

The GUI is built with generator-angular but is no longer compatible due to refactoring the project into modules.

These should help you quickly add code to your project. Further details tailored to this project might follow in the future.

Unit Testing using Karma/Jasmine

$ node_modules/.bin/karma start client/test/karma.conf.js

INFO [karma]: Karma v0.12.31 server started at http://localhost:8080/
INFO [launcher]: Starting browser PhantomJS
INFO [PhantomJS 1.9.8 (Linux)]: Connected on socket aLJmRuSNUH2rPfpWgS3l with id 89641972
PhantomJS 1.9.8 (Linux): Executed 1 of 1 SUCCESS (0.007 secs / 0.029 secs)

Useful commits

These commits might be useful when extending the functionality.

WebSockets / socket.io

At this moment there is no integration for socket.io or websockets, nor will there be in the near future. Once LoopBack has integrated support for it we will leverage from that.

Having that said, it's certainly possible to integrate socket.io, check this pull request by @movibe.

Issues

If you have any problems please contact me.

loopback-angular-admin's People

Contributors

alexthewilde avatar asgeirbirkis avatar beeman avatar drmikecrowe avatar dthib avatar elartix avatar gitter-badger avatar josx avatar movibe avatar nardoguy14 avatar portokallidis avatar pulkitsinghal avatar rhalff avatar tuanpmt avatar waffle-iron avatar yieme avatar yshing avatar

Watchers

 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.