mirror of
https://github.com/raseels-repos/golang-saas-starter-kit.git
synced 2025-06-04 23:37:49 +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
|
||||
|
||||
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
|
||||
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
|
||||
@ -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,
|
||||
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.
|
||||
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.
|
||||
@ -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
|
||||
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:
|
||||
* 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
|
||||
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
|
||||
|
@ -8,11 +8,21 @@ accelerator@geeksinthewoods.com.com
|
||||
|
||||
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
|
||||
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.
|
||||
|
||||
|
||||
|
||||
## Making Requests to Web API
|
||||
|
||||
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
|
||||
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
|
||||
for internal requests.
|
||||
authentication with HTTP sessions. To see screen captures of the web app, 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)
|
||||
|
||||
|
||||
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.
|
||||
|
||||
|
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