pod afBedNap

A simple BedSheet application; use it to kickstart your own Bed Apps!

Mixins

BednapPage

(Pillow page) The main application page.

FileTree

(efan component) Displays the source code tree.

Footer

(efan component) Displays a simple footer.

IndexPage

(Pillow page) The index / documentation page.

Layout

(efan component) A simple page layout component.

Overview

(efan component) Renders the pod.fandoc.

VisitorPage

(Pillow page) Displays a Visitor entity in full.

Classes

AppModule

The afIoc module class.

IdGenerator

(Service) Generates a sequence of numbers to be used as Visitor IDs.

SourceCodePage

Returns the given source file as plain text.

Visitor

Entity representing a visitor comment.

VisitorBookService

(Service) For creating and retrieving visitor entities.

VisitorValueEncoder

Converts Visitor objects to and from a Str.

Overview

BedNap is a simple BedSheet application with master / detail screens that can be used as a template to kickstart your own Bed Apps.

BedNap exists so developers can browse the source code and see for themselves how easy it is to piece together a working application with BedSheet and other libraries. Bed Nap also features acceptance tests that probe the generated HTML and verifies the markup.

Quick Start

1. Install

Install Bed Nap with the Fantom Repository Manager:

C:\> fanr install -r http://repo.status302.com/fanr/ afBedNap

2. Create

Create your own working web application by replicating Bed Nap in to a working directory. Do this with the following command, where podname is the name of your web application.

C:\> fan afBedNap -copyto C:\projects\ -podname myBedApp

Copied 21 files to 'C:\projects\myBedApp'
Bed App 'myBedApp' has been created!

This creates a copy of Bed Nap in C:\projects\myBedApp with the name myBedApp.

3. Run

You can now build, test and run your new web app straight away!

Build

To build, cd into the project directory and run:

C:\projects\myBedApp> fan build.fan

compile [myBedApp]
  Compile [myBedApp]
    FindSourceFiles [10 files]
    WritePod [file:/C:/Apps/Fantom/fan/lib/fan/myBedApp.pod]
BUILD SUCCESS [451ms]!

Test

Test the app with fant:

C:\projects\myBedApp> fant myBedApp

***
*** All tests passed! [2 tests, 4 methods, 19 verifies]
***

Run App

Run the web application with:

C:\projects\myBedApp> fan myBedApp

   ___    __                 _____        _
  / _ |  / /_____  _____    / ___/__  ___/ /_________  __ __
 / _  | / // / -_|/ _  /===/ __// _ \/ _/ __/ _  / __|/ // /
/_/ |_|/_//_/\__|/_//_/   /_/   \_,_/__/\__/____/_/   \_, /
           Alien-Factory BedSheet v1.4.8, IoC v2.0.6 /___/

BedSheet started up in 1,809ms

And point your web browser at: http://localhost:8069/

4. Repeat

Feel free to modify the fantom source, web templates, and tests. To see the results, just rebuild the pod with fan build.fan and refresh your browser!

Source Code

If you can't wait to download Bed Nap and create your own working web application, you can browse the source code below. Click on a file to view it:

<%# This .fandoc file is used as an efan template for the Overview component %>

<%# View this app at http://bednap.fantomfactory.org/ to see the File Tree %>

<% app.renderFileTree() %>

You can also view the source code over at BitBucket at: https://bitbucket.org/AlienFactory/afbednap/src

Release Notes

v0.0.16 - v0.0.24

  • Chg: Updated all pods to the latest.

v0.0.14

  • Chg: Split app and docs up into 2 pages.
  • Bug: Test code is included (once again) in the .pod.
  • Bug: All pods are included and upto date in generated build.fan.

v0.0.12

v0.0.10

  • New: Added vistor delete link to table, an example of event links.
  • Chg: Updated libraries to newer versions.

v0.0.8

  • Chg: Vistor creation is now done in a Pillow Page Event.
  • Bug: Submit button did not have a name.

v0.0.6

  • Chg: Pages are served up with an XHTML5 content type.
  • Chg: Tests updated to use new versions of Butter and Bounce.

v0.0.4

  • New: Added FileTree component so you can browse the source code, in the application!
  • Chg: Updated to latest af* library versions & removed workarounds.

v0.0.2

  • New: Preview release