The tastiest NodeJS framework you'll ever Eat
Switch branches/tags
nedb-jollof@1.0.2 nedb-jollof@1.0.1 koa-jollof-router@1.1.5 koa-jollof-router@1.1.4 koa-jollof-router@1.1.3 koa-jollof-router@1.1.2 koa-jollof-router@1.1.1 jollofjs@1.6.9 jollofjs@1.6.8 jollofjs@1.6.7 jollofjs@1.6.6 jollofjs@1.6.5 jollofjs@1.6.4 jollofjs@1.6.3 jollofjs@1.6.2 jollofjs@1.6.1 jollofjs@1.6.0 jollofjs@1.5.0 jollofjs@1.4.1 jollofjs@1.4.0 jollofjs@1.3.0 jollofjs@1.2.2 jollofjs@1.2.1 jollofjs@1.2.0 jollofjs@1.1.0 jollofjs@1.0.47 jollofjs@1.0.46 jollofjs@1.0.45 jollofjs@1.0.44 jollofjs@1.0.43 jollofjs@1.0.42 jollofjs@1.0.41 jollofjs@1.0.40 jollofjs@1.0.39 jollofjs@1.0.38 jollofjs@1.0.37 jollofjs@1.0.36 jollofjs@1.0.35 jollofjs@1.0.34 jollofjs@1.0.33 jollofjs@1.0.32 jollofjs@1.0.31 jollofjs@1.0.30 jollofjs@1.0.29 jollofjs@1.0.28 jollofjs@1.0.27 jollofjs@1.0.26 jollofjs@1.0.25 jollofjs@1.0.24 jollofjs@1.0.23 jollofjs@1.0.22 jollofjs@1.0.21 jollofjs@1.0.20 jollofjs@1.0.19 jollofjs@1.0.18 jollofjs@1.0.17 jollofjs@1.0.16 jollofjs@1.0.15 jollofjs@1.0.14 jollofjs@1.0.13 jollofjs@1.0.12 jollofjs@1.0.11 jollofjs@1.0.10 jollof@1.6.25 jollof@1.6.24 jollof@1.6.23 jollof@1.6.22 jollof@1.6.21 jollof@1.6.20 jollof@1.6.19 jollof@1.6.18 jollof@1.6.17 jollof@1.6.16 jollof@1.6.15 jollof@1.6.14 jollof@1.6.13 jollof@1.6.12 jollof@1.6.11 jollof@1.6.10 jollof@1.6.9 jollof@1.6.8 jollof@1.6.7 jollof@1.6.6 jollof@1.6.5 jollof@1.6.4 jollof@1.6.3 jollof@1.6.2 jollof@1.6.1 jollof@1.6.0 jollof@1.5.0 jollof@1.4.1 jollof@1.4.0 jollof@1.3.0 jollof@1.2.4 jollof@1.2.3 jollof@1.2.2 jollof@1.2.1 jollof@1.2.0 jollof@1.1.0 jollof@1.0.25
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
docs
images
packages
.gitignore
.npmignore
.nvmrc
LICENSE
build.sh
lerna.json
package-lock.json
package.json
publish-only.sh
publish.sh
readme.md

readme.md

JollofJS

The tastiest NodeJS Application Framework you'll ever eat.

jollof Logo

KoaJs Slack

Key Features

  • Convention over configuration ...Because you have better things to do with your time. But JollofJS is still very configurable.

  • Full support for ES7 Async/Await Free yourself from the oppressive/convoluted regime of callbacks and use awesome yieldables/awaitables through ES6 Promises, and Async Await. Powered by KoaJS.

  • Built-in Admin User Interface Ever wondered why something like Django Admin doesn't exist for NodeJS? Well with JollofJS, it does now. Administer your site's data with the built-in Jollof Admin (built from scratch using React). E.g You could whip up a blog for your Application and use Jollof Admin as a simple CMS backend for that blog. The options are endless!

  • Data Abstraction Done Right JollofJS has a custom-built data abstraction layer that makes it possible to use any database (or REST API) as a datasource so long as an adapter exists for it.

  • And More!...

This doc is a Work-in-Progress

Officially Supported DataSources

  • MongoDB
  • ArangoDB

More to come, and It is very easy to make yours!

Getting Started

npm i -g jollof-cli

You also need to have ArangoDB and Redis up and running.

JollofJS uses Redis for session storage. The scaffolded app will come with the ArangoDB data adapter by default. You can switch to any other compatible datasource anytime by simply making a change in config/ e.g to MongoDB.

Create your JollofJS app with:

jollof new myApp

Before you run your app, create an admin user:

cd myApp
jollof run createAdmin test@test.com password

Now you are ready to run your jollof app:

npm start

You should now be able to see jollof running at http://localhost:3001.

jollof home

App structure

You are highly advised to study the structure of this new app, starting from index.js.

Jollof Admin

To enter the Jollof admin, you have to login with that admin user you created before launching the app.

jollof admin

Editing an item in the Admin...

jollof edit

The Jollof Admin is, quite frankly, the Saber's edge of any NodeJS framework in existence today. Jollof Admin automatically creates a user interface to administer all your models, as well as in-built models. It supports all the usual field types you find in an other admins, and then some! Including:

  • Arrays (Of ANY field type)
  • Objects, (Of ANY combination of field types)
  • Files,
  • GeoLocations

Right now, the app you created has only one used model: User.

See Jollof Docs for how to work with Models.