Giter Club home page Giter Club logo

genieframeworkdocs's People

Contributors

blegat avatar gregormatheis avatar masonrhayes avatar mforets avatar ms10596 avatar narawat avatar patmulligan avatar pgimenez avatar valentinkaisermayer avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

genieframeworkdocs's Issues

Add complete API docs

Add the complete API docs from genieframework.com/docs
This entails

  • Deciding where to put the API docs. Probably in a new subsection /reference/API
  • Listing the packages to include. Genie, Stipple. SearchLight, StippleUI...
  • Fixing the API docs builder if it doesn't work

Eventually, the API docs could be grouped by feature (server, database) instead of package name. But that's for another time.

Broken Link Checker

I ran a broken link checker and find out we've got 27 broken links. We'll work on fixing them.

Status URL Source link text
-1 Not found: The server name or address could not be resolved https://nntrain-pere.geniecloud.app/
-1 Not found: The server name or address could not be resolved https://histogram-pereg.dev.geniecloud.app/
404 Not Found https://quasar.dev/style/css-helpers Quasar CSS Helpers
404 Not Found https://fonts.google.com/icons?selected=Material+Icons Material Icons
404 Not Found https://github.com/GenieFramework/GenieBuilderDemos/tree/main/iristutorial here
-1 Invalid URL http://localhost:8000/ http://localhost:8000
404 Not Found https://learn.genieframework.com/guides/app-templates/reactive-web-apps.md Reactive web apps
404 Not Found https://learn.genieframework.com/guides/introduction Introduction
404 Not Found https://learn.genieframework.com/guides/app-templates/web-services Web services
404 Not Found https://learn.genieframework.com/guides/routing-and-payloads Routing and payloads
404 Not Found https://learn.genieframework.com/guides/guides/app-templates/MVC-web-apps MVC web aps
404 Not Found https://learn.genieframework.com/img/logo_genue.png style: .navbar-logo span:before
404 Not Found https://learn.genieframework.com/docs/overview Genie Framework
404 Not Found https://learn.genieframework.com/guides/quickstart No code UI editor [302 from https://learn.genieframework.com/guides/no-code-ui-editor]
404 Not Found https://learn.genieframework.com/docs/ui low-code API
404 Not Found https://learn.genieframework.com/reference/server/api/@ref print
404 Not Found https://learn.genieframework.com/docs/ui/enternumber.png img/src
404 Not Found https://learn.genieframework.com/reference/reactive-ui/api/components/@ref Integer
404 Not Found https://learn.genieframework.com/reference/database/api/@ref AbstractRange
404 Not Found https://learn.genieframework.com/tutorials/written/genieframework.com Genie Framework
404 Not Found https://learn.genieframework.com/guides/adding-your-julia-code this guide
404 Not Found https://learn.genieframework.com/docs/reactive-ui Documentation
404 Not Found https://learn.genieframework.com/tutorials/written/geniecloud.io Genie Cloud
404 Not Found https://learn.genieframework.com/guides/designing-the-ui usage guide
404 Not Found https://learn.genieframework.com/docs/reactive-ui/plotting Plotting in Genie
404 Not Found https://learn.genieframework.com/guides/deploying-the-app deploy it
404 Not Found https://learn.genieframework.com/guides/designing-the-ui-lowcode low-code API

Genie apps minimum requirements

@vrkansagara mentioned having issues getting the VM sizing right when deploying a Genie app. In the workshop, we recommended 2GB RAM for deploying on fly.io. We need to do better estimates and add them to the workflows section in the reference

Ad looping over UI elements example

module App
using GenieFramework
@genietools

@app begin
    @out messages = ["msg1", "msg2", "msg3"]
end

function ui()
    row([card(style="margin: 10px;", @recur("msg in messages"), [
        p(@text(:msg)), p("or <br> {{msg}}")
    ]),])
end
@page("/", ui)
end

Review genieframework guides for Genie.jl

Need to go through the guides and determine:

  • If they are up to date
  • If their content belongs to the reference docs or tutorials sections

Other tasks:

  • Change headings to enable TOC display
  • Check for broken links or images

loop for component generation in the lowcode API

Explain how to iterate to generate multiple elements in a loop. MWE:

  module App
  using GenieFramework
  @genietools

  @app begin
    @out data = [
      ("msg1", "https://www.kasandbox.org/programming-images/avatars/spunky-sam.png"), 
      ("msg2", "https://www.kasandbox.org/programming-images/avatars/spunky-sam-green.png"), 
      ("msg3", "https://www.kasandbox.org/programming-images/avatars/purple-pi.png"),
    ]
  end
  
  function ui()
    row([card(style="margin: 10px;", @recur("item in data"), [
        p("{{ item[0] }}"),
        p("{{ item[1] }}"),
        imageview(src="{{item[1]}}")
    ]),])
    row([card(style="margin: 10px;", @recur("[msg, url] of data"), [
        p("{{ msg }}"),
        p("{{ url }}"),
        imageview(src=:url)
    ]),])
  end
  
  @page("/test", ui)
  end

