node package manager




This project is in alpha, no license yet, no code yet, no tests yet, nothing! The plan is to have a project development platform inspired by Microsoft Dynamic CRM but based on node.js and mongo

The 1st version, let's call it 0.0.1-beta will be a node.js package which when installed and run make a web app with one page divided to three parts, the header and the body which will be divided in two parts, a left narrow list of collections/tables/entities and a main part for displaying the data.

When clicking on a collection name on the left list, the main part of the page will display the data in a grid. slickgrid.js if you click one of the rows in the grid, you will be shown a "detail" view of the row instead of the grid.


This is a node.js project. You need to edit the /config/configuration.js file. locate the line:

app.set('db-uri', ...

and point it to a working mongoDB.

Run with:

node app.js

My aim is to have this ready before year end 2011.

Thanks for reading, Ami Heines

=============== Oh, if you're wondering, this will be useful in several ways,

  1. You can learn from a very small example how to develop in node.js and mongodb
  2. I plan on expanding this idea and make a version 0.0.2-beta with more features
  3. Maybe I will create a course based on the experience.

Here are my thoughts on later versions:

  1. add new/remove/rename collection
  2. add new/remove/rename field in collection
  3. add users collection
  4. add roles collection
  5. add option to let users register, login, reset password
  6. use facebook/google/twitter oauth with this project
  7. allow designer for grid, default column widths, default sort, which fields to show in grid
  8. allow designer for detail view - arrange fields, use templating engine? ejs? jade?
  9. add event system, before update, before delete, after update, after delete, before/after insert
  10. export/import project using one file so you can move your project from dev to testing to production
  11. add plugin system for widgets, calendar picker, foreign data picker, sliders for numerical data
  12. saved filters, first, just filters
  13. navigating from one entity to another, using foreign keys, automatically figuring the relationship, e.g. user-id field in another collection means this is a foreign key to the users collection.
  14. automatic CRUD api for collections using JSON as data structure and HTTP verbs - get put post and delete.
  15. initial setup - detect no settings and display user friendly message with form to input admin user, pass, mongodb uri and database. create database if does not exist.