GithubHelp home page GithubHelp logo

kitura.dev's Introduction

kitura.dev

This is the GitHub repository for http://www.kitura.dev, which is hosted as a GitHub pages website.

Contributing

We welcome all improvements to this website. Please see our Contributing guidelines.

Local setup

If you want to preview this website locally, follow these steps:

  1. Clone the kitura.dev project onto your machine: git clone https://github.com/Kitura/kitura.dev.git
  2. Enter the website directory: cd kitura.dev/website
  3. Run the npm install command: npm install
  4. Run the npm install -g gatsby-cli comand: npm install -g gatsby-cli
  5. Run the gatsby develop command: gatsby develop

This will open the website in your default browser.

Licence

Apache Licence, Version 2.0

kitura.dev's People

Contributors

andrew-lees11 avatar cameronmcwilliam avatar dannys42 avatar djones6 avatar dunncoding avatar enriquel8 avatar futurejones avatar gtaban avatar helenmasters avatar ianpartridge avatar j-rabie avatar jogendra avatar kweinmeister avatar kyemaloy97 avatar lroseblade avatar quanvo87 avatar rfdickerson avatar rob-deans avatar seabaylea avatar shihabmehboob avatar shmuelk avatar suechaplain avatar teechap avatar tfrank64 avatar tmartin3 avatar tobespc avatar tunniclm avatar vadimeisenbergibm avatar wbittles avatar youming-lin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kitura.dev's Issues

Finalise the layout/structure for the individual guides

The guides need to be written and structured in a consistent manner. To ensure this happens a structure and layout needs to be decided on.

Once this has been decided on all the guides should adhere to it. On top of that the Contributing.md should also be updated.

Desktop-style menu bar is unsuitable for large touch-screen displays

Touch screen devices with a screen width of over 899 pixels (some tablets, especially in landscape orientation) will display the desktop-style menu bar.

This menu bar requires the user to hover over the links to access sub-menus, which isn't possible on a tablet.

Solution: clicks/taps on the menu bar items should toggle sub-menus open and closed, instead of linking directly to the first page in the sub-menu. This solution should be implemented without affecting the 'hover' functionality.

Sub-menu items on mobile menu should not display on hover

Sub-menus (the pages under Getting Started) display when a desktop/laptop user has a window with a width less than 899 pixels, and hovers over the main menu item (Getting Started). The sub-menu items disappear when no longer hovering.

This detracts from the user experience if the desktop/laptop window is small enough to initiate the mobile menu.

Sample Projects

As someone using Swift in a new way (ahem, on the server), it's useful for me to occasionally reference other Kitura apps as a way to make certain architectural decisions.

I'd love it if either here or somewhere within the IBM-Swift Github org, there was a list of open-sourced Kitura projects and tools developed by the community. I find the Kitura tutorials useful as a jumpstart, but would appreciate seeing other mature projects as well.

Add collapsibles to the sidebar

With the Design decided on in #183 there's a sidebar being added that will allow a user to select an option. This option will then expand into several other options that a user can select.

This functionality needs adding. It's also important that when a user selects another item the previous selection is collapsed again.

Documentation reference for Learn page.

Documentation Structure:

  • Getting Started
    • Setting Up Prerequisites?
    • Configuration: A section on how to configure a Kitura project?
    • Kitura CLI (Split this up?)
    • macOS app
    • SPM
  • Logging
  • Routing
    • What is routing?
    • Raw Routing
    1. Terminology help (i.e. what is response? Request?)
    2. How to implement each route (GET, POST... etc etc)
    • Codable Routing
    1. Terminology help (i.e. What is Codable? Why use this routing?)
    2. How to implement each route (GET, POST... etc etc)
  • Middlewares
    • What is a Middleware?
    • Raw middlewares
    • Type-safe middlewares
  • Monitoring
  • OpenAPI
  • Databases
    • What are Databases? Uses?
    • Swift-Kuery
    • ORM
    • Plugins (MySQL, PostgreSQL, SQLite)
    • CouchDB/Cloudant?
    • Redis
  • Sessions
    • What are sessions? Why would a user need them? Terminology help?
    • Raw Sessions
    • Type Safe sessions (codable)
  • Authentication
    • What is Authentication? Why would a user need them? Terminology help?
    • Basic Auth
    • JWT Auth
    • Facebook, Google Token Auth
    • Facebook, Google, App ID: Similar? (Oauth2)
  • Web Apps
    • What is Templating? Terminology help?
    • Stencil
    • Markdown
    • HTML Forms
  • Deploying a project
    • Docker
    • Kubernetes
    • Cloud Foundry
  • iOS Client
    • KituraKit Do we need this? Or should it be a part of the deployment section?

