Skip to content

Commit

Permalink
Fix mistakes in readme and add information about browser support.
Browse files Browse the repository at this point in the history
  • Loading branch information
Denis Rechkunov committed May 31, 2014
1 parent 64298c7 commit 2434529
Showing 1 changed file with 29 additions and 3 deletions.
32 changes: 29 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,18 @@
![Catberry](https://raw.githubusercontent.com/pragmadash/catberry/master/docs/images/logo.png)

##What is it?
Catberry is a framework for fast and modular web-applications. Main feature you will get using Catberry is ability to write module once and use it at server and browser without any additional logic, just create module, put it to folder "catberry_modules" and start. Catberry builds client script bundle and re-use your modules in browser automatically providing Single Page Application using browser History API if it is supported.
Catberry is a framework for fast and modular web-applications. Main feature you will get using Catberry is ability to write module once and use it at server and browser without any additional logic, just create module, put it to folder "catberry_modules" and start. Catberry builds client script bundle and re-uses your modules in browser automatically providing Single Page Application using browser History API if it is supported.

##Advantages
* Super fast rendering engine using streams without in-memory template rendering (powered by [dustjs](https://github.com/linkedin/dustjs))
* You write code in server-side style and only once for both server-side and client-side execution
* You get automatically [Single Page Application](http://en.wikipedia.org/wiki/Single_Page_Application) and back-end which renders identical page for search engines and shared links
* You get such module API which allows you to develop different blocks on page independently and use one code on server and client for rendering templates
* Every link click on page could raise event in you module automatically if you define "data-event" attribute
* Every link click on page raises event in your module automatically if you define "data-event" attribute
* URL hash change event is raised like an event in module automatically (two event on hash set and remove)
* Your application builds itself without any additional actions on startup using gulp and browserify (debug and release modes are supported)
* All framework architecture is built using [Service Locator](http://en.wikipedia.org/wiki/Service_locator_pattern) pattern and [Dependency Injection](http://en.wikipedia.org/wiki/Dependency_injection)
* You could register own modules (services) in [Service Locator](http://en.wikipedia.org/wiki/Service_locator_pattern) and inject it into any module you want
* You can register your own modules (services) in [Service Locator](http://en.wikipedia.org/wiki/Service_locator_pattern) and inject it into any module you want
* Framework itself is a [connect](https://github.com/senchalabs/connect)/[express](https://github.com/visionmedia/express) middleware it means you could use it with any other middleware
* All page state is described by URL with GET query string in format "moduleName_parameterName=value" and hash "moduleName_parameterName" or without module name prefix which means global parameter or event. This approach guarantees that your page is rendered identically from server and using History API in browser.
* Very flexible [URL mapping engine](https://github.com/pragmadash/catberry/blob/master/docs/url-mapping.md) which allows to use short human-understandable URLs instead big URL with a lot of GET parameters
Expand All @@ -31,6 +31,32 @@ Also you can see [example](https://github.com/pragmadash/catberry/tree/master/ex
npm install catberry-example
```

##Browser support
Catberry uses [ECMAScript 5](http://www.ecma-international.org/ecma-262/5.1/) and some HTML5 features
like [History API](https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history)
therefore it does not support old browsers at all.
The main goal for Catberry is to use full power of new technologies and provide user with best experience.

Actually user gets HTML page from server only once and all the rest of the time whole page is rendered in browser receiving only pure data from API server.
Thanks to Catberry's very fast page rendering engine, user receives refreshed page as fast as API server could provide data for it.

All supported browsers are listed below:

| Browser | Version |
|-------------------|---------------|
| IE | 10+ |
| IE Mobile | 10+ |
| Firefox | 4+ |
| Firefox Android | 29+ |
| Chrome | 19+ |
| Chrome Android | 35+ |
| Android Browser | 2.2+, 4.2+ |
| Safari | 6+ |
| iOS Safari | 5+ |
| Opera | 12+ |
| Opera Mobile | 11.1+ |
| Blackberry Browser| 7+ |

##Contribution
If you have found a bug, please create pull request with mocha unit-test which reproduces it or describe all details in issue if you can not implement test.
If you want to propose some improvements just create issue or pull request but please do not forget to use **npm test** to be sure that you code is awesome.
Expand Down

0 comments on commit 2434529

Please sign in to comment.