Index
A
- ACID properties
- Atomic / The ACID properties
- Isolated / The ACID properties
- Durable / The ACID properties
- adapters
- about / Adapters
- add artist/album endpoint, transaction
- creating / Creating the add artist/album endpoint
- Compojure route, creating / Creating the Compojure route
- route helper function, creating / Creating the route helper function
- add artist/album form, transaction
- creating / Creating the add artist/album form, Creating the form
- abstracting / Abstracting the form
- abstracting, with tag used / Abstracting the form
- abstracting, include tag used / Abstracting the form
- validating / Validating the add artist/album form
- Album model, transaction
- expanding / Expanding the album model
- transaction context, wrapping / Wrapping the whole thing in a transaction
- using, outside scope / Using a transaction outside of this scope
- appender
- about / What is an appender?
- configuring / Configuring a Timbre appender
- URL / Configuring a Timbre appender, Timbre log levels
- adding / Adding an appender
- rolling appender, adding / Adding the rolling appender
- appender configuration keys
- about / Appender configuration keys
- *min-level / Appender map
- *enabled? / Appender map
- *async? / Appender map
- *rate-limit / Appender map
- *fn / Appender map
- URL / Appender map
- appender map
- about / Appender map
- assoc-in function
B
- built-in filters, Selmer
- URL / Filter parameters
C
- Carmine
- URL / Setting up sessions
- Cascade Style Sheet (CSS)
- about / Reporting errors to the user
- catalog
- creating / Creating the catalog
- artists table, creating / Creating the artists table
- artists table, seeding / Seeding the artists table
- albums table, creating / Creating the albums table
- clj-time library
- Clojure
- used, for inserting user to database / Inserting a user using Clojure
- transaction, creating / Transactions in Clojure
- clojure.test namespace
- about / Anatomy of a test
- deftest / Anatomy of a test
- is / Anatomy of a test
- testing / Anatomy of a test
- URL / Anatomy of a test
- Compojure
- about / What is Compojure?
- URL / What is Compojure?
- route, creating / Creating a Compojure route
- cookies
- about / Sessions, Cookies
- value, getting / Getting a cookie's value
- value, setting / Setting a cookie's value
- setting, as map / Setting the cookie as a map
- securing / Securing a cookie
- securing, with put-signed! function / Securing a cookie
- securing, with get-signed function / Securing a cookie
- deleting / Deleting a cookie
- cookies as map, values
- about / Setting the cookie as a map
- -path (string) / Setting the cookie as a map
- -domain (string) / Setting the cookie as a map
- -port (int) / Setting the cookie as a map
- -max-age (int) / Setting the cookie as a map
- -expires (string) / Setting the cookie as a map
- -secure (Boolean) / Setting the cookie as a map
- -http-only (Boolean) / Setting the cookie as a map
- cronj library
- about / Dependencies of the app
- URL / Dependencies of the app
- cycle tag, Selmer
- about / Reporting errors to the user
D
- database
- data, adding / Adding data to the database
- data adding, YeSQL used / What is YeSQL?
- user adding, YeSQL used / Adding a user to the database
- user inserting, SQL used / Inserting a user using SQL
- user inserting, Clojure used / Inserting a user using Clojure
- route, adjusting / Adjusting the route
- password, encrypting / Encrypting the password
- database connection
- adjusting / Adjusting the database connection
- profiles.clj file, creating / Creating the profiles.clj file
- hipstr.models.connection namespace, modifying / Modifying the hipstr.models.connection namespace
- database schema
- creating / Creating the database schema
- maintaining, with Migratus / Maintaining the database schema
- user table, creating / Creating the user table
- user table, dropping / Dropping the user table
- down scripts, executing / Running the down scripts
- database migrating, Leiningen used / Migrating the database
- migration scripts, running from Leiningen / Running all migration scripts from Leiningen
- migrations, running programatically / Running migrations programatically
- migrations, adding to hipstr initialization / Adding migrations to the hipstr initialization
- database transactions
- about / Introduction to Database Transactions
- reference link / Introduction to Database Transactions
- ACID properties / The ACID properties
- importance / Importance of database transactions
- defroutes
- using / Using defroutes
- dependencies, web application
- about / Dependencies of the app
- lib-noir library / Dependencies of the app
- ring-server library / Dependencies of the app
- selmer library / Dependencies of the app
- timbre library / Dependencies of the app
- tower library / Dependencies of the app
- markdown-clj library / Dependencies of the app
- environ library / Dependencies of the app
- cronj library / Dependencies of the app
- noir-exception library / Dependencies of the app
- prone library / Dependencies of the app
- Django framework
- about / Dependencies of the app
E
- entity, Korma
- about / Korma entities
- environ library
- about / Dependencies of the app, Environ
- using / Using environ
- variable translations / Variable translations
- environment configurations
- setting / Setting and resolving environment configurations
- resolving / Resolving environment configuration
F
- 12 Factor-Application Pattern
- reference link / Environ
- file structure, Luminus
- about / Luminus file structure
- util.clj / util.clj
- session_manager.clj / session_manager.clj
- layout.clj / layout.clj
- middleware.clj / middleware.clj
- routes/home.clj / routes/home.clj
- handler.clj / handler.clj
- repl.clj / repl.clj
- filters
- about / Filters
- with parameters / Filter parameters
- format-of rule
- using / Validating the format
- form POST
- handling / Handling the form POST
- validating / Validating the form POST
- validating, with noir.validation namespace / The noir.validation namespace
- validating, with Validateur library / The Validateur library
- errors, reporting to users / Reporting errors to the user
G
- get-handler function
- about / Get-handler
- GlassFish
- Glassfish
- about / Deploying the hipstr application
H
- handler.clj
- about / handler.clj
- handlers
- about / Handlers
- hipstr.handler
- about / hipstr.handler
- initialization hook, defining / Initialization hooks
- shutdown hook, defining / Shutdown hooks
- app routes / App routes
- application handler / The application handler
- hipstr.repl
- about / hipstr.repl
- start-server function / Start-server
- stop-server function / Stop-server
- get-handler function / Get-handler
- hipstr.test.validators.user-validator-test namespace
- URL / Refactoring tests
- hipstr.validators.user-validator namespace
- URL / Refactoring tests
- hipstr application
- extending / Extending the application: brief requirements
- login form, creating / Creating the login form
- recently-added route, restricting / Restricting the recently-added route
- user, authenticating / Authenticating the user
- "Remember Me" cookie, writing / Writing the "Remember Me" cookie
- logout route, creating / Creating the logout route
- deploying / Deploying the hipstr application
- deploying, with uberjar / When to use an uberjar
- deploying, with uberwar / When to use an uberwar
- deploying, as standalone / Deploying as a standalone
- deploying, behind Nginx / Running the application behind Nginx
- load balancing, behind Nginx / Load balancing behind Nginx
- home page
- creating / Creating your first page
- rendering / Rendering a page
- editing / Editing the home page
- http-kit
I
- InstaREPL
- about / The necessity of testing
- integration test
- writing / Writing a high-level integration test
- ring.mock.request function, using / Using ring.mock.request
J
- Jetty
- Joda-Time
K
- Korma
- obtaining / Getting Korma, The Quick Korma Crash Course
- URL / Getting Korma
- reference link / The Quick Korma Crash Course
- database specification, defining / Define the database specification
- entity / Korma entities
- primary key, defining / Defining the primary key
- relationships, defining between entities / Defining relationships between entities
- SELECT queries, constructing / Constructing SELECT queries
- INSERT queries, constructing / Constructing INSERT queries
- UPDATE queries, constructing / Constructing UPDATE queries
- DELETE queries, constructing / Constructing DELETE queries
- exec-raw function, using / Using raw SQL
- transactions, using / Using transactions
- Korma examples
- reference link / Using transactions
L
- layout.clj
- about / layout.clj
- lein-ring plugin
- about / Deploying the hipstr application
- uberjar / Deploying the hipstr application
- uberwar / Deploying the hipstr application
- reference link / Deploying the hipstr application
- Leiningen
- about / Leiningen
- URL / Leiningen
- URL, for installation / Leiningen
- installing / Leiningen
- using / Using Leiningen
- web application, generating / Generating the application
- help, obtaining from Luminus community / Getting help
- Leiningen, commands
- lein migratus migrate / Running all migration scripts from Leiningen
- lein migratus up [IDs] / Running all migration scripts from Leiningen
- lein migratus down [IDs] / Running all migration scripts from Leiningen
- lein quickie
- length-of rule
- about / Validating length of values
- lib-noir library
- about / Dependencies of the app
- URL / Dependencies of the app
- LightTable
- log function
- using / Logging with Timbre
- log level, Timbre
- about / Timbre log levels
- Luminus
- URL, for documentation / Getting help
- file structure / Luminus file structure
- Luminus community
- URL / Getting help
M
- Markdown
- URL / Rendering a page
- markdown-clj library
- about / Dependencies of the app
- URL / Dependencies of the app
- Maven
- URL / Leiningen
- middleware
- about / Middleware
- URL / Middleware
- middleware.clj
- about / middleware.clj
- Migratus
- about / Maintaining the database schema
- URL, for documentation / Migratus
- getting / Getting Migratus
- configuring / Configuring Migratus
- filenames / Creating the user table
- Migratus, functions
- migratus.core/migrate / Running migrations programatically
- migratus.core/up [IDs] / Running migrations programatically
- migratus.core/down / Running migrations programatically
- models
- porting / Port the models from YeSQL to Korma
- hisptr.models.connection, porting / Porting hisptr.models.connection
- hisptr.models.user-model, porting / Porting hisptr.models.user-model
- hipstr.models.album-model, porting / Porting hipstr.models.album-model
N
- Nginx
- about / When to use an uberwar
- hipstr application, deploying / Running the application behind Nginx
- URL, for downloading / Running the application behind Nginx
- used, for load balancing hipstr application / Load balancing behind Nginx
- noir-exception library
- about / Dependencies of the app
- noir.session functionality
- noir.validation namespace
- used, for validating form POST / The noir.validation namespace
P
- PostgreSQL
- URL, for downloading / Creating the database schema
- presence-of rule
- about / Validating the format
- prone library
- about / Dependencies of the app
- URL / Dependencies of the app
R
- Rack
- about / Dependencies of the app
- Rake
- URL / Leiningen
- recently added Albums, fetching from database
- SQL query, writing / Writing the SQL query
- Albums model, creating / Creating the albums model
- connection, refactoring / Refactoring the connection
- recently added route
- creating / Creating the recently added route
- Redis
- URL / Setting up sessions
- repl.clj
- about / repl.clj
- request maps
- about / Request maps
- *server-port / Request maps
- *server-name / Request maps
- *remote-addr / Request maps
- *uri / Request maps
- *query-string / Request maps
- *scheme / Request maps
- *request-method / Request maps
- *headers / Request maps
- *body / Request maps
- resources directory
- about / Luminus file structure
- response maps
- about / Response maps
- *status / Response maps
- *headers / Response maps
- *body / Response maps
- restricted routes
- about / Restricted routes
- route access, restricting / Restricting route access
- accessing / Accessing a restricted route
- access rule, defining as functions / Access rule as a function
- access rule, defining as map / Access rule as a map
- RFC2616
- URL / Request maps
- Ring
- about / Understanding Ring in Clojure
- request maps / Request maps
- response maps / Response maps
- handlers / Handlers
- middleware / Middleware
- adapters / Adapters
- ring-defaults library
- ring-server library
- about / Dependencies of the app
- URL / Dependencies of the app
- ring-session
- about / Sessions
- ring.mock.request function
- used, for integration test / Using ring.mock.request
- Ring Server
- about / What is the Ring Server?
- hipstr.handler / hipstr.handler
- hipstr.repl / hipstr.repl
- URL / Start-server, Configuring and running the Ring Server
- configuring / Configuring and running the Ring Server
- executing / Configuring and running the Ring Server
- rolling appender
- adding / Adding the rolling appender
- route, Compojure
- creating / Creating a Compojure route
- defroutes, using / Using defroutes
- anatomy / Anatomy of a route
- HTTP method, defining / Defining the method
- URL, defining / Defining the URL
- parameter, destructuring / Parameter destructuring
- request, destructuring / Destructuring the request
- unbound parameters, destructuring / Destructuring unbound parameters
- response, constructing / Constructing the response
- complex responses, generating / Generating complex responses
- route, hipstr application
- restricting / Restricting the route
- user authentication, checking / Checking if the user is authenticated
- access rule, defining / Defining the access rule
- routes/home.clj
- about / routes/home.clj
S
- Selmer
- about / What is Selmer?
- URL / What is Selmer?
- home page, creating / Creating your first page
- variables / Variables
- filters / Filters
- tags / Tags
- template inheritance / Template inheritance
- sign up form, serving / Serving the signup form
- sign up form, creating / Creating the signup page
- selmer library
- about / Dependencies of the app
- URL / Dependencies of the app
- Selmer templates
- creating, for rendering recently added albums / Rendering the results
- Servlet API
- about / Dependencies of the app
- sessions
- about / Sessions
- setting up / Setting up sessions
- interacting with / Interacting with the session
- session_manager.clj
- about / session_manager.clj
- shared appender configuration
- about / Shared appender configuration
- sign up form
- serving / Serving the signup form
- creating / Creating the signup page
- SQL
- used, for inserting user to database / Inserting a user using SQL
- src directory
- about / Luminus file structure
- start-server function
- about / Start-server
- stop-server function
- about / Stop-server
T
- tags
- template inheritance
- about / Template inheritance
- test
- anatomy / Anatomy of a test
- writing / Writing and running our first test
- running / Running tests
- running, automatically / Running tests automatically
- refactoring / Refactoring tests
- test-driven development (TDD)
- about / The necessity of testing
- reference link / The necessity of testing
- test directory
- about / Luminus file structure
- testing
- necessity / The necessity of testing
- Timbre
- about / What is Timbre?
- appender / What is an appender?
- appender, configuring / Configuring a Timbre appender
- log level / Timbre log levels
- appender configuration keys / Appender configuration keys
- appender map / Appender map
- shared appender configuration / Shared appender configuration
- log function, using / Logging with Timbre
- timbre library
- about / Dependencies of the app
- URL / Dependencies of the app
- Tomcat
- tower library
- about / Dependencies of the app
- URL / Dependencies of the app
- transaction
- implementing / Implementing a transaction
- creating, in Clojure / Transactions in Clojure
- creating, in YeSQL / Transactions in YeSQL, Extending the application requirements in brief
- add artist/album form, creating / Creating the add artist/album form
- add artist/album endpoint, creating / Creating the add artist/album endpoint
- Album model, expanding / Expanding the album model
U
- uberjar
- about / Deploying the hipstr application
- used, for deploying hipstr application / When to use an uberjar
- uberwar
- about / Deploying the hipstr application
- used, for deploying hipstr application / When to use an uberwar
- user authentication, hipstr application
- about / Authenticating the user
- credentials, validating / Validating the credentials
- form POST, handling / Handling the form POST
- util.clj
- about / util.clj
V
- validate-with-predicate rule
- about / Validation predicates
- Validateur library
- used, for validating form POST / The Validateur library
- URL / The Validateur library
- dependency, adding / Adding the Validateur dependency
- required fields, validating / Validating required fields
- format of values, validating / Validating the format
- URL, for functions / Validating the format
- length of values, validating / Validating length of values
- validation predicates / Validation predicates
- reusable validators, creating / Making reusable validators
- variables
- about / Variables
W
- web application
- generating / Generating the application
- dependencies / Dependencies of the app
- WSGI
- about / Dependencies of the app
Y
- YeSQL
- about / What is YeSQL?
- getting / Getting YeSQL
- used, for adding user to database / Adding a user to the database
- transaction, creating in / Transactions in YeSQL, Extending the application requirements in brief
- YeSQL 0.5.0-beta2
- URL / What is YeSQL?