Browse files


  • Loading branch information...
1 parent 5cce39e commit 685a0621b3c5c843d171b04b2802bf225e595d71 @davebryson committed Feb 11, 2009
Showing with 0 additions and 87 deletions.
  1. +0 −87 README
@@ -1,87 +0,0 @@
-h2. BeepBeep a simple web application for Erlang
-BeepBeep is a simple Web Application framework for Erlang inspired by Rails and Merb. It follows the
-principle of convention over configuration - meaning if you follow the code structure layout and a few
-rules when building your app, it'll require no extra work on you behalf to map Url requests to your
-Controllers and Views.
-BeepBeep is built on "MochiWeb": and "ErlyDTL":,
-providing a super fast web server and the abiity to define your templates with the Django template language.
-h3. Features
- * A script to generate a new web application (based on mochiweb's approach)
- * Session Server to store your application state
- * Before filter on your controllers for things like authentication
- * Django templates for the view
-h3. Getting Started
- # download the code
- # CD into the beepbeep directory
- # run make
- # generate a new web application by running ./script/new_beep.erl YouAppName "DestinationDirectory
-This will create a web app with everything you need. It includes a Sample controller (main_controller.erl).
-To run the sample:
- # cd into the new application's directory you created above
- # Run make to compile the new project
- # Start the server: ./
- # Open a browser and visit "http://localhost:8000
-h3. How it works:
-You write a controller similar to how you'd write a "gen_server" based app, but in our
-case you use the included "gen_controller" behavior. In the controller you define the functions
-you want to expose to requests. BeepBeep will automatically map Url requests to controller and
-functions (or actions). For example a request to "/hello/show" would map to the "hello_controller"
-and invoke the "show" function.
-Here's a controller example:
- <code>
-%% hello_controller.erl
--export([handle_request/2, before_filter/1]).
-show(Params) ->
- gen_controller:call(?MODULE,index,Params).
-%% Callback for show
-handle_request(show,Params) ->
- Data = [{name,"BeepBeep"}],
- {render, "hello/show.html",[{data,Data}],Params}.
- </code>
-From "handle_request" we return a tuple that tells the framework what template to use. Templates
-are located in the template directory. In our example we'ill use the template located in the
-subdirectory "hello" and the file "show.html"
-Here's an example of the "show.html" template:
-<h2>Hello from {{ data }} </h2>
-Which will result in:
-<h2>Hello from BeepBeep</h2>
-The "data" key set in the controller is passed to the template and expanded using the Django format
-via erlyDTL.
-This approach provides a clean separation of the erlang logic in the controller and the html code in
-the template.
-More to come...

0 comments on commit 685a062

Please sign in to comment.