Set unique way to launch an app

As of now there's several ways to run an app, depending on which generator was used to create it. Either Genie.loadapp or including app.jl, server.jl, bootstrap.jl. We should try to have a unique way across all types of apps, probably Genie.loadapp()

Merge genieframework.com and learn.geniecloud docs

As of now, we have two doc sources: genieframework.com and learn.geniecloud.io

The ones on geniecloud are the newest, and their content includes:

  • Task-oriented user guides
  • Concept-oriented reference documentation. Includes API documentation.
  • Tutorials for building entire apps or learning about specific features

The reference docs are organized by logical component and features. At the top level we have Server, Reactive UI and Database. Then come the features of each, such as routing, views.

The genieframework.com docs page is a mix of guides and API docs, and it is organized by package (Stipple, Genie, SearchLight).

The idea is to adapt the content in genieframework.com to the learn.geniecloud structure.

Guide on working with databases

Starting with the first Genie app example, explain how to add a data model and work with it in a database. The guide should include:

  • DB creation
  • Automatic migration (New Searchlight feature?)
  • Persisting, loading and searching for objects

DB section in MVC guide for reference.

Create staging site

A site with all the in-development content merged into it so that it can be easily browsed. It should merge every commit from branches with a PR open. Ideally a PR should be labelled as "auto merge" before being included in the workflow

Fix broken links

After the move to a subdomain, some links are broken like

  • In reference/overview the server link directs to docs/server/api/server, and the App Gallery link links to localhost

  • The links to server, reactive UI, database. These are implemented with a redirect in their 0.index.md file, which needs to be updated

Hot reloading

Explain how code reloading works by default, and how to set it up to watch for changes in the code. This should go into the Reference/workflows section

Interpolation doesn't work for parameters in lowcode

  module App
  using GenieFramework
  @genietools

  @app begin
    @out data = [
      ("msg1", "https://www.kasandbox.org/programming-images/avatars/spunky-sam.png"), 
      ("msg2", "https://www.kasandbox.org/programming-images/avatars/spunky-sam-green.png"), 
      ("msg3", "https://www.kasandbox.org/programming-images/avatars/purple-pi.png"),
    ]
  end
  
  function ui()
    row([card(style="margin: 10px;", @recur("item in data"), [
        p("{{ item[0] }}"),
        p("{{ item[1] }}"),
        imageview(src="{{item[1]}}")
    ]),])
  end
  
  @page("/test", ui)
  end

only with src=:symbolit works. Must explain this

Genie Builder guide

Just a quick guide showing the steps to build an app with GB. Like the quickstart guide we had in Genie Cloud

Your first dashboard guide

The "your first app" guide presents the standard webservice structure with pages containing standard (non-Vue) components. If the user wants then to add reactive pages, they can follow the guide on "Adding reactive pages"

However, it could be good to have another end-to-end quick guide on building reactive dashboards, as this is a very common use case. If they then want to evolve the app to something more complicated (multiple pages, databases), they can head to the "Organizing your code" guide and follow from there.

How should we introduce recommended Genie app architectures

These past few months we've focused on Reactive apps, which follow the app.jl+app.jl.html structure. However, there's also the webservices and MVC structures. They're fairly different since reactive apps are based around the @app block, and the others rely on a main routes.jl, controllers, views, and models.

What should we introduce users to first? This would depend on what they're trying to do:

  • A dashbod --> reactive app
  • An API --> webservice
  • A simple static site --> webservice
  • Anything with models and databases --> MVC, perhaps MVC+reactive

We need to be careful in the introduction so that users realise that there's more beyond Reactive apps but without introducing too much complexity.

As of now, the docs use the Genie.Generators to create webservices/MVC architectures. These are a little hard to grasp: there's many autogenerated files, and names like "MVC" may not mean much to the user.

I'm thinking that we could develop some simple default templates for the various cases, and eventually build generators for them. Moreover, I'd like to hide away all the bootstrap and config files that come with the generators. I've made an initial attempt at a template for a web service here:

https://github.com/BuiltWithGenie/WebServiceTemplate

Add Discord forum page

We have a lot of questions in the Discord server that are not reachable via search engines. We should export the forum threads and add them to a page in the docs so that people can at least read them. If they want to participate, then a link should direct them to the thread.

We could use this to export the forum https://github.com/Tyrrrz/DiscordChatExporter

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.