From b603f55db055e196127c44b4f372bc4a006b9552 Mon Sep 17 00:00:00 2001 From: Lucas Brown Date: Sat, 3 Aug 2019 17:36:17 -0800 Subject: [PATCH] Added more pages to site when not authenticated and added more content on the pages. --- cmd/web-app/handlers/root.go | 4 +- cmd/web-app/handlers/routes.go | 2 +- cmd/web-app/static/assets/css/sb-admin-2.css | 74 ++++++++++++------ cmd/web-app/static/images/.DS_Store | Bin 0 -> 6148 bytes .../images/saas-stater-kit-icon-200x200.png | Bin 0 -> 5078 bytes .../images/saas-stater-kit-logo-350x100.png | Bin 0 -> 11243 bytes .../images/saas-stater-kit-logo-500x100.png | Bin 0 -> 12956 bytes .../templates/content/legal-privacy.gohtml | 1 + .../templates/content/legal-terms.gohtml | 1 + .../templates/content/signup-step1.gohtml | 1 + cmd/web-app/templates/content/site-api.gohtml | 70 +++++++++++++++++ .../templates/content/site-index.gohtml | 74 +++++++++++++++++- ...te-features.gohtml => site-pricing.gohtml} | 15 ++-- .../templates/content/site-support.gohtml | 60 ++++++++++---- .../templates/content/user-login.gohtml | 1 + .../content/user-reset-confirm.gohtml | 1 + .../content/user-reset-password.gohtml | 1 + cmd/web-app/templates/layouts/base.gohtml | 6 +- cmd/web-app/templates/layouts/site.gohtml | 74 +++--------------- .../templates/partials/site-footer.tmpl | 56 +++++++++++++ .../templates/partials/site-topbar.tmpl | 39 +++++---- 21 files changed, 347 insertions(+), 133 deletions(-) create mode 100644 cmd/web-app/static/images/.DS_Store create mode 100644 cmd/web-app/static/images/saas-stater-kit-icon-200x200.png create mode 100644 cmd/web-app/static/images/saas-stater-kit-logo-350x100.png create mode 100644 cmd/web-app/static/images/saas-stater-kit-logo-500x100.png rename cmd/web-app/templates/content/{site-features.gohtml => site-pricing.gohtml} (86%) create mode 100644 cmd/web-app/templates/partials/site-footer.tmpl diff --git a/cmd/web-app/handlers/root.go b/cmd/web-app/handlers/root.go index 72055f9..20db0dc 100644 --- a/cmd/web-app/handlers/root.go +++ b/cmd/web-app/handlers/root.go @@ -54,8 +54,8 @@ func (u *Root) SitePage(ctx context.Context, w http.ResponseWriter, r *http.Requ tmpName = "site-index.gohtml" case "/api": tmpName = "site-api.gohtml" - case "/features": - tmpName = "site-features.gohtml" + case "/pricing": + tmpName = "site-pricing.gohtml" case "/support": tmpName = "site-support.gohtml" case "/legal/privacy": diff --git a/cmd/web-app/handlers/routes.go b/cmd/web-app/handlers/routes.go index e0c1eb4..8cd99ef 100644 --- a/cmd/web-app/handlers/routes.go +++ b/cmd/web-app/handlers/routes.go @@ -95,7 +95,7 @@ func APP(shutdown chan os.Signal, log *log.Logger, env webcontext.Env, staticDir // These routes is not authenticated app.Handle("GET", "/api", r.SitePage) - app.Handle("GET", "/features", r.SitePage) + app.Handle("GET", "/pricing", r.SitePage) app.Handle("GET", "/support", r.SitePage) app.Handle("GET", "/legal/privacy", r.SitePage) app.Handle("GET", "/legal/terms", r.SitePage) diff --git a/cmd/web-app/static/assets/css/sb-admin-2.css b/cmd/web-app/static/assets/css/sb-admin-2.css index 177a65d..6fce59a 100755 --- a/cmd/web-app/static/assets/css/sb-admin-2.css +++ b/cmd/web-app/static/assets/css/sb-admin-2.css @@ -20,14 +20,14 @@ --yellow: #f6c23e; --green: #1cc88a; --teal: #20c9a6; - --cyan: #36b9cc; + --cyan: #2EC57B; --white: #fff; --gray: #858796; --gray-dark: #5a5c69; --primary: #4e73df; --secondary: #858796; --success: #1cc88a; - --info: #36b9cc; + --info: #2EC57B; --warning: #f6c23e; --danger: #e74a3b; --light: #f8f9fc; @@ -2722,8 +2722,8 @@ fieldset:disabled a.btn { .btn-info { color: #fff; - background-color: #36b9cc; - border-color: #36b9cc; + background-color: #2EC57B; + border-color: #2EC57B; } .btn-info:hover { @@ -2739,8 +2739,8 @@ fieldset:disabled a.btn { .btn-info.disabled, .btn-info:disabled { color: #fff; - background-color: #36b9cc; - border-color: #36b9cc; + background-color: #2EC57B; + border-color: #2EC57B; } .btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active, @@ -2900,6 +2900,26 @@ fieldset:disabled a.btn { box-shadow: 0 0 0 0.2rem rgba(115, 116, 128, 0.5); } + +.btn-purple { + color: #fff; + background-color: #52489C; + border-color: #52489C; +} + +.btn-purple:hover { + color: #fff; + background-color: #1cc88a; + border-color: #1cc88a; +} + +.btn-purple:focus, .btn-purple.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(82, 72, 156, 0.5); + box-shadow: 0 0 0 0.2rem rgba(82, 72, 156, 0.5); +} + + + .btn-outline-primary { color: #4e73df; border-color: #4e73df; @@ -3003,14 +3023,14 @@ fieldset:disabled a.btn { } .btn-outline-info { - color: #36b9cc; - border-color: #36b9cc; + color: #2EC57B; + border-color: #2EC57B; } .btn-outline-info:hover { color: #fff; - background-color: #36b9cc; - border-color: #36b9cc; + background-color: #2EC57B; + border-color: #2EC57B; } .btn-outline-info:focus, .btn-outline-info.focus { @@ -3019,15 +3039,15 @@ fieldset:disabled a.btn { } .btn-outline-info.disabled, .btn-outline-info:disabled { - color: #36b9cc; + color: #2EC57B; background-color: transparent; } .btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active, .show > .btn-outline-info.dropdown-toggle { color: #fff; - background-color: #36b9cc; - border-color: #36b9cc; + background-color: #2EC57B; + border-color: #2EC57B; } .btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus, @@ -5352,7 +5372,7 @@ a.badge-success:focus, a.badge-success.focus { .badge-info { color: #fff; - background-color: #36b9cc; + background-color: #2EC57B; } a.badge-info:hover, a.badge-info:focus { @@ -6945,7 +6965,7 @@ button.bg-success:focus { } .bg-info { - background-color: #36b9cc !important; + background-color: #2EC57B !important; } a.bg-info:hover, a.bg-info:focus, @@ -7055,7 +7075,7 @@ button.bg-dark:focus { } .border-info { - border-color: #36b9cc !important; + border-color: #2EC57B !important; } .border-warning { @@ -10396,7 +10416,7 @@ a.text-success:hover, a.text-success:focus { } .text-info { - color: #36b9cc !important; + color: #2EC57B !important; } a.text-info:hover, a.text-info:focus { @@ -10435,6 +10455,15 @@ a.text-dark:hover, a.text-dark:focus { color: #373840 !important; } +.text-purple { + color: #52489C !important; +} + +a.text-purple:hover, a.text-purple:focus { + color: #52489C !important; +} + + .text-body { color: #858796 !important; } @@ -10577,6 +10606,7 @@ a:focus { display: -webkit-box; display: -ms-flexbox; display: flex; + padding-top: 70px; } #wrapper #content-wrapper { @@ -10706,9 +10736,9 @@ a:focus { } .bg-gradient-info { - background-color: #36b9cc; - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(10%, #36b9cc), to(#258391)); - background-image: linear-gradient(180deg, #36b9cc 10%, #258391 100%); + background-color: #2EC57B; + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(10%, #2EC57B), to(#258391)); + background-image: linear-gradient(180deg, #2EC57B 10%, #258391 100%); background-size: cover; } @@ -10864,11 +10894,11 @@ a:focus { } .border-left-info { - border-left: 0.25rem solid #36b9cc !important; + border-left: 0.25rem solid #2EC57B !important; } .border-bottom-info { - border-bottom: 0.25rem solid #36b9cc !important; + border-bottom: 0.25rem solid #2EC57B !important; } .border-left-warning { diff --git a/cmd/web-app/static/images/.DS_Store b/cmd/web-app/static/images/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 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 +

Automate your business process via a simple and powerful API. Our API allows you to integrate complex services with our SaaS to go beyond the integrations we provide out of the box.

+ +

API access is only available to clients with the Enterprise plan. If you do not have the Enterprise plan, upgrade your account.

+ + +
+
+

API Documentation

+

The documentation for the API is available here:

+

http://127.0.0.1:3001/docs/

+
+
+ + +
+
+ +

Base API URI

+ +

The API is currently version 1. Thus, the endpoint for the API is:

+ http://127.0.0.1:3001/v1/ + + +
+
+ + +
+
+ +

Authenticating with the API

+ +

The API uses OAuth2 for authentication. To generate an auth token that can be used in proceeding API requests, follow the steps below.

+ +

1. Generate an Auth Token

+ +

At the top of the API Documentation UI, locate the button `Authorize` and click it.

+ +

Find the section `OAuth2Password (OAuth2, password)`.

+ +

Enter the user email and password.

+ +

Change the type to `basic auth`. + +

Click the button `Authorize` to generate a token that will be used by the App Documentation UI for all future requests.

+ + +

2. Test Auth Token

+ +

Now that the API Documentation UI is authorized, try running endpoint using the OAuth token.

+ +

Find the endpoint GET `/account` endpoint in the API Documentation UI. This endpoint should return the account by your ID.

+ +

Click `Try it out` .

+ +

Click `Execute`. The response should an Account object with your organization's account details.

+ +

3. Query the API

+ +

Now that you have an auth token, you can make any number of additional API requests until your auth token expires.

+ + +
+
+ + + + + diff --git a/cmd/web-app/templates/content/site-index.gohtml b/cmd/web-app/templates/content/site-index.gohtml index 475f134..20f91f1 100644 --- a/cmd/web-app/templates/content/site-index.gohtml +++ b/cmd/web-app/templates/content/site-index.gohtml @@ -1,12 +1,81 @@ -{{define "title"}}Terms of Service{{end}} +{{define "title"}}SaaS to Automate your Business Processes{{end}} +{{define "description"}}The best features for streamlining your businesses processes to increase performance and efficiency.{{end}} {{define "style"}} {{end}} {{ define "content" }} -
+ + + + +
+ +
+
+ Automation with SaaS +

Cloud Automation

+

Donec sed odio dui. Etiam porta sem malesuada magna mollis euismod. Nullam id dolor id nibh ultricies vehicula ut id elit. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Praesent commodo cursus magna.

+
+
+ Big Data for Automation and AI +

Big Data

+

Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh.

+
+
+ Increase Performance with AI +

Superior AI

+

Donec sed odio dui. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Vestibulum id ligula porta felis euismod semper. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.

+
+
+
{{end}} {{define "js"}} @@ -15,5 +84,6 @@ }); + {{end}} diff --git a/cmd/web-app/templates/content/site-features.gohtml b/cmd/web-app/templates/content/site-pricing.gohtml similarity index 86% rename from cmd/web-app/templates/content/site-features.gohtml rename to cmd/web-app/templates/content/site-pricing.gohtml index 7837c17..56b5f7e 100644 --- a/cmd/web-app/templates/content/site-features.gohtml +++ b/cmd/web-app/templates/content/site-pricing.gohtml @@ -1,4 +1,5 @@ -{{define "title"}}API{{end}} +{{define "title"}}Pricing{{end}} +{{define "description"}}The best solution for businesses process automation with pricing that scales with you, your team and your company.{{end}} {{define "style"}} {{end}} @@ -6,7 +7,9 @@
-

