a simple to install and run perl webserver #6

wants to merge 18 commits into


None yet
4 participants

I was daunted by having to install a nodejs webserver just to try a tutorial.

This Perl webserver will make it more convenient to get going!

IgorMinar and others added some commits Mar 6, 2011

angular-phonecat README.md
added phonecat specific info into the README.md file
add phones.json
- Added a json file with a list of all phones. This file fakes a
  backend which would typically render this list dynamically from
  a database.
add phone detail json files
- Added one json file with detailed information about each phone
  listed in phones.json
add phone images
- Added images for each phone listed in phones.json
step-0 empty angular-seed project
- Initial [angular-seed] project layout without default app and test
step-1 static phone list
- Added static html list with two phones into index.html
step-2 angular template with repeater
- Converted the static html list into dynamic one by:
  - creating a root controller for the application
  - extracting the data from HTML into a the controller as an in-memory
  - converting the static document into a template with the use of
    `[ng:repeat]` [directive] which iterates over the dataset with phones,
    clones the ng:repeat template for each instance and renders it into the
- Added a simple unit test to show off how to write tests and run them
  with JsTD (see README.md for instructions)
step-3 interactive search
- Added a search box to demonstrate how:
  - the data-binding works on input fields
  - to use [$filter] function
  - [ng:repeat] automatically shrinks and grows the number of phones in the view
- Added an end-to-end test to:
  - show how end-to-end tests are written and used
  - to prove that the search box and the repeater are correctly wired together
step-5 $xhr and dependency injection
- Replaced the in-memory dataset with data loaded from the server (in
  the form of static phone.json file to make this tutorial backend
  - The json file is loaded using the [$xhr] service
- Demonstrate the use of [services][service] and [dependency injection][DI]
  - The [$xhr] is injected into the controller through [dependency injection][DI]
step-6 phone images and links
- adding phone image and links to phone pages
- add end2end test that verifies our phone links
- css to style the page just a notch
step-4 phone ordering
- Add "age" property to the phone model
- Add select box to control phone list order
- Override the default order value in controller
- Add unit and e2e test for this feature
step-7 $route and app partitioning
- Introduce the [$route] service which allows binding URLs for deep-linking with
  - Create PhoneCatCtrl which governs the entire app and contains $route
  - Map `/phones' to PhoneListCtrl and partails/phones-list.html
  - Map `/phones/<phone-id>' to PhoneDetailCtrl and partails/phones-detail.html
  - Copy deep linking parameters to root controller `params` property for access
    in sub controllers
  - Replace content of index.html with [ng:view] widget
- Create phone list route
  - Preserve existing PhoneListCtrl controller
  - Move existing html from index.html to partials/phone-list.html
- Create phone details route
  - Empty placeholder PhoneDetailsCtrl controller
  - Empty placeholder partials/phane-details.html template
step-8 phone details view
- Fetch data for and render phone detail view
  - PhoneDetailCtrl controller to fetch details json with [$xhr] for a specific
  - template for the phone detailed view
- CSS to make the phone details page look "pretty"
step-11 custom service and $resource
- Replaced [$xhr] with [$resource]
- Created a custom Phone service that represents the $resource client
step-9 checkmark filter
- Added custom checkmark filter
- Update phone detail template to use checkmark filter
- Added spec for the filter
step-10 image swapping with ng:click
In the phone detail view, clicking on a thumbnail image, changes the
main phone image to be the large version of the thumbnail image.

- Define mainImageUrl model variable in the PhoneDetailCtrl and set its
  default value
- Create setImage controller method to change mainImageUrl
- Register ng:click handler for thumb images to use setImage controller
- Add e2e tests for this feature
- Add css to change the mouse cursor when user points at thumnail images

btford commented Apr 29, 2013

Sorry for your trouble, @metaperl.

This issue is now 2 years old, and it seems like Node.js is easy enough to run on most platforms and distros of Linux. If not, Python's Simple HTTP Server is perhaps a better choice than a Perl alternative, since it can be invoked on most platforms simply as:

python -m SimpleHTTPServer

Closing this, but if anyone thinks that this is still an issue, I'll re-open it for discussion. Thanks!

@btford btford closed this Apr 29, 2013

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment