You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.4 KiB
40 lines
1.4 KiB
# Wanijo
|
|
|
|
> (Toki Pona)
|
|
> Wan: One, a, unite, make one
|
|
> Ijo: thing, something, object
|
|
> Wanijo: Unite things
|
|
|
|
## How to develop
|
|
|
|
You'll need:
|
|
|
|
- JDK >= 8
|
|
- Leiningen >= 2.9
|
|
|
|
### First time launch with fresh database
|
|
|
|
- start a neo4j database with `lein neo4j`
|
|
- start a repl with `lein repl` or similar
|
|
- import `wanijo.infrastructure.repl`
|
|
- if you use leiningen for launching the repl, this will be your init-ns
|
|
- run `wanijo.infrastructure.repl/create-user!` using the desired username and password as parameters
|
|
- run `wanijo.infrastructure.repl/run-migrations!` to create desireable database constraints and structures
|
|
|
|
### Launch the application server
|
|
|
|
- start a repl
|
|
- import `wanijo.main`
|
|
- run `wanijo.main/start-server-dev!`
|
|
- the application is available on port `8080`
|
|
|
|
### "Architecture"
|
|
|
|
> Structure your application as it seems to fit your needs. Then call it architecture and pat yourself on the shoulder. You've achieved something!
|
|
|
|
The first level of structure are the building blocks of the domain, e.g. `instance`, `schema`. Inside these namespaces you'll find namespaces for each technical need: routing, database access, domain rules etc.
|
|
|
|
`wanijo.handler` collects all routes and passes them to ring.
|
|
|
|
`wanijo.infrastructure` contains the namespaces needed for technical code that do not belong to any domain, like database access, routing or similars.
|