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:
and point it to a working mongoDB.
My aim is to have this ready before year end 2011.
Thanks for reading,
Oh, if you're wondering, this will be useful in several ways,
- You can learn from a very small example how to develop in node.js and mongodb
- I plan on expanding this idea and make a version 0.0.2-beta with more features
- Maybe I will create a course based on the experience.
Here are my thoughts on later versions:
- add new/remove/rename collection
- add new/remove/rename field in collection
- add users collection
- add roles collection
- add option to let users register, login, reset password
- use facebook/google/twitter oauth with this project
- allow designer for grid, default column widths, default sort, which fields to show in grid
- allow designer for detail view - arrange fields, use templating engine? ejs? jade?
- add event system, before update, before delete, after update, after delete, before/after insert
- export/import project using one file so you can move your project from dev to testing to production
- add plugin system for widgets, calendar picker, foreign data picker, sliders for numerical data
- saved filters, first, just filters
- 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.
- automatic CRUD api for collections using JSON as data structure and HTTP verbs - get put post and delete.
- 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.