# microscratch

> Light Weight Web Framework using node.js, mongo, sockets, ember.js ...

Latest version **0.0.1** (published 2014-02-13) · 0 weekly downloads

## Install

```sh
npm install microscratch
pnpm add microscratch
yarn add microscratch
bun add microscratch
```

## Health

**Score 5/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: insecure dependencies; abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.1 |
| Published | 2014-02-13 |
| First published | 2014-02-13 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 26 |
| Known vulnerabilities | 0 (+32 in 9 direct dependencies) |
| Install scripts | no |
| Author | Tomas Korcak |
| Maintainers | korczis |

## Links

- npm: https://www.npmjs.com/package/microscratch
- Repository: http://github.com/korczis/microscratch
- Homepage: https://github.com/korczis/microscratch
- Issues: https://github.com/korczis/microscratch/issues
- npm.io page: https://npm.io/package/microscratch

## Dependencies (26)

- [csv](https://npm.io/package/csv.md) ~0.3.7
- [archy](https://npm.io/package/archy.md) 0.0.2
- [gzippo](https://npm.io/package/gzippo.md) git://github.com/korczis/gzippo.git
- [moment](https://npm.io/package/moment.md) ~2.5.0
- [cheerio](https://npm.io/package/cheerio.md) ~0.13.1
- [express](https://npm.io/package/express.md) ~3.4.8
- [mongodb](https://npm.io/package/mongodb.md) ~1.3.23
- [request](https://npm.io/package/request.md) ~2.33.0
- [winston](https://npm.io/package/winston.md) ~0.7.2
- [amdefine](https://npm.io/package/amdefine.md) ~0.1.0
- [deferred](https://npm.io/package/deferred.md) 0.6.8
- [mongoose](https://npm.io/package/mongoose.md) ~3.8.4
- [optimist](https://npm.io/package/optimist.md) ~0.6.0
- [node-sass](https://npm.io/package/node-sass.md) ~0.8.1
- [requirejs](https://npm.io/package/requirejs.md) ~2.1.10
- [socket.io](https://npm.io/package/socket.io.md) ~0.9.16
- [dependable](https://npm.io/package/dependable.md) git://github.com/korczis/dependable.git
- [handlebars](https://npm.io/package/handlebars.md) ~1.3.0
- [mongo-watch](https://npm.io/package/mongo-watch.md) ~0.2.1
- [node.extend](https://npm.io/package/node.extend.md) ~1.0.9
- [solr-client](https://npm.io/package/solr-client.md) ~0.2.9
- [connect-mongo](https://npm.io/package/connect-mongo.md) ~0.4.0
- [grunt-forever](https://npm.io/package/grunt-forever.md) ~0.4.1
- [mongoose-times](https://npm.io/package/mongoose-times.md) ~0.1.0
- [session.socket.io](https://npm.io/package/session.socket.io.md) ~0.1.6
- [express3-handlebars](https://npm.io/package/express3-handlebars.md) 0.5.0

## Recent versions

- 0.0.1 (latest) — 2014-02-13

## README

# microscratch

Light Weight Web Application Framework using node.js, mongo, sockets, ember.js, ...

## Preview

[![preview](http://imageshack.com/a/img835/476/y7u0.png)](http://microscratch.net)

## Project Status

[![GitHub version](https://badge.fury.io/gh/korczis%2Fmicroscratch.png)](http://badge.fury.io/gh/korczis%2Fmicroscratch)
[![Build Status](https://travis-ci.org/ApolloCrawler/microscratch.png?branch=master)](https://travis-ci.org/ApolloCrawler/microscratch)
[![Dependency Status](https://gemnasium.com/korczis/microscratch.png)](https://gemnasium.com/korczis/microscratch)
[![Code Climate](https://codeclimate.com/repos/52eeccb869568029a80003ff/badges/3fd9b15792ebb7277355/gpa.png)](https://codeclimate.com/repos/52eeccb869568029a80003ff/feed)
[![Total views](https://sourcegraph.com/api/repos/github.com/ApolloCrawler/microscratch/counters/views.png)](https://sourcegraph.com/github.com/ApolloCrawler/microscratch) 

### Uptime

[![uptime](https://share.pingdom.com/banners/f06c9d22)](http://stats.pingdom.com/49gq27kjt2mp/1103301)
## What microscratch is - first day in school

### What is the microscratch?

  microscratch is minimalistic opionated modern web application framework.
  
  For clarification of words and term used please see [glossary](https://github.com/korczis/microscratch/blob/master/GLOSSARY.md).

### What are the principles?

 * Being [idiomatic](https://github.com/rwaldron/idiomatic.js) - All code in any code-base should look like a single person typed it, no matter how many people contributed.
 * Asking [smart questions](http://www.catb.org/~esr/faqs/smart-questions.html).
   
### Why is called microscratch?

  It is smaller brother of "the scratch". Google for it.

### Is it really so micro?
   
  It depends. Compared with what? Reports will be added soon...

### Why should I choose microscratch?

  - It's open-source and will be!
  - It's quite small
  - It's quite modular
  - It's quite easy to understand
  - It's tested
  - It's continuously integrated
  - It's under the code QA
  - It's up-to-date
  
### Will the microscratch fit me?

  It depends. What are your needs? There is [no silver bullet](http://en.wikipedia.org/wiki/No_Silver_Bullet). 

### Is it production ready?

  It depends. If is the node.js, mongo and/or ember are production ready for you then microscratch is ready too...
  
## Installation

### Is the installation difficult?

  No. It will take you only few seconds, lets try...
  
### What are the prerequisites?

  If you have following, you should be ready to go.
  
  - [git](http://git-scm.com/)
    
    Git is a free and open source distributed version control system.

  - [node.js](http://nodejs.org/)

    Node.js is a platform built on Chrome's JavaScript runtime
    
  - [mongodb](http://www.mongodb.org/)
  
    MongoDB (from "humongous") is an open-source document database.
  
### What is the easiest way to try?

  If you have stuff mentioned above installed try this.
  
  ```
  # Install grunt and bower
  sudo npm install -g bower mocha mocha-phantomjs phantomjs grunt grunt-cli forever jsdoc@3.2.1
  
  # Clone repository
  git clone http://github.com/korczis/microscratch.git
  
  # Install required node modules
  npm install
  
  # Or
  sudo npm install
  
  # Install required bower modules
  bower install
  
  # Compile assets
  grunt build
  
  # Run application
  node app.js
  ```

## Troubleshooting

### Mac OS X

If you run `grunt server` you may get an error:

	Running "watch" task
	Waiting...Warning: EMFILE, too many open files

This is because default `ulimit` on Mac OS X is 256. Increate number of possibly open files to 10000 by:

	ulimit -n 10000

## First start

  - What is happening during the boot sequence?
  - What are the main configs?
  - Can I add my own initializers?
  - What are the steps in bootstrap process?
  - How can I override option from CLI?

## CLI

  - What is CLI?
  - How to use CLI?
  - Are there any CLI examples?

## Communication

- How can I communicate?
- How can I communicate horizontally?
- How can I communicate vertically?
- How can I communicate between modules?
- How can I communicate between apps?
- How can I communicate between clients?
- How can I communicate between servers?

## Technologies - Under the hood

- What technologies do you use?
- What is the usage of technology 'XYZ' ?
- Why was the technology 'XYZ' chosen instead of 'ABC' ?
- Can I replace technology 'XYZ' with ... ?
- Is the technology 'XYZ' needed? I can no use it? Do you have fallback?

## DIY - Do It Yourself 

- How can I add my own environment?
- How can I add my own module?
- How can I add my own application?

## Deploy and monitor - Going wild 
- How can I deploy *microscratch application*?
- How can I monitor my *microscratch application*?
 
## Hacking - Under the hood

- How can I hook to module events?
- How can I hook to application events?
- How can I hook to client events?
- How can I hook to server events?

## Film about film making

- What was the inspiration for modules layer?
- What was the inspiration for applications layer?
- What was the inspiration for clients layer?
- What was the inspiration for servers layer?

## Collaborating 

- How can I report issue?
- How can I propose feature?
- How can I help as developer?

## References
  
  To Be Done

---
_Source: https://npm.io/package/microscratch · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
