views.reagent/examples/class-registry/README.md

67 lines
2.2 KiB
Markdown
Raw Normal View History

2016-05-31 10:47:22 -04:00
# views.reagent Example - Class Registry
2016-05-25 16:26:37 -04:00
This is a "Class Registry" application that has a lot of CRUD operations
in it which allow users to manage students and professors, as well as
classes and then assign the students/professors to those classes. The
idea is _very_ loosely based off one of the Om tutorial applications
(the data used is almost identical).
Note that this example is somewhat complicated as there are several
lists of data shown in the UI, all of which are completely editable
to the user. While the code is longer as a result, this still serves
as a more interesting example with several views being used (some
using parameters).
Definitely take a look at the [Todo MVC][1] example app before diving into
this and also be sure you're familiar with Reagent.
2016-05-31 10:47:22 -04:00
[1]: https://github.com/gered/views.reagent/tree/master/examples/todomvc
2016-05-25 16:26:37 -04:00
## Running
### A quick note on the dependencies used
2016-05-31 10:47:22 -04:00
Since views.reagent and the Views library it depends on are all
2016-05-25 16:26:37 -04:00
currently in somewhat of an experimental / pre-beta state right now,
you will need to first clone the following repositories and manually
install the libraries via `lein install`:
* [views](https://github.com/gered/views)
* [views.sql](https://github.com/gered/views.sql)
2016-05-31 10:47:22 -04:00
* [views.reagent](https://github.com/gered/views.reagent)
2016-05-25 16:26:37 -04:00
As well, you can install [views.honeysql](https://github.com/gered/views.honeysql)
2016-05-25 16:26:37 -04:00
if you want to try out using HoneySQL instead of SQL with views. But
this example app does not use it so it's not required.
### Creating the Database
This example app uses a PostgreSQL database. The SQL script to create
it is in `create_db.sql`. You can easily pipe it into `psql` at a
command line to create it quickly, for example:
$ psql < create_db.sql
(Of course, add any username/host parameters you might need)
### Starting It Up
To build everything and run in one step:
$ lein rundemo
Then open up a web browser or two and head to http://localhost:8080/
to see the web app in action.
If you want to run this application in a REPL, just be sure to build
the ClojureScript:
$ lein cljsbuild once
And then in the REPL you can just run:
(-main)
to start the web app (you should be put in the correct namespace
immediately).