mirror of
https://github.com/raseels-repos/golang-saas-starter-kit.git
synced 2025-06-13 00:07:30 +02:00
Add content in the readme files linking to a google slide deck of screen captures
and including image showing similarities/differences between the web app vs web api.
This commit is contained in:
parent
9f01a6180e
commit
357ddc7663
24
README.md
24
README.md
@ -7,7 +7,7 @@ twins@geeksaccelerator.com
|
|||||||
## Description
|
## Description
|
||||||
|
|
||||||
The SaaS Starter Kit is a set of libraries for building scalable software-as-a-service (SaaS) applications while
|
The SaaS Starter Kit is a set of libraries for building scalable software-as-a-service (SaaS) applications while
|
||||||
preventing both misuse and fraud. The goal of this project is project is to provide a proven starting point for new
|
preventing both misuse and fraud. The goal of this project is to provide a proven starting point for new
|
||||||
projects that reduces the repetitive tasks in getting a new project launched to production that can easily be scaled
|
projects that reduces the repetitive tasks in getting a new project launched to production that can easily be scaled
|
||||||
and ready to onboard enterprise clients. It uses minimal dependencies, implements idiomatic code and follows Golang
|
and ready to onboard enterprise clients. It uses minimal dependencies, implements idiomatic code and follows Golang
|
||||||
best practices. Collectively, the toolkit lays out everything logically to minimize guess work and enable engineers to
|
best practices. Collectively, the toolkit lays out everything logically to minimize guess work and enable engineers to
|
||||||
@ -18,6 +18,18 @@ This project should not be considered a web framework. It is a starter toolkit t
|
|||||||
to handle some of the common challenges for developing SaaS using Golang. Coding is a discovery process and with that,
|
to handle some of the common challenges for developing SaaS using Golang. Coding is a discovery process and with that,
|
||||||
it leaves you in control of your project’s architecture and development.
|
it leaves you in control of your project’s architecture and development.
|
||||||
|
|
||||||
|
SaaS product offerings typically provide two main components: an API and a web application. Both facilitate delivering a
|
||||||
|
valuable software based product to clients ideally from a single code base on a recurring basis delivered over the
|
||||||
|
internet.
|
||||||
|
|
||||||
|
To see screen captures of the web app and auto-generated API documentation, check out this Google Slides deck:
|
||||||
|
https://docs.google.com/presentation/d/1WGYqMZ-YUOaNxlZBfU4srpN8i86MU0ppWWSBb3pkejM/edit#slide=id.p
|
||||||
|
|
||||||
|
*You are welcome to add comments to the Google Slides.*
|
||||||
|
|
||||||
|
[](https://docs.google.com/presentation/d/1WGYqMZ-YUOaNxlZBfU4srpN8i86MU0ppWWSBb3pkejM/edit#slide=id.p)
|
||||||
|
|
||||||
|
|
||||||
There are five areas of expertise that an engineer or her engineering team must do for a project to grow and scale.
|
There are five areas of expertise that an engineer or her engineering team must do for a project to grow and scale.
|
||||||
Based on our experience, a few core decisions were made for each of these areas that help you focus initially on writing
|
Based on our experience, a few core decisions were made for each of these areas that help you focus initially on writing
|
||||||
the business logic.
|
the business logic.
|
||||||
@ -30,9 +42,6 @@ reside and how the code will be delivered to clients.
|
|||||||
5. Observability - Implements Datadog to facilitate exposing metrics, logs and request tracing that ensure stable and
|
5. Observability - Implements Datadog to facilitate exposing metrics, logs and request tracing that ensure stable and
|
||||||
responsive service for clients.
|
responsive service for clients.
|
||||||
|
|
||||||
SaaS product offerings typically provide two main components: an API and a web application. Both facilitate delivering a
|
|
||||||
valuable software based product to clients ideally from a single code base on a recurring basis delivered over the
|
|
||||||
internet.
|
|
||||||
|
|
||||||
The example project is a complete starter kit for building SasS with GoLang. It provides two example services:
|
The example project is a complete starter kit for building SasS with GoLang. It provides two example services:
|
||||||
* Web App - Responsive web application to provide service to clients. Includes user signup and user authentication for
|
* Web App - Responsive web application to provide service to clients. Includes user signup and user authentication for
|
||||||
@ -105,6 +114,13 @@ The project groups code in three distinct directories:
|
|||||||
All business logic should be contained as a package inside the internal directory. This enables both the web app and web
|
All business logic should be contained as a package inside the internal directory. This enables both the web app and web
|
||||||
API to use the same API (Golang packages) with the only main difference between them is their response, HTML or JSON.
|
API to use the same API (Golang packages) with the only main difference between them is their response, HTML or JSON.
|
||||||
|
|
||||||
|
The web API and web app have similar functionality. While the web app is meant for humans to experience and requires
|
||||||
|
a friendly UI, the web API is meant for customers or third-party partners of your SaaS to programmatically integrate. To
|
||||||
|
help show the similarities and differences between the pages in the web app and similar endpoints in the web API, we
|
||||||
|
have created this diagram below. Since it is very detailed, you can click on the image to see the larger version.
|
||||||
|
|
||||||
|
[](https://gitlab.com/geeks-accelerator/oss/saas-starter-kit/tree/master/resources/images/saas-starter-kit-pages-and-endpoints-800x600.png)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Local Installation
|
## Local Installation
|
||||||
|
@ -8,11 +8,21 @@ accelerator@geeksinthewoods.com.com
|
|||||||
|
|
||||||
Web API is a client facing API. Standard response format is JSON.
|
Web API is a client facing API. Standard response format is JSON.
|
||||||
|
|
||||||
|
While the web app is meant for humans to experience and requires
|
||||||
|
a friendly UI, the web API is meant for customers or third-party partners of your SaaS to programmatically integrate. To
|
||||||
|
help show the similarities and differences between the pages in the web app and similar endpoints in the web API, we
|
||||||
|
have created this diagram below. Since it is very detailed, you can click on the image to see the larger version.
|
||||||
|
|
||||||
|
[](https://gitlab.com/geeks-accelerator/oss/saas-starter-kit/tree/master/resources/images/saas-starter-kit-pages-and-endpoints-800x600.png)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
**Not all CRUD methods are exposed as endpoints.** Only endpoints that clients may need should be exposed. Internal
|
**Not all CRUD methods are exposed as endpoints.** Only endpoints that clients may need should be exposed. Internal
|
||||||
services should communicate directly with the business logic packages or a new API should be created to support it. This
|
services should communicate directly with the business logic packages or a new API should be created to support it. This
|
||||||
separation should help decouple client integrations from internal application development.
|
separation should help decouple client integrations from internal application development.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Making Requests to Web API
|
## Making Requests to Web API
|
||||||
|
|
||||||
Once the web-api service is running it will be available on port 3000.
|
Once the web-api service is running it will be available on port 3000.
|
||||||
|
@ -8,8 +8,15 @@ accelerator@geeksinthewoods.com
|
|||||||
|
|
||||||
Responsive web application that renders HTML using the `html/template` package from the standard library to enable
|
Responsive web application that renders HTML using the `html/template` package from the standard library to enable
|
||||||
direct interaction with clients and their users. It allows clients to sign up new accounts and provides user
|
direct interaction with clients and their users. It allows clients to sign up new accounts and provides user
|
||||||
authentication with HTTP sessions. The web app relies on the Golang business logic packages developed to provide an API
|
authentication with HTTP sessions. To see screen captures of the web app, check out this Google Slides deck:
|
||||||
for internal requests.
|
https://docs.google.com/presentation/d/1WGYqMZ-YUOaNxlZBfU4srpN8i86MU0ppWWSBb3pkejM/edit#slide=id.p
|
||||||
|
|
||||||
|
*You are welcome to add comments to the Google Slides.*
|
||||||
|
|
||||||
|
[](https://docs.google.com/presentation/d/1WGYqMZ-YUOaNxlZBfU4srpN8i86MU0ppWWSBb3pkejM/edit#slide=id.p)
|
||||||
|
|
||||||
|
|
||||||
|
The web app relies on the Golang business logic packages developed to provide an API for internal requests.
|
||||||
|
|
||||||
Once the web-app service is running it will be available on port 3000.
|
Once the web-app service is running it will be available on port 3000.
|
||||||
|
|
||||||
|
Binary file not shown.
After Width: | Height: | Size: 84 KiB |
BIN
resources/images/saas-starter-kit-pages-and-endpoints.png
Normal file
BIN
resources/images/saas-starter-kit-pages-and-endpoints.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 172 KiB |
BIN
resources/images/saas-webapp-screencapture-01.jpg
Normal file
BIN
resources/images/saas-webapp-screencapture-01.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 63 KiB |
Loading…
x
Reference in New Issue
Block a user