Index of all namespaces
The fuel purchase application REST API endpoint.
db-spec db-spec-fn db-spec-without-db fp-auth-scheme fp-auth-scheme-param-name fp-base-url fp-db-name fp-db-password fp-db-server-host fp-db-server-port fp-db-username fp-entity-uri-prefix fp-jdbc-driver-class fp-jdbc-subprotocol fp-mt-subtype-prefix fp-nrepl-server-port fphdr-auth-token fphdr-error-mask fphdr-establish-session
changelog-uri-template embedded-envlog embedded-fplog embedded-fuelstation embedded-user-subentity embedded-vehicle envlog-uri-template envlogs-uri-template fp-app fp-routes fplog-uri-template fplogs-uri-template fuelstation-uri-template fuelstations-uri-template login-uri-template make-user-subentity-url user-embedded-fn user-links-fn users-uri-template vehicle-uri-template vehicles-uri-template
pe-fp-app is the REST API endpoint for the fuel purchase system. The fuel purchase system consists of 2 tiers: client applications and the server application. pe-fp-app represents the server application; it exposes a REST API endpoint to client applications.
pe-fp-app makes use of the pe-* Clojure library suite. In addition to using the pe-* library suite, it leverages pe-fp-rest, which implements the underlying fuel purchase-specific resources of the REST API. pe-fp-rest is built on top of pe-fp-core, which implements the core logic, model and data access functionality of the REST application. These tiers are illustrated in the component layering diagram below.
Table of Contents
- About the Fuel Purchase System
- Client Applications
- Component Layering
- Dependency Graph
- pe-* Clojure Library Suite
About the Fuel Purchase System
The fuel purchase system provides the ability to record and analyze your vehicle’s fuel usage. In its present form, the fuel purchase system is not terribly useful. It enables you to collect fuel usage statistics with respect to your vehicles, but none of the analysis / reporting functionality is built out yet. It exists more as a reference implementation for a set of libraries. The fuel purchase system is a client/server one. This repo, pe-fp-app, represents the server-side application of the fuel purchase system. It exists as a REST API endpoint for client applications of the system. The libraries are generic, and thus are not coupled to the fuel purchase system.
Currently there only exists an iOS client application for the fuel purchase system: PEFuelPurchase-App.
The following diagram attempts to illustrate the layered architecture of the fuel purchase server application. The various core and rest libraries encapsulates the bulk of the application; the core logic, model and data access functionality.
The following diagram attempts to illustrates the dependencies among the main components of the fuel purchase server application.
pe-* Clojure Library Suite
The pe-* Clojure library suite is a set of Clojure libraries to aid in the development of Clojure based applications. (Each library is available on Clojars.) + pe-core-utils: provides a set of various collection-related, date-related and other helpers functions. + pe-datomic-utils: provides a set of helper functions for working with Datomic. + pe-datomic-testutils: provides a set of helper functions to aid in unit testing Datomic-enabled functions. + pe-user-core: provides a set of functions for modeling a generic user, leveraging Datomic as a backend store. + pe-user-testutils: a set of helper functions to aid in unit testing code that depends on the functionality of the pe-user-* libraries (pe-user-core and pe-user-rest). + pe-apptxn-core: provides a set of functions implementing the server-side core data layer of the PEAppTransaction Logging Framework. + pe-rest-utils: provides a set of functions for building easy-to-version hypermedia REST services (built on top of Liberator. + pe-rest-testutils: provides a set of helper functions for unit testing web services. + pe-user-rest: provides a set of functions encapsulating an abstraction modeling a user within a REST API and leveraging Datomic. + pe-apptxn-restsupport: provides a set of functions implementing the server-side REST layer of the PEAppTransaction Logging Framework.