Hi Reuben,

I largely work in this space.  I can walk through a few possible 
architectures that I have used:

1)  If the data pull and processing is fairly decoupled from the display, 
it is often easiest to use Julia only on the back end.  I have a few 
systems that pull new data every hour and add it to a database.  I then use 
Julia to do a bunch of processing and analysis, then load the results back 
into a different portion of the database.  You can then build a normal 
data-driven web app using standard tools that only looks at the database, 
and doesn't need to interface with Julia anywhere.  If you don't have any 
experience building web pages, I would suggest using Angular 1 and Plotly 
for the front end, and Node/Express for the back end.  Some basic data 
manipulation can be done via SQL if you use MySQL or similar, or in the web 
app itself using things like d3 and lodash.  I don't have any publicly 
available examples of this, but I could put one together if you like.

2) If the data pull and processing is strongly coupled to the data display, 
you can call Julia directly from a server-side web application rather than 
look at cached data.  You have a few options for the server-side code.  One 
is to call Julia from Node using node-julia 
<https://github.com/waTeim/node-julia>. I have a rough example of how you 
would do this here <https://github.com/waTeim/node-julia>.  One risk is 
that while node-julia works, it's a bit tricky to use, and I don't know 
what Jeff's plans for the package are.  You would again use a normal 
front-end tools like Angular/React for the front end.  

Alternatively, you could write the back-end in something like Mux.jl 
<https://github.com/JuliaWeb/Mux.jl> rather than in Node.  I don't do this, 
because I need to use things like https and SSPI in an enterprise 
environment, but I think it should work fine.  

3) Lastly, you could write the whole thing in Julia using something like 
Escher or Genie.jl <https://github.com/essenciary/Genie.jl>.  These are 
both very interesting projects and represent an incredible level of work, 
but I don't think they are ready for production use yet.  

I strongly recommend the first option if possible.  It might seem like a 
bunch of different parts that all need to work together, but I think it's 
actually the easiest to set up and maintain, and lets you use the use the 
best tools in each domain.  Failing that, try the 2nd.  

If you have any questions or would like to discuss this further just let me 
know.  Cheers,

Alex


On Monday, October 31, 2016 at 9:08:01 PM UTC-7, Reuben Brooks wrote:
>
> Context: I love julia, and I've never built any kind of webapp. Most of my 
> programming experience is in Mathematica and Julia...hacking things 
> together (poorly) in Python when nothing else works.
>
> Problem: I have a script  / notebook in julia that pulls data from 
> sources, analyzes it, builds fancy plots, and has lots of nice information. 
> Now I want to build a basic webapp that will allow me to access this 
> information anywhere, anytime (will be updated regularly). 
>
> Question 1: is there a julia package that suits my needs well, or should I 
> look at using some other fronted to create the frontend? Elm intrigues me, 
> as much for the learning as for the actual solution. 
>
> Bottom line: I don't know enough about what I'm wading into to choose 
> wisely. What does the community suggest?
>

Reply via email to