Currently the docs are a little scattered/unstructured, we should group together our documentation and fill in any doc gaps we have.

Above is a first draft of a potential documentation reference structure (i.e. The list that would appear down the side of a documentation page, and would allow a user to navigate via links).

The text in Bold with bullet points shows headings and sub headings. The numbered lists show the contents of an individual documentation page.

Design a new layout for the documentation page

Currently the learn.html isn't very accommodating to an increasing number of documentation guides.

A new layout for the page is needed that will allow more guides to be easily added.

  1. Remove the cards - It's unfeasible to categorise items into only 4 sections.
  2. Group like content more efficiently.
  3. Improve navigation around the docs.

Have API button link update based on what docs the user is currently viewing

The API docs for Kitura (and it's packages) are located in separate unlinked locations.

It'd be useful, in the long run, for a webpage to be added that'd link all the API docs to a single location.

For this issue however we should have the API Reference button update to link out to the guides that the user is currently viewing.

Desktop menu disappears after sequence of actions

Steps to reproduce:

  1. View the webpage in a mobile-size window (less than 899px wide)
  2. Click to open the menu
  3. Click to close the menu
  4. Resize the window back to desktop size

Current workaround:
Refresh page.

Parsing JSON Posts : about adding SwiftyJSON to Package.swift

Hi :)
I was trying to pasing requests tutorials from kitura.io

I don't understand why this expression should be in there
"Import SwiftyJSON by adding it to your Package.swift file".
that make me more confused

I thought 'I should add extra dependency?'. So I added dependency in Package.swift.
but it make build errors.

because SwiftyJSON already cloned by just adding 'Kitura.git'.

So "Import SwiftyJSON by adding it to your Package.swift file" should be in there?

Remove `defer { next() }` from tutorials

Deferring next() causes the response to be sent before error handlers get called (if an error is thrown). I've asked about this on Slack several months ago and got confirmation that this is indeed an anti-pattern. I believe it was @shmuelk who confirmed this, but I am not sure.

Unfortunately, many developers new to Kitura still use it, most likely because it is still used on kitura.io, for example in: http://www.kitura.io/en/resources/tutorials/templating.html

Application Metrics for Swift Documentation Outdated

The documentation on the Learn - Application Metrics for Swift page is currently outdated. SwiftMetrics is now already included when using kitura init, and adding the code as instructed starts a second SwiftMetrics instance leading to the dashboard displaying multiple versions of each metric (e.g. memory, cpu, etc.):
screen shot 2018-06-20 at 13 21 38

Environment Details

macOS 10.13.5, Swift 4.2.1, Xcode 9.4.1

Steps to Reproduce

  1. Run kitura init to create a new project
  2. Follow the steps on the Learn - Application Metrics for Swift page to add SwiftMetrics to the project
  3. Run the project and access the SwiftMetricsDash from localhost:[port_no]/swiftmetrics-dash
  4. Each metrics graph is duplicated multiple times and are incorrectly displayed.

Missing steps in documentation for Swift Server Generator

Missing steps in documentation for Swift Server Generator

The getting started documentation is missing a few steps for the creation process.

The flow should be:

? What's the name of your application?
? Enter the name of the directory to contain the project:
? Select type of project:
? Select capabilities: (Press <space> to select, <a> to toggle all, <i> to inver
se selection)
? Select data store:

Type of Project

Capabilities

Slack / Github icon alignment on FHD screen (Android/Chrome)

On my Android mobile, the appearance of the new icons on Kitura.io is crowded toward the centre, as if there is too much fixed padding to their right:

screenshot_20180219-112108

This is viewing in Chrome on a full HD screen (1080 x 1920) in portrait.

Additionally, whilst the Slack icon is nice and clear, the Github and StackOverflow icons are fuzzy (low resolution) when zoomed beyond the default level.

Add a new webpage for API docs

Currently the API docs are located in several unlinked locations.

It'd be useful to add a new page that brings all these API docs together into one location to allow a user to easily navigate through the all API docs for each of our packages.

The structure of this new API Docs page could be similar to the design in #183.

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.