Features

+

Pricing

+ +

Start your Free 30 Day Trial. Solution to increase the performance and efficiency of your businesses processes that scales with you, your team and your company. No credit card needed.

@@ -67,7 +70,7 @@

Donec ullamcorper nulla non metus auctor fringilla. Vestibulum id ligula porta felis euismod semper. Praesent commodo cursus magna, vel scelerisque nisl consectetur. Fusce dapibus, tellus ac cursus commodo.

- Generic placeholder image + Cool Cloud Stuff with SaaS
@@ -79,7 +82,7 @@

Donec ullamcorper nulla non metus auctor fringilla. Vestibulum id ligula porta felis euismod semper. Praesent commodo cursus magna, vel scelerisque nisl consectetur. Fusce dapibus, tellus ac cursus commodo.

- Generic placeholder image + Automation with SaaS
@@ -91,7 +94,7 @@

Donec ullamcorper nulla non metus auctor fringilla. Vestibulum id ligula porta felis euismod semper. Praesent commodo cursus magna, vel scelerisque nisl consectetur. Fusce dapibus, tellus ac cursus commodo.

- Generic placeholder image + Security with SaaS
@@ -103,7 +106,7 @@
-
+

Interested in our Service?

Simplify your business processes with our innovative solution. Signup for your free trial now!

diff --git a/cmd/web-app/templates/content/site-support.gohtml b/cmd/web-app/templates/content/site-support.gohtml index b8c1097..97d0166 100644 --- a/cmd/web-app/templates/content/site-support.gohtml +++ b/cmd/web-app/templates/content/site-support.gohtml @@ -1,4 +1,5 @@ {{define "title"}}Support{{end}} +{{define "description"}}Let us help with your business processes. Connect with us and let us know how we can help you.{{end}} {{define "style"}} {{end}} @@ -15,30 +16,45 @@
-

We are excited to help our client’s transform their paper or manual processes into digital workflows. We are as passionate as you to drive innovative change in various industries to raise the bar on what defines organizational excellence. We are leaders in our space, providing best practices for digitizing standard operating procedures. Like you, we are building, learning, and iterating. If we can't answer your question in the Knowledge Base below, contact us 24/7 for support via email, phone or chat. +

We are excited to help our client’s transform their businesses processes with our Software-as-a-Service. We are as passionate as you to drive innovative change in various industries to raise the bar on what defines organizational excellence.

-

- - -

Contact us 24/7 for support via email, phone and chat! -

+

We are leaders in our space, providing best practices for digitizing businesses processes. Like you, we are building, learning, and iterating. If we can't answer your question in the Knowledge Base below, contact us 24/7 for support via email, phone or chat.

- -
-
+
+

Search our Knowledge Base

+ +
+ +
+ + +
+ +
+
+ +
+
+
+
+

Contact us 24/7 for support via email, phone and chat!

+
+
+ +
-

Email Us

- support@keeni.space +

Email Us

+ support@ExampleDomain.com @@ -46,9 +62,9 @@
-

Call Us

+

Call Us

- +1 (601) 885-3364‬ + +1 (907) 100-2000
@@ -58,10 +74,26 @@
- +
+ +
+
+
+

Interested in our Service?

+

Simplify your business processes with our innovative solution. Signup for your free trial now!

+
+ +
+
+ + + + {{end}} {{define "js"}}